сборе данных
В проекте повышения производительности, основанном на методе R, суть сбора данных заключается в получении информации о времени отклика правильно выбранной пользовательской операции. Не больше и не меньше. К сожалению, многие разработчики приложений, не обеспечивая в своих программах соответствующего инструментария, сильно усложняют процесс получения данных.
Многие компании, в том числе Oracle, в последних версиях начали улучшать инструментарий для определения времени отклика.
Уроки по сбору данных, полученные в этой главе, заставят вас думать, что задача сбора данных труднее, чем вы ожидали. Умение правильно решать эту задачу поможет уменьшить общую стоимость и продолжительность проекта за счет исключения дорогостоящего и мучительного поиска ответов методом проб и ошибок.
Проект повышения производительности, реализуемый в соответствии с методом R, протекает существенно иначе, чем проект, основанный на методе C- обычном методе проб и ошибок, описанном в главе 1. Различия проиллюстрированы на рис. 3.1. Обычно исполнитель проекта ощущает, что лед тронулся, в тот момент, когда закончены выбор целей и сбор данных и можно приступать к этапу анализа и проверок. Как правило, исполнитель, действующий по методу C, достигает этого момента (момент t1 на рис. 3.1) раньше, чем тот, кто работает над той же проблемой по методу R (момент t2). Если вы не ожидали такого поворота событий, то метод R может стать политически уязвимым.
В промежутке между моментами t1 и t2 риск потери сторонников нового метода максимален.
Быстрое завершение фазы сбора данных не является целью проекта повышения производительности. Действительная цель состоит в оптимизации системы с наименьшими возможными затратами. Метод R оптимизирован по данному критерию. Фактически метод R разрабатывался нами именно с целью помочь нашим клиентам справиться с проектами повышения производительности, длившимися неделями и даже месяцами без заметного продвижения. В подавляющем большинстве проектов, выполненных по методу R, мы смогли продемонстрировать, что цель оптимизации может быть достигнута в течение часа с момента получения корректно ограниченных по областям видимости диагностических данных. Как только получены правильные данные для диагностики производительности, методу R достаточно одной итерации анализа/проверки для приближения к поставленной цели в отношении выбранной пользовательской операции.
Специалисты, применяющие метод C, большую часть времени проводят в попытках методом проб и ошибок установить причинно-следственные связи между сотнями возможных источников проблем и их проявлений, требующих первоочередного внимания. Исключительно низкая эффективность метода C вызвана необходимостью выполнения, как правило, нескольких итераций анализа и проверки, прежде чем будет выявлена причина возникновения симптома. Каждая следующая итерация требует все больше времени, т. к. обычно аналитики в первую очередь проверяют самые простые и очевидные предположения, оставляя более сложные и дорогостоящие процедуры настройки до того момента, когда все простые предположения будут отвергнуты.
Последний изъян метода C связан с тем, что он практически не позволяет количественно оценить момент «окончания настройки». Во многих проектах пользователи метода C не в состоянии обоснованно судить о действительном вкладе каждого обнаруженного источника в возникновение проблемы. Даже в «успешных» проектах исполнители в течение недель и даже месяцев не имели представления о том, достигнуто ли полное решение проблемы производительности (оптимизация) или лишь частичное (настройка). Проблема неопределенности в вопросе о том, возможно ли дальнейшее улучшение выполнения пользовательской операции, приводит к состоянию, которое Гаджа Вайдьянатха (Gaja Vaidyanatha) и Кирти Дешпанде (Kirti Deshpande) остроумно назвали «маниакально-настроечным расстройством» (Compulsive Tuning Disorder - CTD) [Vaidyanatha and Deshpande (2001) 8]. В продолжение их шутки могу добавить, что CTD - это болезненное состояние, вызванное надеждой. Если быть более точным, к состоянию CTD приводит отсутствие полной информации, позволяющей обоснованно судить о возможности дальнейшего повышения производительности некоторой пользовательской операции. Метод R заполняет этот
Разные методы для разных проблем производительности?
Возможно ли, что в случае «простых» проблем настройки производительности обычные методы более эффективны, чем метод R, подходящий для «сложных» ситуаций? Вопрос поставлен не совсем корректно: как оценить сложность проблемы, не занимаясь сбором каких-либо диагностических данных?
Создавая метод R, мы пришли к необходимости предварительного получения легкодоступных диагностических данных, позволяющих принять решение о необходимости сбора дополнительных, более труднодоступных данных. Мы сочли такой подход близким к оптимальному. Его недостаток в том, что практически нельзя быть уверенным в наличии причинно-следственной связи, не имея корректных диагностических данных (разумеется, получить корректные данные не всегда просто). Элементы сомнения и неопределенности, привносимые в проект анализом легкодоступных данных, приводят к быстрой его деградации. Я неоднократно наблюдал, как некачественные диагностические данные заводят аналитика в тупик. В связи с этим уместно вспомнить замечательное высказывание, приписываемое кардиналу Томасу Вулси (Thomas Wolsey) (1471-1530): «Будьте весьма и весьма осторожны, вкладывая что-то себе в голову, потому что уже никогда не сможете вынуть это обратно».
Главным требованием при создании метода R было сделать его детерминистским. Детерминизм - ключевое свойство, определяющее пригодность метода к обучению и автоматизации. Мы стремились к тому, чтобы любые два человека, применяющие метод R к решению некоторой проблемы производительности, выполняли бы одинаковую последовательность действий, не прибегая к помощи опыта, интуиции или везения для определения следующего шага. Наш метод гарантирует это благодаря наличию единой точки входа и хорошо определенной последовательности логических условий для каждой последующей точки принятия решений.
Для того, кто впервые применяет метод R, получение диагностических данных может стать самой сложной частью проекта. Есть приложения, в которых сбор диагностических данных чрезвычайно прост. Другие превращают получение корректных диагностических данных в тяжелое испытание. В главе 6 рассмотрены простые и сложные типы приложений и показаны приемы, помогающие мне и моим коллегам преодолевать различные трудности. Хорошая новость: как только вы поймете, каким способом следует получать правильные диагностические данные для выбранной пользовательской операции, работа в следующих проектах пойдет значительно легче и быстрее. Ну а метод C так никогда и не избавится от многочисленных итераций анализа/проверки, на количество которых не влияет уровень квалификации аналитика.
Надеюсь, в будущем большинство производителей прикладного ПО облегчат пользователям и аналитикам сбор точных диагностических данных, необходимых методу R. В последних версиях Oracle E-Business Suite процесс диагностики упрощен, и, судя по дошедшим до меня сведениям, в 10-й версии Oracle ядро и сервер приложений двигаются в том же направлении. Методы, аналогичные методу R, доминируют в других областях промышленности, и прогресс в области сбора диагностических данных приведет к повсеместному его признанию как основы проектов повышения производительности.
| < Предыдущая | Следующая > |
|---|


