~ / blog

Блог — страница 9

Пишу о том, что делаю каждый день: скорость сайтов, кэш, обмен с 1С, серверы и WordPress без лишнего.

#Кэширование 2 мин

Воркер простаивал половину времени, а счётчики выглядели отлично

Прогон 40 с, следующий — через 60 с от конца: воркер проскакивал тик крона и работал 40 секунд из 120. Каждый прогон отрабатывал полный бюджет, поэтому отчёт был зелёным. Запуск через 5 с — темп ×2,1. Мерить интервал, а не рендеры.

· · ·
#WordPress 3 мин

Подписка через Telegram-бота: ссылка вместо формы

Кнопка — ссылка t.me с параметром start, одинаковая для всех и идеальная для кэша. Подтверждение не нужно, бот забирает сообщения сам раз в минуту кроном, с замком на 50 секунд и смещением до обработки. Рассылка — общая с почтой.

· · ·
#Кэширование 2 мин

Ускоренный догрев после выката — по состоянию, а не по таймеру

Окно в 20 минут закрылось при 3118 холодных ячейках. Ограничитель прогона — время, режим держится, пока хвост больше 300: 4229 → 0 за 33 минуты при нагрузке 0,04–0,22. Потолок 3 часа и что происходит на маленьком сайте.

· · ·
#Кэширование 2 мин

Виджет мониторинга кэша в админке: что показывать, чтобы это было полезно

Кольцо на одном CSS-градиенте, бегунки прогресса по видам блоков, отдельный бегунок горячих задач с дневным счётчиком. Чего не показывать: долю места и счётчик круга, который всегда 0. Пауза на скрытой вкладке.

· · ·
#PageSpeed 3 мин

Две строки CSS сделали файл блокирующим — и другие сюрпризы разделения стилей

Два правила на 48 байт (min-width 381 и 441 px) опустили порог десктопного файла, и телефоны снова ждали его — 450 мс из 850. Плюс каскад: правило из отдельного файла побеждает базовое ровно с ширины порога.

· · ·
#Кэширование 2 мин

Защита прогрева по нагрузке: ступени, а не выключатель

Сосед на общем сервере занимал 331 % CPU, порог «нагрузка ≥ 3 — пропустить» выключил прогрев на часы, молча. Ступени: треть бюджета, один рендер за прогон, пропуск только при аварии. И три гипотезы, которые замер опроверг.

· · ·
#WordPress 3 мин

Подписка с подтверждением на кэшируемом сайте

Двойное подтверждение, чтобы не подписали чужой адрес; ссылки из письма мимо кэша через X-Accel-Expires, потому что nginx игнорирует Cache-Control; рассылка только при первой публикации, пачками по 40; отписка и честный список того, что ещё не сделано.

· · ·
#Кэширование 2 мин

Мёртвые поколения ключей в Redis и сколько памяти ему давать

При noeviction старые поколения не «истекут сами» — они съедят память, и Redis откажет в записи. SCAN с UNLINK: 45 611 ключей за 0,32 с, 252 → 14,65 МБ. Формула памяти на два поколения: 32 269 ячеек — 181 МБ, лимит 1 ГБ.

· · ·
#PageSpeed 2 мин

Десктопные стили — отдельным файлом: телефон не ждёт min-width

Стили для широких экранов выносятся в отдельный файл с атрибутом media, и телефон перестаёт их ждать: Speed Index 4,4 → 1,8 с, задержка отрисовки LCP 1870 → 270 мс. Как это устроено и три грабли, включая молча выключившееся разделение.

· · ·

$ tail -f /blog

Не пропустите новые статьи

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

В Telegramодна кнопка «Старт» в боте

или на почту

связаться

Расскажите о задаче