Сайт Антона Гусева. | |||||||
|
Технология APDEX как метод измерения производительности системы.При исследовании проблем производительности, особенно при работе с незнакомой системой зачастую возникает вопрос объективности оценки работоспособности системы. Наиболее распространенный пример оценки работоспособности системы при первичном взаимодействии специалиста по проблемам производительности с представителем заказчика выглядит как фраза «база тормозит, работать невозможно», или «на прошлой неделе все было хорошо, а вчера начались тормоза». Оба приведенных варианта не дают никакой адекватной оценки сложившейся ситуации, они несут лишь субъективную эмоциональную оценку поведения системы. Точно так же, поскольку нет четких критериев оценки того, что именно сейчас «не так работает», нет и понимания конечной цели, которую требуется достигнуть. Значительное время в процессе предварительных переговоров уходит собственно на попытку понять изначальную ситуацию и попытаться сформулировать какие-то объективные показатели, чтобы и у заказчика и у исполнителя было понимание:
Для этой цели хорошо подходит система APDEX, аббревиатура от «Application Perfomance index», что в переводе обозначает «индекс производительности приложения». Несколько слов о возникновении системы. Идейным автором является Peter Sevcik, оригинал спецификаций можно посмотреть по адресу http://apdex.org/index.php/alliance/specifications/. Текущая версия спецификации имеет версию 1.1 и датируется 22 января 2007 года. Изначально целевой сферой применения индекса являлись сайты. Индекс служил для оценки времени полной загрузки веб-страниц сайтов и построения статистики работоспособности веб-сервера, но в дальнейшем его стали применять и в других сферах ИТ. В частности лозунг на сайте звучит как «Measuring what matters», что можно перевести как «измеряющий что угодно». Основной идеей индекса является установление «целевого времени T» для каждой операции. Под этим временем понимается время, которое идеально удовлетворяет условиям работы системы. Поскольку в нашем случае сферой приложения является производительность базы данных 1С, то под конкретной операцией будет пониматься какое-то отдельное действие – проведение документа, построение отчета, выполнение обработки. Далее идет градация соответствия действительного времени выполнения операции, по отношению к целевому времени T. Используются три градации всего диапазона измеренных значений:
Графически временную шкалу можно представить так: Жирным шрифтом на рисунке обозначены диапазоны времени S, T, F, простым шрифтом обозначены T и 4T – отметки времени. Такие интервалы получены автором стандарта эмпирически, не только на своем опыте, но и путем опроса ИТ специалистов, занимающихся проблемами производительности в крупных компаниях. В спецификации APDEX говорится о том, что при назначении целевого времени выполнения каждой операции следует пользоваться следующими правилами:
В силу объективных причин наиболее распространенные варианты это первый и второй. При слишком большой длительности операции пользователь системы перестает объективно оценивать систему, так как в действительности не сидит с секундомером, а занимается другими делами. По каждой из операций производится сбор данных по длительности ее выполнения, для соответствия спецификации APDEX количество собранных замеров по отдельной операции не должно быть менее 100. В исключительных случаях допускается меньшее количество собранных замеров, но только для тех операций, которые действительно выполняются редко. Там же в документации указано, что операции, которые по каким-то причинам были завершены неудачно, должны записываться с отдельным статусом и при подсчете индекса попадать в категорию «неудовлетворительно», даже если время их завершения укладывается в один из интервалов – T или 4*T. В качестве примера в спецификации индекса приводится выдача сообщение «404 not found» для веб-серверов. В применении к 1С это может быть ошибка блокировки данных, аварийное завершение приложения и т.д. По результатам сравнения статистики выполнения операций с целевым временем T подсчитывается числовой показатель производительности APDEX по каждой конкретной операции. Формула расчета такова: , где:
APDEX – коэффициент APDEX, с минимальным значением «0», означающим полную неработоспособность системы и максимальным значением «1», обозначающим идеальное состояние. N – общее количество выполненных операций данного типа. NS – количество операций, уложившихся в интервал времени S. NT – количество операций, уложившихся в интервал времени T. В результате сбора данных по длительности выполнения операций, зная изначально выбранное целевое время T, мы можем составить таблицу, в которую сведем весь список операций и рассчитаем APDEX по каждой отдельной операции и по всей системе в целом. Результаты, которые вообще не уложились во временные рамки T или 4T, в таблице не присутствуют, но могут быть рассчитаны, исходя из данных в колонках N, NS, NT. Ниже приведен пример такой таблицы. Как уже говорилось, диапазон значений APDEX занимает интервал от 0 (худший результат), до 1 (идеальное состояние системы).
Как видно из таблицы с примером, худший показатель APDEX имеет операция проведения документа «Требование накладная». Из 115 произведенных замеров длительности в установленное целевое время 10 секунд уложилось менее половины всех операций – 41. Еще 24 уложились в четырехкратный интервал, в нашем случае до 40 секунд, остальные не уложились, либо были завершены с ошибкой. С учетом того, что данная операция по приоритетам находится на первом месте в списке операций. Эта операция имеет показатель равный 0.46, что соответствует оценке «неудовлетворительно». Оценку «плохо» имеет первая по приоритетам в списке операций операция проведения документа «Реализация товаров и услуг». Таким образом, при проведении оптимизации системы в первую очередь следует обратить внимание на время выполнения именно этих операций, имеющих наиболее низкие показатели APDEX. После проведения оптимизации производительности операций проведения документа «Реализация товаров и услуг» и «Требование накладная» был выполнен повторный сбор данных. По результатам получилась следующая таблица: Как можно видеть по первой строке коэффициент APDEX изменился с 0.57 на 0.87, что соответствует оценке «G» - «хорошо». По остальным операциям также заметно некоторое незначительное улучшение в результате снижения нагрузки на систему. Общий итоговый коэффициент по списку операций улучшился с 0.74 до 0.88. Все наглядно и интуитивно понятно. Показатель APDEX рассчитывается по каждой из операций, а также по системе в целом. Это позволяет в каждый момент времени иметь объективную оценку ситуации и оценивать не только отдельные участки, но и всю систему в целом. Показатель простой для понимания и легко рассчитывается, а это обеспечивает его понимание даже для не специалиста. Удобство системы в том, что при проведении работ по оптимизации всегда можно контролировать достигнутый результат, он будет понятен как представителям заказчика работ, так и специалистам по оптимизации. Например, при заключении договора на оптимизацию можно зафиксировать в договоре, каких показателей APDEX по каждой из ключевых операций требуется достигнуть. При этом можно договориться либо о необходимости попасть в определенный диапазон – например, чтобы по операции «Реализация товаров и услуг» APDEX был в диапазоне «G» – «Good», т.е. от 0.86 до 0.94, либо, как вариант, добиться того, чтобы APDEX по данной операции был не ниже определенной величины, например – 0.90. Поскольку нагрузка на систему в большинстве компаний будет отличаться в зависимости от дня недели, времени суток и т.д., в договоре можно зафиксировать период, в течение которого будет производиться замер длительности операций для оценки готовности проекта. |
||||||