У многих PHP-сайты начинают тормозить без видимых причин. Обычно проблемы у меня были связаны с базой данных: запросы не оптимизированы, индексы не расставлены или где-то лишние join'ы. Еще часто виноваты тяжелые циклы и постоянные file_get_contents на удалённые ресурсы. Ну и кэширование не использую многие, хотя это самый простой способ.
Если начинаешь с «почему тормозит», первым делом смотрю логи, смотрю время выполнения скриптов, проверяю slow query в MySQL. В php добавляю профайлер (хотя бы xdebug или fancy debug info), чтобы понять, где тратится время. Иногда банально отключение лишних плагинов помогает в CMS.
Если нужна скорость — кэш страницы, кэш запросов, оптимизация структуры запросов и минимизация обращений к диску. И не забывайте про opcode cache, вроде opcache, который почти всегда включен, но стоит проверить.
Кто как обычно решает такую проблему? Какие ещё подводные камни встречались?
Часто тормозит не сам PHP, а именно база данных — если запросы неэффективные, это сильно бьёт по скорости. Ещё стоит глянуть, не делает ли скрипт лишние обращения к файлам или внешним сервисам — они могут «подвисать». Кэширование часто недооценивают, а оно реально может многое упростить и ускорить.