Отлично, когда ваше ИТ-детище сталкивается с ростом выручки, пользователей, CTR, обрабатываемых документов, кредитных заявок, количества филиалов и прочих приятно почесывающих ЧСВ вещах. Все эти штуки называются бизнес-драйверами, которые в правильной ситуации коррелируют с нагрузкой на ИТ-инфраструктуру, расположенной под вашим сервисом. Правильное планирование мощностей защитит вас от epic fails в чёрную пятницу (чтобы она не стала действительно чёрной ;)) и ваш бюджет во все остальные дни. Сегодня поговорим не о самом процессе управления мощностями, а о технической стороне вопроса. Расскажу, при помощи каких отчетов можно прикидывать тренды и строить корреляционные матрицы. Давайте вкратце расскажу какой опыт мы скопили, а все вопросы задавайте в комментариях или личным сообщением. Поехали!

Первый метод оценки ‒ временной анализ. Сам по себе он бывает нескольких видов.
1. Производительность во времени (PTA – Performance vs Time analysis) –показывает значения одной или более метрик производительности за выбранный интервал времени. Ещё можно визуализировать несколько метрик, принадлежащих к различным системам в разных масштабах.
Основными задачами этого типа анализа являются:
- определение наиболее критических ресурсов, для последующего использования в «что-если» анализе;
- создание пороговых (базовых) уровней производительности для систем, основанных на исторических данных, для:
- проверки или изменения временных интервалов, которые будут использоваться в дальнейшем анализе,
- анализа тенденций (линейные, скользящие средние),
- обнаружения типичного поведения (ежедневно, еженедельно, ежемесячно);
- определения пиковых нагрузок;
- определения повторяющихся всплесков и их значений.

Пример временного анализа с визуализаций 3 метрик – загрузок ЦПУ, оперативной и дисковой памяти
2. Нагрузка во времени (LTA – Load vs Time analysis) – показывает поведение одной или нескольких бизнес-метрик в выбранный интервал времени. Примером является количество сделок в течение определенного периода времени.
Основные задачи LTA:
- провести анализ и выбрать бизнес-метрики по следующим критериям:
- значимость приложений,
- зависимость между бизнес-метриками;
- проверки или изменения временных интервалов, которые будут использоваться в дальнейшем анализе;
- анализ тенденций (линейные, скользящие средние);
- обнаружение типичного поведения (ежедневно, еженедельно, ежемесячно), возможных пиков нагрузок при выполнении периодических заданий;
- определение повторяющихся всплесков и их значений;
- определение пороговых значений бизнес-метрик для расчёта средних показателей и дисперсии.

Пример временного анализа бизнес-метрик
3. Анализ конфигураций (CA — configuration analysis) – показывает исторические значения конфигурации конечных серверов и т.п. за выбранный период времени.

Пример временного анализа конфигураций аппаратного комплекса
Второй метод оценки — корреляционный анализ.
При анализе данных создаются связки между бизнес-драйверами и технологическими ресурсами в соответствии с коэффициентом корреляции. Коэффициент корреляции ‒ это такой зверь, который показывает степень взаимосвязи двух метрик и может принимать значения от -100% (полная обратная зависимость) до +100% (полная прямая зависимость). Значение равное 0 (и близкое к нему) показывает отсутствие зависимости между парой метрик.
При построении отчета корреляционный анализ используется для построения корреляционных карт и карт бизнес-метрик. Карты бизнес-метрик ‒ ключевой компонент при построении отчета, отображающий зависимость бизнес-показателей и используемых ресурсов. К примеру, на рисунке ниже, приведена зависимость бизнес-метрик (количество запросов от веб-клиента и количество отправленных сообщений веб-клиенту) от ресурсов сервера приложений и СУБД, на котором работает приложение.

Пример зависимостей метрик
На основании этой информации настраиваются карты бизнес-метрик для последующего анализа производительности в разрезе бизнес-нагрузки.

Пример карты бизнес-метрик

Расчет корреляции значений параметров производительности и бизнес-метрик
В результате выявляется степень загрузки бизнес-метриками конкретных ресурсов на конкретных серверах:

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

Зависимость и точка насыщения общего количества запросов в бизнес-системе к загрузке CPU
Также, корреляционный анализ используется для сравнения любых пар метрик в системе. Это могут быть как бизнес-метрики, так и метрики производительности:

Пример сравнения двух бизнес-метрик (количество заходов на сайт против количества просмотренных страниц

Пример сравнения метрик производительности
И, наконец, третий тип оценки ‒ расчет трендов.
Модель прогнозирования будущего поведения (расчет трендов) используется, для определения будущих значений и динамики изменения одного или нескольких показателей производительности (или бизнес-метрик) по историческим данным.
Ниже на рисунке представлена модель возможного использования данного механизма. В систему загружены исторические данные по загрузке исходящего канала связи. Для этого параметра выставлено пороговое значение – 70% загрузки канала от максимально возможного. С помощью механизма экстраполяции автоматически выстраивается тренд динамики роста параметра и определяется время насыщения (достижения порогового значения) – менее 1 календарного месяца.

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

Вариант сценария по расчету увеличения общего дискового пространства
«Что-если» анализ также используется для расчета показателей работы ИТ-инфраструктуры в зависимости от изменяемых значений бизнес-метрик.
На рисунке ниже приведен пример расчета максимально возможных показателей заходов в систему и количества отправляемых заказов. В первой части таблицы указаны бизнес-метрики (Visits, Orders Received) и их текущие значения (30 000 заходов в час и 1 000 заказов). В графе Target указываются проверяемые значения параметров (120 000 и 5 000). В результате можно рассчитать максимальную нагрузку на инфраструктуру (61 500 и 2 400 соответственно), а также видна точка отказа – производительность CPU (красная точка на таблице внизу).

Пример расчета максимально возможных показателей заходов в систему и количества отправляемых заказов
Таким образом, можно определить максимальную мощность инфраструктуры, определить узкие места и своевременно принять решение о модернизации.
Пожалуйста, обращайтесь с вопросами в комментариях. А если задача требует чуть более вдумчивого подхода, наш консалтинг – он, как майские праздники, – всегда вас порадует.
В конце поста есть пара опросов, будет здорово, если вы сможете уделить на них пару десятков секунд. Спасибо!
Автор статьи: Антон Касимов, архитектор систем управления, компания «Инфосистемы Джет».
Автор: Инфосистемы Джет