alexbaum
@alexbaum
JS-разработчик, наставник.

Инструментарий для поиска тяжелых php(5.2)-скриптов и ресурсоемких запросов к БД (mysql 5.1) на сервере (freebsd 8.1)

Ребята, помогите советом.

Исходные данные:
Есть сайт на Битриксе, который стал тормозить, хотя вроде ничего в коде не меняли и посетителей больше не стало.

Сервер:
  • FreeBSD lapsi.ru 8.1-RELEASE-p1,
  • apache-2.2.17_1,
  • php52-5.2.14_1,
  • mysql-server-5.1.51_1,
  • nginx-0.8.53 (отдает статику)


Задача:
Определить, какой модуль (в частности, какой php-файл) стал вызывать нагрузку.
Откуда поступают тяжелые запросы к БД (вроде такого: SELECT SQL_CALC_FOUND_ROWS e.name,e.id,e.DETAIL_PICTURE,price.PRICE много раз)
  • Вопрос задан
  • 4619 просмотров
Пригласить эксперта
Ответы на вопрос 8
можно логировать медленные запросы.
my.cf

log_slow_queries = ON;
log_slow_queries = /var/log/mysql/mysql-slow.log
long_query_time = 5

запросы, которые длились дольше 5 секунд, попадут в лог
Ответ написан
Комментировать
pentarh
@pentarh
я обычно такие запросы в mc просто регекспами ищу
Ответ написан
Комментировать
slang
@slang
Для скриптов воспользуйтесь профайлером, например Zend Debugger'а, для базы уже ответили выше, есть slow.log
Ответ написан
Комментировать
AmdY
@AmdY
PHP и прочие вебштучки
xdebug для профайлинга и pinba pinba.org/wiki/Main_Page
Ответ написан
Комментировать
opium
@opium
Просто люблю качественно работать
Обычно парсю логи апача чтобы увидеть наиболее долго выполняемые скрипты.
Ответ написан
Комментировать
Tonik
@Tonik
Все что описали выше полезно, но я добавлю чем мы пользуемся

Профайлер — mirror.facebook.net/facebook/xhprof/doc.html Реально класная вещь. Это расширение, которе легко управляет из PHP. Конечно результаты смотряться не так красиво, как xdebug + kcachegrind но есть очень нужная фича для вас. Результаты профилирования разных страниц можно агригировать в один усредненный отчет. То есть можно на продакшене профелировать, скажем 0.01% все запросов, и потом смотреть агригированнй отчет. Сразу будет видно какие ф-ция тормозят. С xdebug можно не угадать и профелировать не те урлы.
Сразу отвечу на вопросы, да пробовали его включать под нагрузкой и сильного оверхеда не заметил.

Для SQL люто советую www.maatkit.org/doc/mk-query-digest.html Умет использовать в качестве источника SHOW PROCESSLIST, binlog и даже анализировать сетевой трафик чере tcpdump. Самое полезное — умеет объеденять запросы в логические классы с точностью до параметров.
Ответ написан
Настроил нормально(!) профилирование xdebug и всё.
Ответ написан
Комментировать
@squint
В вашем вопросе уже заложен ответ на него — «сайт на Битриксе»
Ответ написан
Ваш ответ на вопрос

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

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