Перейти к содержимому

Медленный сайт на практике - где искать и что чинить

Скорость - подтема на 19 вопросов из собранных. Почти все они начинаются одной фразой: сайт тормозит, а причина непонятна.

Что общего у этих задач

Время ответа складывается из двух разных величин: ожидания свободного процесса и работы самого кода. Первое лечится настройками сервера и кэшем, второе - правкой запросов и шаблонов. Пока они не разделены, любые меры случайны.

Кэшей в платформе несколько, и они вложены. Кэш данных внутри компонента, кэш результата компонента и композитный кэш всей страницы работают одновременно. Правка, «которая не появляется на сайте», застревает на одном из этих уровней.

Медленно под нагрузкой и медленно всегда - разные диагнозы. Первое означает нехватку процессов или памяти, второе - тяжёлый код на каждой странице. Симптомы похожи, а лечение противоположное.

Замер идёт до правок и после них. Без числа до работы любое ускорение остаётся ощущением, а заказчик оценивает результат по секундам, а не по списку сделанного.

Решения подтемы

Частые вопросы

С чего начинать разбор медленного сайта?

С разделения времени ответа на ожидание и выполнение. Журнал веб-сервера показывает первое, журнал медленных запросов PHP - второе.

Почему включённый кэш не помогает?

Кэш компонента не спасает, если тормозит не компонент, а внешний вызов или запрос вне его. Кэшируется только то, что внутри области кэширования.

Композит ускоряет всё подряд?

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

Что смотреть в первую очередь на живом сайте?

Число процессов PHP, память и журнал медленных запросов. Эти три показателя закрывают большинство случаев без профилирования кода.

Связанные темы

Первоисточники