@BloodVIRUS

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

Здравствуйте. Много я разных серверов собирал, и ранее никогда проблем не было. А вот сейчас чушь какая то происходит..
Есть сервер, nginx + php + mysql
В какое-то случайное, но регурярное время (не так чтобы случайно поймал баг, и все. Баг ловится постоянно, без какой либо на первый взгляд зависимости) сервер на запорс может задуматься на 8-15 секунд.

На сервере много разных сайтов\веб приложений. Особо ощутимо это в веб приложениях, работающих по архитектуре REST. Вот прямо из консоли DevTools гугл хрома "спамлю" аякс запросами на сервер. Все они исполняются за ~200мс, но внезапно 5-6 запросов (я спамлю 1 запрос в секунду) исполняются по 10 секунд, и дальше все норм.

Подозревал что может быть, какие то проблемы с MySQL, но на чистом yii2 веб приложении без использовании базы данных точно такое же происходит.

Если циклично пинговать сервер - пинг 66-67мс, потерь не возникает. WinMTR

5f86eecd8b645685960451.png

Очень смущал узел core24, но тех поддержка утверждает что проблем с этим нет, и проблемы на моей стороне..

Весь день пытаюсь решить проблему, но с какой стороны подойти - не представляю.
Версии:

Linux changeme 4.15.0-58-generic #64-Ubuntu SMP Tue Aug 6 11:12:41 UTC 2019 x86_64 x86_64 x86_64 GNU/Linux
PHP 7.4.6 (cli) (built: May 14 2020 10:02:44) ( NTS )
nginx version: nginx/1.17.1
Server version: 10.4.6-MariaDB-1:10.4.6+maria~bionic-log - mariadb.org binary distribution
  • Вопрос задан
  • 92 просмотра
Пригласить эксперта
Ответы на вопрос 2
nokimaro
@nokimaro
Я бы начал с того что включил slow_query_log в MySQL

Если считаете что дело не в БД, то нужно глубже зарываться в мониторинг сервера (cpu, inodes)
Так же сессии в файлах могут стать причиной такой проблемы, и тормозящий запрос именно тот на который выпадает запуск GC.
Ну и логи php-fpm обязательно посмотреть, нету ли сообщений о том что не хватает воркеров, так как в зависимости от настроек fpm может быть затуп в момент когда создаются новые воркеры при динамическом пуле или затуп от того что кончается лимит воркеров.

Спам запросов из браузера + сессии тоже может быть причиной проблемы из-за блокировок сессий.
Ответ написан
Aco
@Aco
Full Stack Developer
Помимо штатных проверок всего сетевого и логов рекомендую добавить заголовки профилирования Server-Timing. Тогда можно будет прямо в браузере увидеть (во вкладке Сеть/Network) на каких этапах происходит затуп, выглядеть это будет так:
5f86ffb77fa88979698341.jpeg.
Не знаю умеет ли yii в Server-Timing...
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы