Четыре сайта на одном и том же коде прогрева. Замер на тестовых копиях за 6 часов показал разницу, которая не укладывается в голову: от нуля до пяти тысяч запросов.
Это тридцать вторая часть цикла «Кэш страниц без MISS».
| Сайт | Запросов прогрева за 6 часов |
|---|---|
| каталог техники с поддоменами (самый крупный) | 0 |
| каталог среднего размера | 4320 |
| каталог с двумя языками | 5109 |
| два сайта на одной теме | 74 |
Ноль — не значит сломан
Первая реакция на ноль у самого крупного сайта — прогрев сломан. Его же отчёт говорил: проверено 2528 ячеек, пропущено 0. Прогрев молчал, потому что греть было нечего: всё и так было тёплым.
«Ничего не делает» и «всё сделано» снаружи выглядят одинаково. Отличить их можно только по отчёту проверки — поэтому он и нужен.
Откуда тысячи
На двух сайтах с тысячами запросов работал часовой добор — обход всех страниц раз в час. Его добавили, когда кэш жил 30 минут и каталог к полудню выпадал из кэша из-за волн обмена 1С. В коде стоял комментарий: «тёплая страница стоит дёшево, 0,02 с».
Комментарий был неверным. При фоновом обновлении запрос к устаревшей копии отдаётся за 0,02 с, но запускает полный рендер в фоне (третья часть). 178 адресов × 2 устройства каждый час — около 712 рендеров в час, впустую.
Кто на самом деле нагружает сайт
Сутки на рабочем сайте с двумя языками: 18 386 запросов к PHP, из них 13 722 — обходчик. 75 % нагрузки — прогрев. Живых запросов страниц — около 3420.
Но и тут разбор показал важное: основной объём шёл не от расписания, а от полных сбросов. Каждый выкат — это полный круг, около 2000 запросов. Чем чаще выкаты, тем больше прогрева.
Что сделали
- перевели кэш страниц на неделю (четвёртая часть);
- часовой добор сняли — он был костылём под короткую валидность;
- суточный обход оставили страховкой от вытеснения;
- пятиминутную проверку «нет ли холодного» оставили — она дешёвая и ловит реальное.
Частота обхода у нас так и не стала единой: где-то раз в сутки, где-то раз в 6 часов — там, где круг маленький и заодно наполняет реестр блоков. Универсального числа нет; правило одно — обход не для свежести.
Хотите понять, сколько нагрузки создаёт ваш прогрев?
Пришлите доступ к журналам — посчитаю долю обходчика в запросах к PHP.
// загружаю комментарии…