При внедрении, сопровождении и технической поддержке информационных систем на платформе 1С:Предприятие возникают задачи, связанные с необходимостью получить объективную интегральную оценку производительности системы. Приведем несколько примеров таких задач.
Пример 1. Внедрение информационной системы
Имеется заказчик, который планирует внедрять информационную систему на платформе 1С:Предприятие. Заказчик хотел бы иметь гарантии того, что внедренная система будет работать с требуемой производительностью.
Необходимо внедрить систему и обеспечить требуемую производительность ее работы. Для этого нужно решить следующие подзадачи:
- Описать и согласовать с заказчиком целевую производительность системы. Это необходимо для того, чтобы формализовать требования заказчика и его критерии производительности. Целевая оценка производительности может быть так же использована в качестве предмета договора.
- Провести нагрузочное тестирование системы, оценить производительность системы по результатам тестирования и сравнить ее с целевой производительностью.
- Внедрить систему, объективно оценить ее производительность во время работы реальных пользователей и сравнить с целевой производительностью.
Пример 2. Оптимизация работающей информационной системы
Имеется заказчик, которого не устраивает текущая производительность работы информационной системы на платформе 1С:Предприятие. Требуется провести оптимизацию системы и довести ее производительность до необходимого уровня.
Для этого нужно решить следующие подзадачи:
- Объективно оценить текущую производительность системы.
- Выявить наиболее проблемные прикладные операции.
- Описать целевую производительность системы.
- Провести оптимизацию и объективно оценить производительность системы после оптимизации. Сравнить полученные результаты с целевой производительностью.
Требования к методике оценки производительности
Для решения приведенных выше задач необходимо оценивать производительность. Оценка должна быть:
- объективной: оценка не должна зависеть от субъективных факторов (эмоции, мнения и т.п.);
- прикладной: оценка должна отражать реальную производительность прикладных операций, а не абстрактные технические показатели;
- интегральной: оценка должна учитывать все аспекты работы системы, все требования бизнес-логики системы и удобство работы каждого пользователя;
- количественной: оценка должна быть численной для того, чтобы можно было сравнивать производительность, полученную при разных обстоятельствах (например, до и после оптимизации);
- качественной: оценка должна интерпретироваться в терминах «хорошо» - «плохо».
Для оценки производительности информационных систем на платформе 1С:Предприятие рекомендуется использовать методику APDEX, которая обладает всеми необходимыми свойствами и хорошо подходит для решения перечисленных задач.
Методика APDEX
Методика APDEX является широко распространенным международным стандартом оценки производительности информационных систем. Оценка производительности системы по методике APDEX состоит из следующих основных этапов:
- Получить список ключевых операций
- Определить приоритет каждой операции
- Определить целевое время для каждой операции
- Собрать информацию о времени выполнения каждой ключевой операции
- На основании собранных данных получить оценку APDEX
После этого можно интерпретировать полученный результат в терминах качественных оценок (то есть, по шкале «хорошо - плохо»).
Получить список ключевых операций
В работающей системе выполняется большое количество разнообразных операций. Необходимо отобрать из них только ключевые операции. Именно по ним будет оцениваться производительность системы в целом.
Рекомендуется считать операцию ключевой при выполнении одного из следующих условий:
- Операция является критичной для бизнес-процессов заказчика. При недостаточной производительности системы на этой операции могут происходить потери для бизнеса заказчика.
- Операция выполняется одновременно значительным количеством пользователей (более 10).
- Имеются жалобы пользователей на производительность на этой операции.
Список операций должен составляться при непосредственном участии специалистов заказчика. Полученный список операций следует поместить в таблицу (например Excel).
Операция |
Приходный кассовый ордер |
Товарная накладная ТОРГ-12 |
Реализация товаров и услуг |
Расходный ордер на товары |
Определить приоритет каждой операции
Для каждой операции необходимо определить ее приоритет – уникальное целое число. Чем выше приоритет операции, тем важнее ее производительность для бизнеса заказчика. Правильно расставленные приоритеты позволят в дальнейшем оценить серьезность проблем с производительностью в системе, и правило определить приоритеты работ по оптимизации.
Приоритеты операций должны определяться при непосредственном участии специалистов заказчика.
Добавьте в таблицу колонку «Приоритет» и заполните ее полученными значениями. Отсортируйте операции по приоритету. Обычно считается, что 1 – наивысший приоритет, 2 – следующий и т.д.
Операция |
Приоритет |
Реализация товаров и услуг |
1 |
Расходный ордер на товары |
2 |
Приходный кассовый ордер |
3 |
Товарная накладная ТОРГ-12 |
4 |
Определить целевое время для каждой операции
Для каждой операции необходимо определить целевое время – Т.
Целевое время – это требование заказчика к скорости выполнения данной ключевой операции. Обратите внимание на то, что это значение не вычисляется и не подбирается опытным путем. Оно назначается, исходя из требований бизнес-процессов заказчика, соображений удобства пользователей и т.п. Критерий при назначении времени Т: если данная операция будет всегда выполняться за время меньшее или равное Т, то это целиком и полностью устроит заказчика.
Целевое время Т для каждой ключевой операции должно определяться при непосредственном участии специалистов заказчика.
Иногда заказчик может затрудняться с определением времени Т для некоторых ключевых операций. В таких случаях можно попробовать решить задачу «от обратного» - зная APDEX, получить значение целевого времени Т.
Добавьте в таблицу колонку «Т» и заполните ее полученными значениями.
Операция |
Приоритет |
T |
Реализация товаров и услуг |
1 |
3 |
Расходный ордер на товары |
2 |
20 |
Приходный кассовый ордер |
3 |
5 |
Товарная накладная ТОРГ-12 |
4 |
10 |
Собрать информацию о времени выполнения каждой ключевой операции
После этого необходимо получить информацию о фактическом времени выполнения всех ключевых операций в системе. Если информационная система уже внедрена и находится в рабочей эксплуатации, то следует собрать информацию о времени отклика системы на каждой ключевой операции при каждом ее выполнении.
Информация должна быть собрана за достаточно длительный период времени. Рекомендуется собрать данные не меньше чем за один полный рабочий день.
Например, в списке имеется операция «Реализация товаров и услуг». Предположим, что за один рабочий день все пользователи системы ввели 1200 различных документов «Реализация товаров и услуг». Это означает, что мы должны получить и сохранить информацию о реальном времени отклика, которое наблюдали пользователи на каждом из 1200 выполнений операции. В результате мы должны сохранить 1200 различных значений времени выполнения.
Для получения времени выполнения ключевых операций необходимо внести изменения в код конфигурации. Полученную информацию рекомендуется сохранять в журнале регистрации. Если информационная система еще не внедрена, то те же самые данные можно получить во время многопользовательского нагрузочного тестирования.
Внесенные в конфигурацию изменения, а так же все полученные данные по времени выполнения операций, рекомендуется сохранять на все время проекта. Это позволит:
- Пересчитывать APDEX при изменении целевого времени Т;
- Отслеживать динамику изменения производительности системы.
- На основании собранных данных получить оценку APDEX
Для вычисления APDEX, необходимо обработать данные по времени выполнения всех ключевых операций и получить следующие значения:
N – общее количество выполнений данной операции
NS – количество выполнений с временем отклика от 0 до Т
NT – количество выполнений с временем отклика от T до 4T
Значение APDEX вычисляется по формуле: APDEX = (NS + NT/2)/N
Операция |
Приоритет |
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 |
Полученные числовые значения APDEX могут быть интерпретированы в терминах качественных оценок, то есть по шкале «хорошо - плохо».
Интерпретация полученных значений 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 |
плохо |
Из полученной таблицы можно сделать следующие выводы:
В текущем состоянии система практически неработоспособна. Большая часть ключевых операций выполняется недопустимо медленно.
Пользователи системы не удовлетворены ее производительностью в большинстве случаев.
Наиболее приоритетная операция (Реализация товаров и услуг) является наиболее узким местом системы. Следует начинать оптимизацию именно с нее.
Применение методики APDEX
Полученные данные APDEX можно применять для решения организационных и технических вопросов в рамках различных задач.
1. Оптимизация работающей системы
Имеется работающая информационная система, производительность которой не устраивает заказчика. Необходимо провести работы по оптимизации. В этом случае можно предложить следующий сценарий работ с использованием методики APDEX.
1. Объективно оценить текущую производительность системы.
Полученные данные APDEX по всем ключевым операциям зафиксировать в таблице «Начальное состояние системы».
2. Договориться о конечном итоге оптимизации.
Обычно считается, что система работает с достаточной производительностью, если показатели APDEX по всем операциям находятся в зоне «хорошо» или выше (APDEX от 0.85 до 1.00). Достижение целевых показателей производительности системы может быть зафиксировано в договоре в качестве цели работ.
3. Оценить объем и сроки работ, а так же приоритеты оптимизации.
Имея объективную картину текущей производительности и зная целевую производительность можно ориентировочно оценить объем и сроки предстоящих работ по оптимизации. Наиболее важной задачей следует считать вывод в зону «хорошо» ключевых операций с наивысшим приоритетом. На основании полученной таблицы APDEX можно разбить работы на несколько этапов: например, сначала операции с высоким приоритетом, потом – остальные.
4. Отслеживать промежуточные результаты оптимизации.
Рекомендуется оставить в системе все изменения, внесенные для фиксации времени выполнения ключевых операций. Это позволит легко получать данные о производительности системы за любой период. Например, можно будет отслеживать динамику роста производительности по неделям. Это позволит, в частности, точнее оценить и при необходимости скорректировать время, отведенное на выполнение работ.
Еще одна важная возможность – отслеживание эффекта от внесения того или иного изменения в систему. Например, в результате проведенного расследования проблем производительности был оптимизирован некий запрос на уровне конфигурации. После внесения изменений в работающую систему можно будет оценить, насколько изменилась ее производительность благодаря этой оптимизации.
5. Оценить результаты проделанных работ.
По результатам оптимизации следует получить данные APDEX и сравнить их с целевыми значениями. При достижении целевых значений работу можно считать завершенной. Итоговую таблицу с данными APDEX можно использовать в качестве отчета о проделанных работах.
2. Оценка применимости решения 1С для решения задач заказчика
Заказчик планирует внедрять информационную систему на платформе 1С:Предприятие, но перед этим он хотел бы убедиться, что система справится с реальной нагрузкой. Необходимо провести нагрузочное тестирование и продемонстрировать заказчику, что система будет работать с требуемой производительностью.
1. Описать требования заказчика к производительности системы.
Для этого требуется совместно с заказчиком составить список ключевых операций, с указанным приоритетом и целевым временем по каждой операции. Таким образом мы формализуем и зафиксируем требования заказчика к производительности.
2. Провести нагрузочное тестирование и получить данные APDEX по результатам теста.
Тест необходимо проводить на оборудовании заказчика (или на оборудовании близком по производительности). Тест должен создавать реалистичную нагрузку, адекватную той, которая будет наблюдаться в рабочей системе заказчика.
3. Довести систему до требуемой производительности
Если полученные коэффициенты APDEX не попадают в зону «хорошо» или выше, то следует оптимизировать систему до тех пор, пока не будут получены нужные показатели.
4. Продемонстрировать заказчику результаты тестирования.
Обратная задача: определение целевого времени Т по известному APDEX
Иногда заказчик может затрудняться с определением целевого времени Т для отдельных ключевых операций. То есть, у заказчика может быть субъективное мнение о производительности системы, но при этом он будет не готов сформулировать объективные требования к производительности.
В этом случае можно попробовать решить задачу от обратного – получить значение времени Т, исходя из субъективной оценки.
Предположим, заказчик затрудняется оценить целевую производительность для операции «Приходный кассовый ордер».
Операция |
Приоритет |
T |
Реализация товаров и услуг |
1 |
3 |
Расходный ордер на товары |
2 |
20 |
Приходный кассовый ордер |
3 |
??? |
Товарная накладная ТОРГ-12 |
4 |
10 |
В этом случае последовательность действий может быть следующей:
1. Получить субъективную оценку производительности этой операции.
Следует субъективно оценить производительность данной операции в терминах APDEX, то есть по следующей шкале:
· Неприемлемо
· Очень плохо
· Плохо
· Хорошо
· Отлично
Оценка должна отражать консолидированное мнение всех заинтересованных специалистов заказчика.
Предположим, что заказчик оценил производительность как «очень плохо». Будем считать, что это соответствует значению APDEX = 0.6 (середина интервала «очень плохо»).
2. Получить данные по фактической производительности данной операции в системе.
Необходимо собрать полную информацию о производительности системы при выполнении этой операции.
3. Подобрать такое значение Т, при котором APDEX = 0.6
Необходимо задавать различные значения Т с некоторым шагом, вычисляя APDEX для каждого из значений. При получении нужного значения APDEX – зафиксировать значение Т, для которого оно получено.
Эту процедуру можно автоматизировать. Например, при помощи функции «Подобрать значение», входящей в Excel.
Предположим, что путем такого перебора мы получили значение Т = 5 секунд.
4. Проверить правильность полученного значения Т
Продолжайте следить за производительностью системы, получая значение APDEX для данной операции, исходя из вычисленного времени Т. Убедитесь в том, что получаемая оценка APDEX соответствует субъективной оценке заказчика.
Автор: Наумова Ольга
Использованы материалы с сайта http://1cexpo.ru/