Day by Day, Site by Site

Open source, Some Code, Troubleshooting, Good Links

Aug 13, 2024 - debug

Решение проблем с производительностью Wordpress

Данный пост уже не актуален, я все откладывал его до лучших времен. Время настало. Тут должен быть мем с котом и часами)

Ставим xhprof/xdebug, strace если хочется тёплого лампового свечения сисколов. Рандомно включаем на 2-3 страницах, видим в чем проблема.

Обычно варианта три:

  1. Очень большие задержки от файловой системы. В 90% случаев не чистится файловый кеш. Чистим, проверяем настройки плагинов кеширования и на всякий случай ставим соответствующий крон find … -delete раз в час для файлов старше CACHE_TIME*2

  2. Очень большие задержки по сети (конкретный плагин который делает запросы по сети, а удалённый ресурс тормозит). Обычно таких плагинов 1-2, после их отключения и/или впиливания кеширования конкретно в них всё работает.

  3. Конкретный плагин который кладёт БД. Смотрим запросы в mysql-e show full processlist, проставляем индексы ну или запиливаем кеш где логически возможно.

  4. Если ни одно из вышеперечисленных, убеждаемся что машине тупо не хватает процессора, добавляем немного ядер и спокойно изучаем проблему более детально.

Эти 4 пункта покрывают 99% случаев. Остальной 1% это самое интересное и выходит за рамки этой заметки.

Когда работал в хостинге решал такие проблемы десятки раз, на потоке диагностика занимала 5-10 минут. И что WP, что Битрикс, что Друпал, всё одно примерно и проблемы одинаковые.

Честно говоря, это всё общетехнические методы, которые мне постоянно помогали и не только в PHP-приложениях.

P.S. Смотрим на htop и понимаем чем конкретно занимается машина и чего ждёт вообще.