Отчёт о производительности.
Отчёт нужен, чтобы отследить, какие тяжёлые операции происходят в системе.
Включается он в инструментах разработчика. По умолчанию он отключен, чтобы не нагружать систему. Там можно настроить его расписание, включить и скачать логи.
Что из себя представляют логи? Это excel документ со всем списком запросов, сколько раз обращение происходило к серверу и какое время они занимали. Отчёт также содержит информацию о том, как отрабатывают сценарии. Также мы можем посмотреть информацию по SQL-запросам. Средствами excel мы уже можем анализировать отчёт, фильтровать, сортировать, находить самую тяжёлую операцию.
On-premises. Тонкая настройка инфраструктуры.
К инфраструктуре мы относим:
- «Железо», ОС и сети;
- Контейнеризация (это наш Kubernetes);
- Базы данных и хранилища.
Зачем нам касаться инфраструктуры? Если мы являемся держателем системы и не пользуемся ей в облаке, то нам приходится выполнять задачи по настройке системы для осуществления оптимизации и обеспечения работоспособности. Иногда нужно провалиться в инфраструктуру и понять, куда же мы упираемся.
On-premises. Мониторинг
Мониторинг позволяет нам увидеть, как используются ресурсы. Настраиваем Prometheus и Grafana и работаем с ними. У нас есть замечательные статьи на эту тему.
On-premises. Системные логи
Наша система пишет для Администраторов логи. Это полезная информация для прочтения.
Трассировка.
Трассировка — это инструмент для того, чтобы провалиться в исполнение какой-то функции. Допустим, мы делаем какую-то функцию и в ней какая-то ошибка. Для того чтобы пройти её всю по шагам, существует инструмент трассировки. Он помогает найти узкое место, в которое мы упираемся, или найти какие-то ошибки в логике.
Для трассировки рекомендуем использовать Jaeger. С помощью него можно в первую очередь найти проблемные места. Можно задать критерии фильтрации, где можем указать продолжительность операций, которые мы хотим посмотреть, сервис, к которому мы обращаемся. Как правило, это будет main или processor. В результате, мы получим список интересующих нас операций.
Открыв конкретную операцию, мы видим таймлайн, как происходит выполнение всей функции. Есть возможность провалиться непосредственно в SQL-запросы. Тут нам открывается возможность оптимизации средствами Postgre. Можем добавить какие-то индексы или переписать сценарий, чтобы использовать кэш, чтобы не загружать лишний раз инфраструктуру и таким образом ускорить работу процесса.
Последнее редактирование модератором: 21 май 2024