Как узнать какой php код нагружает процессор?

Всем добрый день.

Дано:
1. Есть vps с LAMP (PHP7.0, mysql последней версии, php крутится в кач-ве модуля apache)
2. Стандартная нагрузка на процессор колеблется в пределах 10-20%.
3. Раз в сутки на наш сервак 1С посылает данные для синхронизации. Процессор это не грузит.
4. Всякие внешние сервисы, наподобие авито, гугла и яндекса также периодически обращаются к серваку, но не грузят сайт.
5. Задач кронтаба также немного и они также не нагружают.

Но вот беда: раз в сутки на 1.5-2.5 часа нагрузка на процессор начинает резко возрастать до 50-60%. В этот момент не наблюдается увеличения трафика, не наблюдается вообще ничего. Сегодня же нагрузка поднялась до 100% и это уже плохо.
top показал, что нагрузка идет со стороны процессов apache, соответственно, косяк скорее всего в php коде. Начал гуглить способы профилирования всего этого дела, пока нашел только запуск server-status со стороны apache2 + тех поддержка хостинга подсказала про lsof -p

И теперь вопрос к знатокам: какие еще способы узнать, какой код и при каком запросе так сильно грузит сервак? Хочу узнать как можно больше способов.
  • Вопрос задан
  • 412 просмотров
Пригласить эксперта
Ответы на вопрос 1
FanatPHP
@FanatPHP
Чебуратор тега РНР
На PHPRussia2019 был отличный доклад от Павла Мурзакова из Badoo, где он как раз рассказывал именно про это.

В данном случае поможет https://github.com/adsr/phpspy
Ответ написан
Ваш ответ на вопрос

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

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