Краткий ответ: Измерьте прежде чем что-то менять: тайминги curl -w делят задержку между сетью, обработкой на сервере (TTFB) и загрузкой контента. Высокий TTFB указывает на приложение/базу, медленная загрузка — на вес страницы или сеть, а «медленно всё, включая SSH» — на ресурсы сервера. Чините измеренный слой, а не угаданный.
Обзор
У «сайт медленный» четыре независимых подозреваемых: ресурсы сервера, код приложения, база данных и сеть/вес страницы. У каждого дешёвый тест. Гайд проходит их в порядке вероятности и усилий.
Что нужно иметь
- Доступ по SSH и один воспроизводимо медленный URL.
Пошаговая инструкция
- Разделите время:
TTFB > 1s = серверная обработка; большой разрыв между ttfb и total = тяжёлая страница или медленный канал.curl -o /dev/null -s -w 'dns: %{time_namelookup}s connect: %{time_connect}s ttfb: %{time_starttransfer}s total: %{time_total}s\n' https://yourdomain.com/ - Исключите дефицит ресурсов: быстрые проверки CPU и RAM; также
df -h(полные диски тормозят всё). - Путь высокого TTFB: включите лог медленных запросов MySQL; добавьте отсутствующие индексы; включите кэширование приложения (объектный кэш, кэш страниц, OPcache для PHP).
- Путь тяжёлой страницы: сожмите изображения, включите gzip/brotli, уменьшите количество сторонних скриптов. Waterfall в dev-tools браузера назовёт самые тяжёлые ресурсы.
- Если та же страница быстра локально (
curlс сервера на 127.0.0.1), но медленна удалённо — тестируйте сетевой путь: см. скорость сети ниже ожидаемой.
Типичные проблемы
- Вообще нет кэширования: каждый запрос бьёт в PHP+БД — самый большой выигрыш на большинстве сайтов.
- Медленно только в фиксированные часы: cron-задачи/бэкапы конкурируют за I/O.
- Далёкая аудитория: физика — обслуживайте пользователей из ближайшей локации или добавьте CDN.
- Сервер в swap: дефицит RAM делает всё вязким; сначала посмотрите
free -h.
Когда обращаться в поддержку
Если замеры показывают, что медленна именно сетевая часть до всех направлений, или производительность упала без каких-либо изменений с вашей стороны, — откройте тикет с curl-таймингами, а для сетевых участков — MTR в обе стороны.
Частые вопросы
Что такое TTFB и о чём говорит высокое значение?
Time To First Byte — сколько сервер «думает» перед отправкой первого байта. Значения выше примерно секунды указывают на работу приложения или базы данных, а не на сеть или размер страницы.
Какое одно изменение сильнее всего ускоряет типичный динамический сайт?
Кэширование: кэш страниц плюс объектный кэш превращают большинство запросов в чтение из памяти вместо работы PHP и SQL и регулярно сокращают время ответа на порядок.
Похожие статьи
- Сайт выдаёт 504 Gateway Timeout
- Скорость сети ниже ожидаемой
- Высокая нагрузка на CPU: быстрая диагностика
- Как диагностировать низкую скорость сети
Нужна помощь? Связаться с поддержкой Cloud2Y →
