Оценка производительности системы по методике APDEX

Logo_1c_8Как можно оценить текущую производительность работающей системы 1С? Как понять скорость работы вашей системы в простых и понятных школьных терминах: отлично, хорошо, удовлетворительно, очень плохо и неприемлемо? В этом поможет рекомендуемая фирмой «1С» методика APDEX. Об этой методике и поговорим ниже (в статье приводится пример оценки производительности системы «1С:Предприятие», однако данную методику можно применять и для других учетных систем).

 

0. Оглавление

  1. Для чего нужна оценка производительности системы
  2. Основные термины и понятия
  3. Определение оценки производительности по методике APDEX
    1. Получение списка ключевых операций
    2. Установка приоритетов для ключевых операций
    3. Определение целевого время для каждой операции
    4. Сбор информации о времени выполнения каждой ключевой операции
    5. Получение оценки APDEX
    6. Интерпретация полученных значений APDEX
    7. Выводы
  4. Определение целевого времени по заданному значению APDEX
  5. Формула расчета Delta APDEX

1. Для чего нужна оценка производительности системы

Можно привести несколько примеров, когда необходима оценка текущей производительности системы:

  1. Общее понимание объективной оценки скорости работы системы, после настройки и ввода в эксплуатацию системы.
  2. Для оценки оборудования, на котором работает система. Например, если планируется перенос рабочей системы на новое оборудование можно заранее (или же постфактум) оценить насколько улучшится / ухудшится производительность системы после переноса.
  3. С ростом информационной базы может ухудшаться и производительность системы. При активном мониторинге производительности, администраторы системы могут заранее принять решение об оптимизации системы или покупке нового оборудования, не торопясь и рассмотрев различные варианты. В противном случае может возникнуть ситуация, когда производительность станет совсем неприемлемой и придется в спешке принимать какие-то не всегда оптимальные решения.
  4. При активной доработке системы, внесении модификаций и нового функционала, необходим постоянный мониторинг производительности системы. Это нужно для того, чтобы понимать, как изменилась время выполнения той или иной ключевой операции после внесения модификации. Например, если не вести мониторинг производительности, то возможна ситуация, когда очередная модификация может сильно увеличить время проведения конкретной операции. Разработчики, как правило, редко тестируют доработки в условиях реальной нагрузки системы, и о подобных «тормозах» узнают уже от пользователей. Что еще хуже, подобные модификации, тормозящие систему, могут не ощущаться сразу, а накапливаться постепенно. И потом уже найти причины медленной работы системы будет намного тяжелее (дольше, дороже), чем простой мониторинг и своевременное исправление ошибок.
  5. Перед началом оптимизации системы, обязательно должна быть проведена текущая оценка производительности. Во первых, это необходимо для того, чтобы собственно понять, какие операции в системе следует оптимизировать, а во вторых, чтобы после окончания работ по оптимизации (а также во время проведения работ) можно было оценить и предоставить заказчику отчет о проделанной работе в удобной и понятной форме, опираясь на конкретные числа и показатели.

Из приведенных выше примеров, следует, что методика, по которой будет оцениваться система должна быть:

  • объективной: оценка не должна зависеть от различных субъективных факторов, таких как эмоции, мнения и т.п.;
  • прикладной: оценка должна отражать реальную производительность системы, а не абстрактные технические показатели;
  • интегральной: оценка должна учитывать все аспекты работы системы, все требования бизнес-логики системы и удобство работы каждого пользователя;
  • количественной: оценка должна быть численной для того, чтобы можно было сравнивать производительность, полученную при разных обстоятельствах (например, до и после оптимизации);
  • качественной: оценка должна интерпретироваться в терминах «хорошо» — «плохо».

Методика APDEX обладает всеми необходимыми свойствами и хорошо подходит для решения перечисленных задач.

2. Основные термины и понятия

Прежде, чем перейдем к самой методике APDEX, давайте рассмотрим несколько новых терминов и понятий.

Ключевая операция — это интерактивное неделимое действие, у которого количественной характеристикой, определяющей наступление нежелательного состояния является время выполнения этой операции, и наступление этого нежелательного состояния является важной проблемой. На протяжении всей ключевой операции пользователь ожидает возврат управления от информационной системы.

Говоря проще, ключевая операция — это операция, скорость выполнения которой критична для бизнеса. А на практике под ключевой операцией понимают действия системы после нажатия пользователем какой-либо кнопки на форме или выбора пункта меню. Исключая некоторые варианты нагрузочного тестирования (когда замер ведется только на сервере), из написанного выше следует что:

  • Ключевая операция всегда начинается на клиенте.
  • Ключевая операция всегда заканчивается на клиенте. То есть мы не можем разбить на несколько ключевых операций действие, которое является единым с точки зрения пользователя. В этом нет смысла, т. к. требования к частям операции не могут быть определены (пользователю все равно).
  • Нет особого смысла считать ключевой операцию, которая выполняется редко или выполняется одним пользователем. Рекомендуется считать операцию ключевой, если операция выполняется одновременно значительным количеством пользователей (более 10). Хотя и возможны некоторые исключения. Например, если регламентная операция «Расчет себестоимости» не выполняется за разумный срок (например, за ночь) ее тоже можно включить в список ключевых операций.

Для примера, в торговой организации ключевой операцией может служить проведение документа «Реализация товаров и услуг». Начинается она в момент нажатия пользователем кнопки «Провести и закрыть» (или «ОК») и заканчивается в момент закрытия формы документа, когда пользователь получает назад возможность работы в системе.

Приоритет ключевой операции — это порядок оптимизации операций, назначенный исходя из недостаточно быстрого выполнения операций и важности для бизнеса пользователей. Чем выше приоритет операции, тем важнее ее производительность для бизнеса заказчика. Правильно расставленные приоритеты позволят в дальнейшем оценить серьезность проблем с производительностью в системе.

На практике под приоритетом понимают последовательность ключевых операций, расставленных в том порядке, в котором специалисты будет заниматься их оптимизацией.

Целевое время ключевой операции — это время, за которое, с точки зрения пользователя, всегда должна выполняться ключевая операция, чтобы он считал работу системы отличной. Это значение называется заказчиком (или ключевым пользователем), исходя из текущих требований бизнес-процессов, соображений удобства пользователей и т.п.

Например, в типовых решениях системы «1С:Предприятие» рекомендуемое целевое время выполнения операций:

  • Для проведения документов — 3 секунды;
  • Для формирования отчетов — 5 секунд.

3. Определение оценки производительности по методике APDEX

Теперь перейдем к самой методике APDEX. Методика APDEX (читается как Апдекс, с ударением на первых слог) является широко распространенным международным стандартом оценки производительности информационных систем и расшифровывается как Application Performance Index . Как видно из названия, данная методика позволяет получить некоторую числовую оценку или индекс производительности системы.

Алгоритм оценки и получения индекса производительности по данной методике следующий:

1. Получение списка ключевых операций

В работающей системе выполняется большое количество разнообразных операций. Прежде всего, необходимо отобрать из них только ключевые операции. Именно по ним будет оцениваться производительность системы в целом.

Пусть после разговора с заказчиком или ключевыми пользователями был получен следующий список ключевых операций (операции проведения документов):

Операция
Приходный кассовый ордер
Товарная накладная ТОРГ-12
Реализация товаров и услуг
Расходный ордер на товары

2. Установка приоритетов для ключевых операций

Далее для каждой ключевой операции необходимо назначить приоритет. Приоритеты операций должны определяться при непосредственном участии специалистов заказчика или ключевых пользователей.

Пусть приоритет для выбранных ключевых операций будет следующим:

Операция Приоритет
Реализация товаров и услуг 1
Расходный ордер на товары 2
Приходный кассовый ордер 3
Товарная накладная ТОРГ-12 4

3. Определение целевого время для каждой операции

Далее, для каждой операции необходимо определить целевое времяТ.

Заказчик или ключевой пользователь может высказать слишком завышенные требования к времени выполнения ключевых операций. В этом случае следует объяснить, что для достижения желаемого результата могут потребоваться слишком большие трудозатраты или вычислительные мощности оборудования. И средства, потраченные на оптимизацию будут сильно превышать экономический эффект от самой оптимизации.

Также, можно самостоятельно заполнить время T и отдать заказчику на утверждение. Как уже говорилось выше, в типовых решения системы «1С:Предприятие» рекомендуемое целевое время выполнения операций следующее:

  • Для проведения документов — 3 секунды;
  • Для формирования отчетов — 5 секунд;
  • Для специфичных операций — по договоренности.

Пусть было получено целевое время для выбранных ключевых операций:

Операция Приоритет T
Реализация товаров и услуг 1 3
Расходный ордер на товары 2 20
Приходный кассовый ордер 3 5
Товарная накладная ТОРГ-12 4 10

4. Сбор информации о времени выполнения каждой ключевой операции

Далее самый сложный этап, это этап сбора информации о фактическом времени выполнения ключевых операций. Если информационная система уже внедрена и находится в рабочей эксплуатации, то следует собрать информацию о времени отклика системы на КАЖДОЙ ключевой операции при КАЖДОМ ее выполнении. Если информационная система еще не внедрена, то те же самые данные можно получить во время многопользовательского нагрузочного тестирования.

Информация должна быть собрана за достаточно длительный период времени. Рекомендуется собрать данные не меньше чем за один полный рабочий день или не менее чем для 100 выполнения каждой из ключевых операций. Чем больше имеется данных замера, тем точнее получится APDEX.

Организовать сбор такой информации можно с помощью следующих средств:

  1. С помощью подсистемы «Оценка производительности», входящую в состав Библиотеки стандартных подсистем «1С», а значит и включенную во все типовые решения системы «1С:Предприятие».
  2. С помощью различных сервисов по сбору статистики, например сервиса http://www.gilev.ru/apdex/.
  3. Написать и встроить в конфигурацию свой собственный инструмент по замеру времени выполнения ключевых операций и сохранении собранных данных.

Как уже говорилось ранее, внесенные в конфигурацию изменения, а так же все полученные данные по времени выполнения операций, рекомендуется сохранять как на все время проекта (если идет проект), так и в дальнейшем во время эксплуатации системы. Это позволит:

  • Пересчитывать APDEX при изменении целевого времени Т;
  • Отслеживать динамику изменения производительности системы.

5. Получение оценки APDEX

Индекс производительности APDEX вычисляется отдельно для каждой ключевой операции. Для этого необходимо обработать данные по времени выполнения всех ключевых операций и получить следующие значения:

  • N – общее количество выполнений данной операции
  • NS – количество выполнений с временем отклика от 0 до Т
  • NT – количество выполнений с временем отклика от T до 4T

Значение APDEX вычисляется по формуле:

APDEX = (NS + NT/2)/N

Т. е.  APDEX показывает отношение успешных и наполовину успешных действий к общему количеству действий. Таким образом индекс APDEX находится в диапазоне от 0 до 1.

С точки зрения пользователя:

  • Т — это время, которое пользователя полностью удовлетворяет;
  • 4Т — это время, которое пользователя не удовлетворяет, но он дождался получения результата;
  • Больше 4Т — пользователь не дождался получения результата, т. е. операция не выполнена.

Пусть при замере производительности документ «Реализация товаров и услуг» был проведен 1012 раз (N), причем в 262 случаях время проведения документа было меньше или равно 3 секундам (NS), в 403 случаях оно было в диапазоне от 3 до 12 секунд (NT), а в оставшихся 347 случаях время проведения документа превысило 12 секунд. Тогда APDEX для данной и прочих операций будет следующим:

Операция Приоритет T N NS NT APDEX
Реализация товаров и услуг 1 3 1012 262 403 0.46
Расходный ордер на товары 2 20 2136 2003 133 0.97
Приходный кассовый ордер 3 5 1012 318 524 0.57
Товарная накладная ТОРГ-12 4 10 2136 1325 567 0.75

6. Интерпретация полученных значений APDEX

Методика APDEX позволяет интерпретировать полученные числовые значения в терминах качественных оценок («хорошо» — «плохо»). Шкала APDEX содержит следующие диапазоны значений:

Значение Оценка
от до
0.00 0.50 неприемлемо
0.50 0.70 очень плохо
0.70 0.85 плохо (удовлетворительно)
0.85 0.94 хорошо
0.94 1.00 отлично

Применив эту шкалу к таблице получим следующий результат:

Операция Приоритет T N NS NT APDEX Оценка
Реализация товаров и услуг 1 3 1012 262 403 0.46 неприемлемо
Расходный ордер на товары 2 20 2136 2003 133 0.97 отлично
Приходный кассовый ордер 3 5 1012 318 524 0.57 очень плохо
Товарная накладная ТОРГ-12 4 10 2136 1325 567 0.75 плохо

7. Выводы

Для данного примера, из полученной таблицы можно сделать следующие выводы:

  • В текущем состоянии система практически неработоспособна. Большая часть ключевых операций выполняется недопустимо медленно.
  • Пользователи системы не удовлетворены ее производительностью в большинстве случаев.
  • Наиболее приоритетная операция (Реализация товаров и услуг) является наиболее узким местом системы. Следует начинать оптимизацию именно с нее.

4. Определение целевого времени по заданному значению APDEX

Может так случиться, что заказчик затрудняется с определением целевого времени Т для некоторых ключевых операций. В этом случае можно попробовать решить задачу от обратного – получить целевое время ключевой операции по заданному значению APDEX. Также подобная задача может возникнуть, когда уже имеются данные о фактическом времени выполнения операции, т. е. замеры уже встроены в информационную базу, и необходимо повторно согласовать целевое времени, изначально заданного чересчур жестко.

Алгоритм решения данной задачи будет следующий:

1. Получение субъективной оценки производительности этой операции

Прежде всего, необходимо получить у заказчика или ключевого пользователя его субъективную оценку производительности данной операции в настоящее время в терминах APDEX:

  • Неприемлемо
  • Очень плохо
  • Плохо
  • Хорошо
  • Отлично

Пусть в примере из предыдущего пункта заказчик или ключевой пользователь затруднился назвать целевое время для операции «Приходный кассовый ордер».

Операция Приоритет T
Реализация товаров и услуг 1 3
Расходный ордер на товары 2 20
Приходный кассовый ордер 3 ???
Товарная накладная ТОРГ-12 4 10

Но он смог оценить текущее время выполнения этой ключевой операции как «очень плохо». Будем считать, что это соответствует значению APDEX = 0.6 (середина интервала «очень плохо»).

2. Сбор информации о текущем времени выполнении операции

Далее необходимо собрать информацию о времени выполнения данной ключевой операции в текущий момент. Способы получения данных те же, что описывались в предыдущей главе, для подсчета индекса APDEX.

3. Побор целевого времени по известному значению APDEX

Теперь имея на руках данные замера производительности необходимо подобрать такое значение T при котором APDEX будет примерно равен заданному значению. В случае использования подсистемы «Оценка Производительности» из Библиотеки стандартных подсистем это можно сделать непосредственно в режиме исполнения. Если «Оценка Производительности» не используется, то целевое время можно получить при помощи функции «Подобрать значение», входящей в Excel пакета Microsoft Office.

Пусть путем такого перебора мы получили значение Т = 5 секунд.

4. Проверка правильности полученного значения Т

Ну и затем необходимо проверить правильность полученного значения Т и продолжать получать значение APDEX для данной операции, исходя из нового целевого времени.

5. Формула расчета Delta APDEX

В Корпоративном Инструментальном Пакете (КИП) от «1С» и в подсистеме «Оценка Производительности» Библиотеки Стандартных Подсистем также активно применяется еще один показатель DeltaApdex, который рассчитывается по формуле:

DeltaApdex = (NF + NT/2)/Nall

где:

  • NT — число выполнений операции с временем от Т до ;
  • NF — число выполнений операции с временем больше 4Т (NF=N-NS-NT);
  • Nall — число выполнений всех операций.

Данный показатель говорит о влиянии каждой ключевой операции на производительность информационной системы в целом. Иными словами он указывает насколько изменится APDEX всей информационной системы в случае оптимизации конкретной ключевой операции.

В нашем примере Nall = 1012 + 2136 + 1012 + 2136 = 6296, а DeltaApdex будет следующим:

Операция Приоритет T N NS NT NF APDEX Delta
Реализация товаров и услуг 1 3 1012 262 403 347 0.46  0,0919
Расходный ордер на товары 2 20 2136 2003 133  0 0.97 0,0212
Приходный кассовый ордер 3 5 1012 318 524  170 0.57 0,0971
Товарная накладная ТОРГ-12 4 10 2136 1325 567 244 0.75  0,1099

Подсчитав DeltaApdex видим, что для того, чтобы улучшить общий индекс производительности системы необходимо начать оптимизацию с операций «Товарная накладная ТОРГ-12» и «Приходный кассовый ордер».

Рассмотрим еще один пример. Пусть в результате анализа и сбора статистики были полученные следующие данные:

Ключевая Операция Целевое время (сек.) Среднее время (сек.) Число операций APDEX Delta
Открытие формы списание с расчетного счета 0,5 1,264 65285 035212 0,0795
Открытие формы выбора номенклатуры 0,5 1,001 64344 0,5872 0,0532
Открытие формы документа счет на оплату покупателям 0,5 1,231 49415 0.5362 0,0317
Открытие формы документа поступление на расчетный счет 0,5 1,413 34057 0.4808 0,0287
Открытие общей формы документа реализация товаров услуг 0,5 2,078 23744 0.3587 0,0232
Открытие формы товары документа реализация товаров услуг 0,5 1,678 26765 0,466 0,0135
Проведение документа поступление товаров и услуг 2 2,62 49378 0,7206 0,013
Создание формы списка документа счет на оплату покупателям 0,5 1,808 25013 0,4643 0,0125
Проведение документа списание с расчетного счета 2 1,924 77956 0,8382 0,0121
Открытие общей формы документа поступление товаров услуг 0,5 2,279 17908 0,3075 0,0117

И общая производительность (APDEX) системы 0,66 (плохо). Тогда для вывода общей производительности системы на уровень больше 0,85 (хорошо) необходимо оптимизировать только 4 операции, т.к. 0,66 + 0,0795 + 0,0532 + 0,0317 + 0,0287 = 0,66 + 0,1931 = 0,8531.

Источники:

Помогла ли Вам данная статья?
Да, спасибо, помогла.
Немного помогла.
Совсем не помогла.
Не то, что я искал(а).

P.S. Смотрите также:

Запись опубликована в рубрике Эксперт 1С с метками . Добавьте в закладки постоянную ссылку.


4 комментария на «Оценка производительности системы по методике APDEX»

  1. Павел говорит:

    В последней таблице опечатка в первой строке

  2. Аноним говорит:

    Nall = 1012 + 2136 + 1012 + 2136 = 6296, а не 6269

Добавить комментарий

Ваш e-mail не будет опубликован.