Общие принципы диагностики проблем с производительностью

В статье описаны основные подходы к диагностике проблем с производительностью.

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

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

  • Производительность серверной части приложения;
  • Производительность базы данных;
  • Комплексные проблемы производительности (когда невозможно сразу определить конкретную причину).

Этапы диагностики

Подход к решению проблемы:

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

Таблица 1 — Метрики для сервера приложения

Категория Описание
Метрики нагрузки на CPU CPU Usage, CPU Utilization.
По системе и по процессам приложения
Метрики потребления RAM Memory Usage, Memory Utilization.
По серверу и по процессам приложения
Метрики использования диска IOPS, latency, свободное место
Метрики сетевой нагрузки Входящий/исходящий трафик, ошибки/потеря пакетов

Таблица 2 — Метрики для сервера баз данных

Категория Описание
Метрики нагрузки на CPU CPU Usage, CPU Utilization
Метрики потребления RAM Memory Usage, Memory Utilization
Необходимо учитывать, что потребление памяти у Microsoft SQL Server использует всю доступную память и это не всегда указывает на проблему
Время жизни страницы (Page Life Expectancy) Это показатель, демонстрирующий сколько времени в среднем страницы данных остаются в буфере памяти перед тем, как быть из него извлеченным и переписанным на диск. Значение ниже 300 секунд может указывать на дефицит памяти
Актуально только для СУБД Microsoft SQL Server
Метрики использования диска IOPS, latency, свободное место
Метрики сетевой нагрузки Входящий/исходящий трафик, ошибки/потеря пакетов

Таблица 3 — Метрики для сервера кэширования

Категория Описание
Метрики нагрузки на CPU CPU Usage, CPU Utilization
Метрики потребления RAM Memory Usage, Memory Utilization
Метрики использования диска IOPS, latency, свободное место
Метрики сетевой нагрузки Входящий/исходящий трафик, ошибки/потеря пакетов
  1. Собрать стандартные отчеты по базе данных приложения:
    • Для Microsoft SQL Server: sp_whoisactive и sp_blitzcache;
    • Для PostgreSQL: pg_stat_activity и pg_profile.

Отчет sp_whoisactive/pg_stat_activity показывает активные сессии и их блокировки. sp_blitzcache/pg_profile анализирует ресурсоемкие запросы. Также можно проверить индексы на фрагментацию, избыточность и отсутствие.

Примечание. Обратите внимание, что sp_whoisactive и sp_blitzcache — это отдельные инструменты для Microsoft SQL Server, которые не входят в стандартный дистрибутив. То же самое касается pg_profile для PostgreSQL.
  1. Сформировать HAR-файл на период воспроизведения проблемы.
  2. Приступить к поиску решения проблемы.

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

Чтобы точнее оценить проблемы с производительностью, обратите внимание на следующие признаки:

  1. Если процессор сервера приложения загружен на 90% и выше в течение 3–5 минут, это может указывать на нехватку CPU.
  2. Для серверов баз данных, таких как Microsoft SQL Server или PostgreSQL, загрузка CPU на уровне 95% и выше в течение 10 минут и более допустима, но требует анализа. Это может быть следствием ресурсоемких запросов, признаком неэффективной индексации или нехватки ресурсов.
  3. Если объем используемой оперативной памяти превышает 90% и активно используется файл подкачки (swap), скорее всего, не хватает RAM или есть утечки памяти.
  4. Если задержка дисковых операций стабильно превышает 10-20 мс при нормальной нагрузке, это может указывать на узкое место в дисковой системе.
  5. При проблемах с сетью обратите внимание на рост retransmit-ов, потери пакетов и увеличение задержек (RTT) между компонентами, особенно в распределенной инфраструктуре.

Если проблема связана с сервером базы данных:

  1. Проанализировать отчет по тяжелым запросам в базе данных.
  2. Проанализировать план запросов и при необходимости скорректировать проектную логику.
  3. Провести анализ состояния индексов и при необходимости выполнить перестроение.

Если проблема носит комплексный характер, проанализируйте работу сервера приложения:

  1. Собрать и проанализировать файлы конфигурации, способ развертывания приложения.
  2. Проанализировать работу Akka и при необходимости скорректировать настройки.
  3. Проанализировать работу Quartz и при необходимости скорректировать настройки.
  4. Проанализировать конфигурацию веб-сервера (IIS/Kestrel) и при необходимости скорректировать настройки. При анализе конфигурации веб-сервера в первую очередь стоит обращать внимание на параметры, которые указываются в инструкциях по развертыванию BPMSoft.

Информация для обращения в техническую поддержку

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

  1. Версия и сборка приложения BPMSoft — эта информация требуется для проверки гипотез на инфраструктуре, приближенной к вашей, а также анализа решенных проблем при выпуске новых версий BPMSoft.
  2. Подробное пошаговое описание действий, приводящих к возникновению проблемы — подробная информация о проблеме ускоряет анализ и решение.
  3. Временной интервал и условия возникновения проблемы — эта информация необходима для максимально точного исследования причин возникновения проблемы.
  4. Версия операционной системы, используемой в работе — эта информация требуется для проверки гипотез, связанных со спецификой используемой операционной системы.
  5. Конфигурационные файлы приложения — эта информация требуется для анализа режимов работы BPMSoft.
  6. Полные логи работы приложения за период воспроизведения проблемы — эта информация необходима для исследования проблем и причин ее возникновения.
  7. Инфраструктурные параметры сервера приложения, сервера базы данных, сервера кэширования (количество нод, CPU, RAM, наличие прокси или балансировщика) — эта информация требуется для проверки гипотез на инфраструктуре, приближенной к вашей.
  8. Если проблема связана с клиентской частью приложения — HAR-файл, полученный при воспроизведении проблемы, и скриншоты консоли браузера.
  9. Результаты предварительного анализа влияния проектного слоя — эта информация способствует ускоренному решению обращения за счет минимизации количества проверяемых гипотез.
Если в статье нет решения вашей проблемы, вы можете задать вопрос в Сообществе.

Рекомендуем изучить

Системные требования BPMSoft
Мониторинг пула подключений и долгих транзакций


Материал был полезен для вас?
Вебинар: 22 апреля в 11:00
Приглашаем вас на вебинар «BPMSoft – от выбора к реальным процессам», где покажем, как компании на практике сокращают time-to-market и масштабируют бизнес с помощью решений BPMSoft.
Регистрация на мероприятие
Готовы сделать выбор CRM?
Оставьте заявку, и наши эксперты бесплатно проконсультируют вас, подберут подходящую конфигурацию и рассчитают стоимость проекта.
Готовы сделать выбор CRM? (детальная)
Оставьте заявку, и наши эксперты бесплатно проконсультируют вас, подберут подходящую конфигурацию и рассчитают стоимость проекта.
Готовы сделать выбор CRM?
Оставьте заявку, и наши эксперты бесплатно проконсультируют вас, подберут подходящую конфигурацию и рассчитают стоимость проекта.
Готовы сделать выбор CRM? (детальная)
Оставьте заявку, и наши эксперты бесплатно проконсультируют вас, подберут подходящую конфигурацию и рассчитают стоимость проекта.
Оставить заявку
Оставьте свои контакты и наш менеджер свяжется с Вами в ближайшее время.
Демонстрационная версия BPMSoft
Заполните заявку для получения бесплатного доступа к демонстрационному стенду на 14 дней.
Типовое внедрение
Внедрите BPMSoft CRM в свою компанию всего за 8 рабочих дней по фиксированной цене! Заполните заявку для уточнения условий.
Заказать презентацию
Наш менеджер свяжется с Вами в ближайшее время.
Рассчитать стоимость
Задать вопрос
Карта сценариев использования ИИ для управления маркетингом, продажами и сервисом
Заполните форму и мы отправим исследование на E-mail
Присоединяйтесь к партнерской сети BPMSoft
Оставьте свои контакты и наш менеджер свяжется с Вами в ближайшее время
Тип партнерства*
Управление полным жизненным циклом клиента: от генерации лидов и продаж до внедрения, поддержки и продления подписки.
Разработка собственного Приложения – производного программного обеспечения, созданного на платформе BPMSoft (Базовое ПО).
Есть вопросы?
Не нашли для себя подходящую вакансию, или остались вопросы?
*
Есть вопросы?
Не нашли для себя подходящую вакансию, или остались вопросы?
*
Стать образовательным партнёром
Оставьте свои контакты и наш менеджер свяжется с Вами в ближайшее время.
Заявка на консультацию
Оставьте свои контакты и наш менеджер свяжется с Вами в ближайшее время.
Подписка
Спасибо!
Ваша заявка принята.
Наш сотрудник свяжется с вами в течение 1-2 рабочих дней.
Внимание!
Обнаружена ошибка.
Проверьте вашу почту
Для завершения подписки перейдите по ссылке в письме, которое мы только что отправили. Если письма нет во «Входящих», проверьте папку «Спам».
Telegram Подписаться
Уважаемые клиенты! Предупреждаем о случаях недобросовестной конкуренции и мошенничестве в сети Интернет.
Подробнее