vk fb tw rss

Ускорение 1С. Часть 2. С чего начинать оптимизацию?

С чего начать оптимизацию

Когда в системе начинаются проблемы производительности, часто можно услышать вопрос, а с чего собственно начать? На экзамене 1С:Эксперт этот вопрос звучит довольно часто, и далеко не каждый может правильно на него ответить.

 

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

 

Мониторинг производительности

Про глобальную и в некотором роде философскую причину возникновения проблем производительности в 1С я уже писал в статье Ускорение 1С. Часть 1. Почему возникают проблемы производительности?

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

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

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

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

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

  • можно увидеть проблемы производительности самостоятельно, а не ждать пока пользователи начнут жаловаться. Жаловаться пользователи как правило начинают когда ситуация становится критичной.
  • можно увидеть проблемы производительности на начальном этапе, еще до того как проблема стала критичной
  • можно посмотреть, как повлияли изменения/обновления конфигурации на скорость работы системы
  • можно увидеть, как менялась скорость работы системы за различные периоды, например можно сравнить, как быстро система работала 1 месяц/неделю/день назад и как она работает сейчас
  • можно выявить некоторые неочевидные закономерности, например время выполнения операций увеличивается с 14 до 15 (возможно в это время запускаются какие-либо регламентные задания замедляющие работу), или можно увидеть, что документы проводятся медленно только под одним определенным пользователем.

 

Каким образом можно производить мониторинг производительности?

Все уже давно придумано за нас, для этого предназначена методика APDEX.

Apdex (Application Performance Index) — индекс производительности приложений. Открытый международный стандарт, разработанный с целью формирования объективной оценки показателей производительности корпоративных информационных систем.

Преимущества методики APDEX

  • Методика Apdex предоставляет готовый алгоритм, приводящий к простому значению разнородные факторы и множество статистических данных о производительности. Главное преимущество методики — в простом результате, для быстрой оценки состояния производительности ИС.
  • Методика бизнес ориентирована, отслеживаемые операции ранжируются по приоритетности с точки зрения бизнеса. Это позволяет правильно акцентировать внимание при мониторинге и оптимизации большого количества операций.
  • Интервалы значений Apdex имеют логическое соответствие простым критериям оценки «хорошо», «плохо», «неприемлемо», которые понятны всем.
  • Индекс строится на основании фактических данных, полученных при работе всех пользователей приложения. Результирующая оценка производительности по методике Apdex является общей, фактической и объективной.
  • При проведении работ по ускорению (оптимизации) операций, целевые значения Apdex могут являться предметом договора. Apdex может служить объективным критерием для оценки работ по повышению производительности.
  • Компания «1С» всем корпоративным клиентам, использующим приложения на платформе «1С:Предприятие 8», рекомендует производить постоянный мониторинг производительности по методике Apdex.

Методика Apdex

Apdex является числовой мерой удовлетворенности пользователей производительностью приложений. Для расчета Apdex собирается множество статистических данных о времени исполнения операций приложением. Далее производится компоновка данных, с учетом факторов влияния, и математическое преобразование, которое приводит все эти данные к значению в интервале от «0» до «1» («0» = все пользователи разочарованы, никто не может дождаться ответа от приложения, «1» = все пользователи довольны, приложение у всех работает очень быстро).

Мониторинг Apdex проводится в разрезе операций. Результирующий Apdex по приложению в целом рассчитывается на основании значений Apdex по операциям. Т.е. для применения методики Apdex, прежде всего, необходимо подготовить список критичных для бизнеса операций, подлежащих мониторингу — перечень ключевых операций.

Что является ключевой операцией: например, покупатель в магазине не будет долго ждать когда информационная система продавца учтёт его покупку. Т.е. скорость создания/формирования, проведения и печати «Чека» критичны для данного бизнеса, соответственно эти операции являются ключевыми. Также при оптимизации системы в список ключевых операций добавляют «проблемные» медленно исполняющиеся операции, которые необходимо ускорить.

Основным фактором влияния на значение Apdex является целевое время отклика.

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

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

Целевое время отклика, как правило, задается до начала замера фактических времен исполнения, но может быть определено (уточнено, скорректировано) бизнесом после первичных замеров.

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

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

Обобщая — для мониторинга производительности по методике Apdex необходимо:

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

Расчет Apdex

Для расчета Apdex используются статистические данные с программных счетчиков содержащие: наименование операций, когда каждая из них инициирована, и длительность исполнения каждой операции приложением. Далее эти данные за период (например, сутки) компонуются по наименованию/операции, затем для каждой операции: производится компоновка всех значений длительности исполнения этой операции, относительно целевого времени, на три зоны «отзывчивости» по отношению к пользователю:

a1c

  • Довольны – пользователи, при выполнении операции приложением, каких-либо задержек с ответом со стороны системы не ощутили. (Время исполнения операции приложением меньше или равно целевому времени T)
  • Удовлетворены – пользователи заметили, что ответ от системы пришлось ждать, но пользователи дожидались ответа от приложения. (Время исполнения операции приложением больше целевого времени T, но меньше или равно времени F. Чаще всего время F принимают равным 4*T, но в некоторых случаях коэффициент может быть изменен в большую или меньшую сторону).
  • Разочарованы – пользователи не дожидались ответа от приложения и прервали процесс исполнения операции приложением. (Время исполнения операции приложением больше времени F)

После этого производится расчет Apdex по формуле:

Зададим представления составляющим формулы, пусть:

  • N = Общее кол-во операций;
  • NS = Кол-во операций из зоны «Довольны» (количество операций с временем исполнения от 0 до Т);
  • NT = Кол-во операций из зоны «Удовлетворены» (количество операций с временем исполнения от T до F);

Тогда формула примет вид:

, т.е.

Индекс производительности рассчитывается как соотношение количества операций, которые выполнены с «приемлемой» скоростью, к общему количеству операций. При этом, под операциями с «приемлемой» скоростью принимается сумма: количество операций, которые выполнены с целевой скоростью Т и быстрее, и половина количества операций, которые выполнены со скоростью до четырех раз медленнее целевой скорости исполнения (время исполнения которых от T до F=4T).

Из формулы очевидно, что Apdex всегда будет принимать значения в интервале от 0 до 1. При ранжировании и в формуле, явным образом не учитывается количество операций выполненных со скоростью больше F — при желании, эту цифру всегда можно оценить путём вычитания количества операций выполненных с «приемлемой скоростью» из общего количества операций.

У формулы есть объективное условие, влияющее на достоверность результата Apdex – количество одноименных операций за период (по которым производится расчет Apdex) должно быть более 10, иначе значение Apdex будет занижено.

Пример ранжирования, компоновки данных и результатов расчета Apdex приведен в табл. 1:

 Ранжирование результатов Apdex по приоритету операции с точки зрения бизнеса

Интерпретация результатов Apdex. Шкала Apdex.

Интервал значений, принимаемых индексом производительности, принято отображать в виде «шкалы Apdex» (рис. 2). К интервалам значений Apdex привязаны критерии оценки по шкале «хорошо-плохо» (табл. 2).

По шкале APDEX «1» — это идеал, а «0» — полностью неприемлемый результат, промежуточные критерии оценки выглядят следующим образом (табл. 2):

Интерпретация интервалов значений Apdex

Таб.2 Интерпретация интервалов значений Apdex

Итоговый пример ранжирования, расчета Apdex с последующей интерпретацией результатов представлены на рис.3, и в демонстрационном интерфейсе онлайн сервиса (для авторизации выберите из списка учетную запись «Work», пароль не установлен).

Результаты мониторинга в сервисе "Apdex 1C"

 

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

 

В публикации использованы материалы с сайта: http://www.gilev.ru/apdex-teoriya/

 

Если вы хотите регулярно получать материалы по оптимизации, подпишитесь на новые публикации!



Лучшие материалы по теме

Расскажите своим друзьям
Вам ничего не стоит, а им будет интересно
Подпишитесь на обновления
Ваш e-mail: * Ваше имя: *


Обсудить Вконтакте


Обсудить в Facebook

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

Ваш e-mail не будет опубликован. Обязательные поля помечены *