етод R. Часть 2
Ваша роль
Я хочу, чтобы уверенность в своих способностях к диагностике проблем производительности, приобретенная вами после прочтения этой книги, позволила вам ни на секунду не испугаться сценария, подобного приведенному ниже:
Место действия: Большое совещание. В числе участников несколько менеджеров подразделений, отвечающих за инфраструктуру, вы, а также генеральный директор, который, озаботившись медленной работой формы онлайновых заказов, специально пришел на ваше совещание - посмотреть, как вы собираетесь это исправить...
Старший менеджер отдела системного администрирования («Системный менеджер»): «В течение двух недель мы намерены увеличить производительность процессоров; стоимость нового оборудования и дополнительных лицензий составит 65 000 долларов. Благодаря удвоению мощности ЦПУ наши пользователи получат заметное повышение производительности».
Генеральный директор: (одобрительно кивает.) «Мы должны повысить производительность при оформлении онлайновых заказов, иначе потеряем одного из крупнейших розничных заказчиков».
Вы: «Но наша онлайновая форма, тратя на свое выполнение 45 секунд, расходует примерно 1,2 секунды процессорного времени. Даже если бы нам удалось полностью исключить эту составляющую из времени отклика, оно уменьшится лишь примерно на одну секунду».
Системный менеджер: «Я не согласен. Я считаю, что в представленных вами данных о времени отклика слишком много необъяснимых противоречий, чтобы делать такие выводы».
Вы: «Давайте обсудим это отдельно. Я объясню вам, как я пришел к этим выводам».
(Позже, на повторно созванном совещании.)
Системный менеджер: «Хорошо, я согласен. Он прав. Замена процессора не даст нужного прироста производительности, как мы надеялись».
Вы: «Зато, перераспределив нагрузку способом, который я могу изложить, мы сократим время отклика при формировании заказа не менее чем на 95%, не тратя денег на новые процессоры. Как видно из приведенного профиля времени отклика формы, замена ЦПУ никак нам не помогла бы».
Я был свидетелем множества обсуждений, в которых персонаж «Вы» получает первое слово, после чего дискуссия так и не возвращается в верное русло. Результат зачастую бывает ужасен. Компания постигает азы в поисках решения, способного поднять производительность. Иногда она останавливается, лишь полностью исчерпав отведенное время или деньги, или и то и другое.
Пожалуй, еще больнее видеть, как персонаж «Вы» выступает со своим предложением, а затем его заглушает хор скептиков, не верящих представленным данным. Если вы не сможете доказать достоверность всех своих данных, включая их источник и то, как они соотносятся с данными других участников, вы имеете все шансы проиграть в этом споре, несмотря на свою правоту.
Надеюсь, своей книгой я смогу убедить вас опробовать Метод R на своей системе. На пути того, кто работает в одиночестве, большинство препятствий будут чисто техническими, и ему, вероятно, придется потрудиться, чтобы их устранить. Я приложил все усилия к тому, чтобы эта книга помогла с ними справиться.
Однако более вероятно, что повышение производительности системы потребует коллективных усилий. Скорее всего, реализация рекомендаций аналитика потребует участия коллег. Действия, рекомендуемые им в результате применения Метода R, зависят от следующих обстоятельств:
Коллеги знакомы с этими идеями и не разделяют их.
Они никогда раньше не слышали об этом.
В противном случае ваша система уже была бы оптимизирована. В обоих случаях аналитик, вероятно, окажется в окружении, готовом поспорить с его идеями. Чтобы достичь успеха, ему придется доказывать справедливость своих рекомендаций на языке, понятном его оппонентам.
Такой подход к обоснованию своего мнения будет продуктивным в любом случае - даже в самом дружественном окружении, где пожелания аналитика выполняются практически мгновенно.
Вот самый эффективный из найденных мною способов доказательства:
Доказательство проверкой
Нет лучшего способа доказательства результата, чем его демонстрация. Дэйв Энсор (Dave Ensor) описал это как «Метод Ювелира». Любой хороший ювелир, продавая товар, как можно раньше даст потенциальному покупателю подержать его. Когда покупатель держит изделие в руках, он может гораздо полнее оценить его красоту и достоинство. Пока он мечтает, как изменится к лучшему его жизнь (стоит только ему стать обладателем этой вещицы), воображение покупателя работает на продавца. Этот метод прекрасно работает для дорогого товара: драгоценностей, автомобилей, домов, яхт и производительности систем. Пожалуй, нет лучшего способа заручиться поддержкой своих предложений, чем дать пользователям на деле почувствовать, насколько улучшится их жизнь в результате предлагаемых мероприятий.
Доходчивая статистика, понятная конечным пользователям
Если доказательство проверкой слишком сложно в реализации, следующим по действенности аргументом будет демонстрация статистики, имеющей смысл для конечных пользователей. Есть только три подходящих для такой статистики единицы измерений:
Местная валюта
Величина, на которую будет уменьшено время отклика
Количество бизнес-операций в единицу времени, на которое возрастет производительность для какого-либо пользователя
Любая другая единица измерения породит одну из двух проблем. Либо аргументы не возымеют действия на аудиторию, либо, что еще хуже, убедить ее удастся, но из-за неправильно выбранной системы мер полученный результат не будет соответствовать реальному положению дел. Фактический результат всегда измеряется в единицах времени или денег. Преуспев в убеждении, но ошибившись в конечном результате, вы обречете свои будущие рекомендации на неминуемое недоверие.
Репутация, основанная на сбывшихся предсказаниях
Если вы обладаете незыблемой репутацией, помноженной на дар убеждения, малейшего вашего пожелания может оказаться достаточно для начала действий. Если это так, будьте осторожны. Любой прогноз связан с риском потери кредита доверия. Даже если полномочия позволяют вам ставить задачи сотрудникам, основываясь на своих предположениях, настоятельно советую провести сначала неофициальную проверку рекомендаций путем «доказательной проверки» или ориентированной на пользователя статистикой. Не стоит полагаться на кредит доверия, пока вы не уверены полностью в своих рекомендациях.
«Но вся система работает медленно»
На сайте hotsos.com Метод R является стилем жизни. Многократно испробовав этот метод, я могу с уверенностью сказать, что самым сложным этапом этого метода оказывается тот, который вообще отсутствует в списке: этап убеждения людей применять его. Первое возражение, с которым сталкиваемся я и мои коллеги, применяя подход, основанный на пользовательских операциях, предсказуемо, как восход солнца:
«Но вся система работает медленно»
«Надо настраивать всю систему, а не только одного пользователя»
«Когда вы перейдете к методу, который позволит настраивать систему вцелом?»
Мы слышали это везде, где бы мы ни были.
Что делать, если вся система работает медленно? Специалисты обычно нервно реагируют на метод повышения производительности, если он основан на анализе выполнения только одной операции в данный момент. А если пользователи замечают, что «вся система тормозит», возникает сильное искушение начать анализ со сбора общесистемной статистики. Причина заключается в опасении упустить что-то важное, ограничившись анализом части системы. Да, действительно, сосредоточившись на приоритетных пользовательских операциях, вы действительно пренебрежете некоторыми вещами:
Концентрация внимания на высокоприоритетных операциях заставляет игнорировать не относящиеся к делу данные о производительности. Под «не относящимися к делу» я понимаю любые данные, которые могут помешать обнаружению и устранению наиболее значимой проблемы производительности.
Рис. 1.3. Картина, наблюдаемая аналитиком при ухудшении производительности. Заштрихованные круги обозначают пользовательские операции, характеризующиеся плохой производительностью
Вот почему Метод R эффективен независимо от происхождения проблемы - порождена ли она отдельной пользовательской операцией или же набором различных операций. На рис. 1.3 показана информация, в первую очередь получаемая аналитиками, когда они приступают к изуче-
нию проблемы. Достоверная информация о проблемах производительности в первую очередь обычно поступает в виде жалоб пользователей.
Иногда поставщики информации первыми узнают о проблемах с производительностью. В главе 9 описана ситуация, в которой такая ситуация может быть предсказана заранее. Хотя это редкий случай, чтобы поставщики информации узнали о проблемах производительности прежде, чем им о них расскажут ее потребители.
Получив такую информацию, большинство аналитиков первым делом выясняют причинно-следственные связи между наблюдаемыми симптомами и их возможными основными причинами. Я полностью согласен с тем, что это верный шаг. Однако многие проекты потерпели неудачу из-за того, что аналитики не сумели установить правильную связь между причиной и следствием. Сила Метода R заключается в том, что он позволяет установить причинно-следственные связи быстрее и точнее, чем любой другой метод.
Рис. 1.4 объясняет, почему это так. Показаны три возможных набора причинно-следственных связей между источниками плохой производительности и ее проявлениями. Понимание эффективности метода R в каждом из этих сценариев, по сравнению с обычными методами настройки, поможет вам решить, эффективен ли метод R при общесистемной оптимизации. Вот эти три:
• Первый крайний случай (а) предполагает, что все симптомы, замеченные пользователем системы, вызваны единственной «универсальной» причиной.
Во втором случае (б) между причинами и их проявлениями наблюдаются отношения «многие ко многим». Некоторые симптомы вызваны двумя или больше причинами, а некоторые причины вносят свой вклад в несколько симптомов.
Другой крайний случай (в) соответствует ситуации, в которой каждый симптом вызван своей отдельной причиной. Нет такой причины, которая оказала бы негативное влияние на более чем одну пользовательскую операцию.
Конечно, легко рисовать картинки с причинно-следственными связями источников проблем и их симптомов. Совсем другое дело - выявить такие связи в реальности. В способности к этому, как мне представляется, и заключается основная мощь, выделяющая метод R. Сейчас объясню почему.
В случаях, подобных (а), метод R работает достаточно хорошо. Даже если вы напортачили в определении приоритетов бизнеса на первом этапе, главная причина все равно проявит себя в первых же диагностических данных. Причина проста. Если все симптомы вызваны одной и той же причиной, то неважно, какой из них вы рассматриваете, -все равно эта единственная, универсальная причина отыщется в профиле времени отклика этого симптома.
Так же хорошо метод R работает в случаях (б) и (в). Здесь единственным способом улучшить работу системы в целом будет устранение каждой из причин, вносящих свой вклад в наблюдаемые симптомы. Ограниченные (временем) возможности аналитика, возможно, не позволят ему заняться всеми проблемами одновременно, в таком случае важно установить приоритеты работ. Именно этим объясняется предусмотренное методом R распределение приоритетов. Помня о том, что фактическая цель проекта по повышению производительности определяется экономикой, наивысший приоритет следует отдавать устранению наиболее важных симптомов. Для метода R характерно, что он заставляет выстраивать приоритеты процесса в соответствии с интересами бизнеса.
Рассмотрим для сравнения эффективность метода C для каждого из трех описанных случаев. Как вы помните, на первом этапе метода C требуется Построить гипотезу о несоответствующем значении некоторой метрики x.
В контексте рис. 1.4 этот этап аналогичен выявлению заштрихованных кругов в той части, которая называется основные причины. После обнаружения вероятных источников проблем метод C предлагает аналитику установить причинно-следственные связи между причинами и их проявлениями. Изъян метода C в том, что, поскольку нет плана для поиска причинно-следственных связей, приходится действовать наугад. Обычно такой подход состоит в том, чтобы что-нибудь «поправить», а потом посмотреть, к чему это привело. Это метод проб и ошибок.
Успешность метода C определяется тем, как быстро будет найден параметр системы с «неподходящим» значением. И чем длительнее его поиски, тем сильнее затягивается проект. Безусловно, шанс правильно идентифицировать проблему, требующую решения, гораздо выше, когда она - единственная в системе. Однако далеко не факт, что источник неприятностей будет быстро обнаружен даже в таком «простом» случае, как (а). Из того, что весь букет проблем вызван одной единственной причиной, вовсе не следует, что только одна системная статистика будет иметь «несоответствующее» значение.
По-настоящему метод C начинает пробуксовывать при попытке применить его в ситуациях (б) и (в). В обоих случаях движение «снизу вверх» приводит к необходимости выбора из нескольких потенциальных источников проблем. Как узнать, какой из них требует первоочередного внимания? Наилучшим способом расстановки приоритетов будет «проход по стрелкам» назад - от наиболее критичных для бизнеса симптомов к порождающим их причинам. Претендентами на первоочередное внимание будут те причины, которые способны вызвать наиболее неприятные симптомы.
Однако здесь притаилась очередная трудность метода C:
Общесистемные показатели производительности не содержат информации о причинно-следственных связях.
Невозможно достоверно установить причинно-следственные связи, показанные на рис. 1.4, пока не определена структура времени отклика для каждой пользовательской операции - «сверху вниз» в контексте этого рисунка. Понимая, какая информация необходима для установления причинно-следственных связей, мы ясно видим как недостатки метода C, так и силу метода R. Нельзя достоверно определить связи в направлении от причин к симптомам (снизу вверх). В то же время не составляет труда провести стрелки от симптомов к причинам (сверху вниз), т. к. профиль ресурсов для выбранной пользовательской операции точно указывает их местоположение.
Проект, в котором не установлены причинно-следственные связи, неуправляем. Выбор приоритетов при повышении производительности всегда должен основываться на экономических приоритетах бизнеса. Не нарисовав такие стрелки, нельзя правильно организовать свои действия, основанные на внутренних показателях производительности, полученных из отчетов Statspack. Без этих стрелок едва ли не единственной возможностью для вас останется «калькуляция стоимостей», в частности коэффициентов попаданий. К сожалению, такие величины плохо коррелируют с экономическими показателями бизнеса. В рассмотренном выше примере с платежной ведомостью ситуация три месяца оставалась неопределенной. Проект завершился в тот день, когда команда получила данные, приведенные в примере 1.3.
Ирония в том, что свойство метода R, часто вызывающее возражения, в действительности является его большим преимуществом. Фактически мы специально создали его для эффективной работы с системами, плохая производительность которых вызвана несколькими причинами одновременно.
< Предыдущая | Следующая > |
---|