асть I. Методика. 1. Лучший способ оптимизации
П
р
оизводительность Oracle для многих представляет серьезную проблему. Начиная с 1990 года мне довелось поработать с тысячами профессионалов, занятых в проектах по повышению производительности систем, основанных на Oracle. Развитие всех таких проектов проходит через несколько стандартных стадий. Полагаю, названия этих стадий лежат в сейфовом хранилище1 где-нибудь в Женеве. Если мне не изменяет память, названия эти таковы:
- Безудержный оптимизм
- Информированный пессимизм
- Паника
- Отрицание
- Безнадежность
- Полная безысходность
- Упадок и отчаянный дефицит
По какой-то причине меня и моих коллег редко приглашают в проект, не достигший стадии «упадка и отчаянного дефицита». Вот так обычно выглядит проект по повышению производительности к моменту нашего появления. Не встречались ли вы с подобными ситуациями?
Технические эксперты расходятся во мнениях по поводу источника проблем
Чем серьезнее трудности с производительностью, тем больше людей приходит на совещания, чтобы поговорить о ней. Если на совещании собрались «лучшие эксперты» из нескольких фирм - это очень плохой признак. За время своей карьеры я побывал на десятках совещаний, где «лучшие эксперты» консалтинговых компаний, производителей компьютеров и систем хранения данных, поставщиков программного обеспечения, сетевых провайдеров пытались решить проблемы производительности. Ровно в 100% случаев участники совещания проводили время в бесконечных спорах о первопричинах недостаточной производительности. Неделями. Как могут умные, образованные, целеустремленные специалисты, глядя на одну и ту же систему, иметь столь разные (и зачастую противоположные) мнения о причинах снижения производительностью? Очевидно, производительность Oracle-системы - это очень сложный вопрос.
Эксперты заявляют о прекрасных достижениях, но пользователи не видят улучшений
Многие из моих студентов понимающе усмехаются, когда я рассказываю истории о консультантах, с гордостью рапортовавших об успехах в улучшении какой-либо статистики (будь то увеличение коэффициента попаданий или уменьшение количества экстентов и т. д.) и получивших обескураживающий ответ, что пользователи и не заметили никаких изменений. Обычно результатом такой работы становится длинный отчет консультанта, в котором в максимально вежливых выражениях объясняется, что, хотя пользователи в силу своей отсталости этого и не заметили, система стала значительно лучше - в полном соответствии с приложенным счетом.
Такие истории вызывают улыбку, если, конечно, вы не владелец компании, оплачивающей потраченное впустую время, или не консультант, не получивший оплаты из-за отсутствия сколько-нибудь значимого результата. Возможно, история кажется смешной, потому что большинство из нас так или иначе оказывались в роли подобного консультанта. Как может получиться, что при очевидном улучшении таких важных показателей как коэффициент попаданий, среднее время задержки и время ожидания, пользователи могут даже не заметить результата наших усилий? Очевидно, производительность Oracle-системы - это очень сложный вопрос.
Со времени первого знакомства с публикацией Нейла Гюнтера (Neil Gunther) «The Practical Performance Analyst» («Аналитик-практик производительности)» в 1998 году мне неоднократно доводилось демонстрировать возможность такого противоестественного феномена. «Допускаете ли вы, что замена оборудования на более мощное может ухудшить производительность важного приложения?» Во всех группах, где я задавал этот вопрос и приводил соответствующие факты, реакция была практически одинаковой. Большинство слушателей недоверчиво улыбалось, пока я рассказывал, как такое может произойти, в конце же подходили один или двое, радуясь, что наконец поняли, что же произошло несколько месяцев назад, когда после модернизации «все пошло не так».
Улучшение оборудования нечасто приводит к ухудшению производительности, но такое случается. Очень часто эффект от замены аппаратной части практически не заметен, если, конечно, не считать весьма заметного утекания денег в обмен на неощутимые преимущества. То, что модернизация может не дать никаких преимуществ, немного беспокоит. Мысль о том, что улучшение оборудования может в действительности привести к снижению производительности, полностью обескураживает. Как может получиться, что замена оборудования на более мощное не только не повышает производительность, но может даже повредить ей? Очевидно, производительность Oracle-системы - это очень сложный вопрос.
Значительная часть ресурсов системы расходуется впустую
Мы с коллегами пришли к выводу, что практически любая система не менее чем на 50% загружена бесполезной работой. Мы очень осторожно подходим к определению «бесполезности», понимая под ней ту часть нагрузки, которая может быть исключена без потерь для функционирования бизнеса. Как может совершенно ненужная работа отнимать большую часть ресурсов во многих грамотно управляемых системах? Очевидно, производительность Oracle-системы - это очень сложный вопрос.
Это умные люди. Почему же их проекты в таком беспорядке? Очевидно, что оптимизация Oracle-системы - это очень сложное дело. Как еще можно объяснить то, что такое количество проектов в стольких не связанных между собой компаниях сталкиваются со столь похожими трудностями?
< Предыдущая | Следующая > |
---|