Краткий ответ: Измерьте прежде чем что-то менять: тайминги curl -w делят задержку между сетью, обработкой на сервере (TTFB) и загрузкой контента. Высокий TTFB указывает на приложение/базу, медленная загрузка — на вес страницы или сеть, а «медленно всё, включая SSH» — на ресурсы сервера. Чините измеренный слой, а не угаданный.

Обзор

У «сайт медленный» четыре независимых подозреваемых: ресурсы сервера, код приложения, база данных и сеть/вес страницы. У каждого дешёвый тест. Гайд проходит их в порядке вероятности и усилий.

Что нужно иметь

  • Доступ по SSH и один воспроизводимо медленный URL.

Пошаговая инструкция

  1. Разделите время:
    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/
    TTFB > 1s = серверная обработка; большой разрыв между ttfb и total = тяжёлая страница или медленный канал.
  2. Исключите дефицит ресурсов: быстрые проверки CPU и RAM; также df -h (полные диски тормозят всё).
  3. Путь высокого TTFB: включите лог медленных запросов MySQL; добавьте отсутствующие индексы; включите кэширование приложения (объектный кэш, кэш страниц, OPcache для PHP).
  4. Путь тяжёлой страницы: сожмите изображения, включите gzip/brotli, уменьшите количество сторонних скриптов. Waterfall в dev-tools браузера назовёт самые тяжёлые ресурсы.
  5. Если та же страница быстра локально (curl с сервера на 127.0.0.1), но медленна удалённо — тестируйте сетевой путь: см. скорость сети ниже ожидаемой.

Типичные проблемы

  • Вообще нет кэширования: каждый запрос бьёт в PHP+БД — самый большой выигрыш на большинстве сайтов.
  • Медленно только в фиксированные часы: cron-задачи/бэкапы конкурируют за I/O.
  • Далёкая аудитория: физика — обслуживайте пользователей из ближайшей локации или добавьте CDN.
  • Сервер в swap: дефицит RAM делает всё вязким; сначала посмотрите free -h.

Когда обращаться в поддержку

Если замеры показывают, что медленна именно сетевая часть до всех направлений, или производительность упала без каких-либо изменений с вашей стороны, — откройте тикет с curl-таймингами, а для сетевых участков — MTR в обе стороны.

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

Что такое TTFB и о чём говорит высокое значение?

Time To First Byte — сколько сервер «думает» перед отправкой первого байта. Значения выше примерно секунды указывают на работу приложения или базы данных, а не на сеть или размер страницы.

Какое одно изменение сильнее всего ускоряет типичный динамический сайт?

Кэширование: кэш страниц плюс объектный кэш превращают большинство запросов в чтение из памяти вместо работы PHP и SQL и регулярно сокращают время ответа на порядок.

Похожие статьи

Нужна помощь? Связаться с поддержкой Cloud2Y →

Помог ли вам данный ответ? 0 Пользователи нашли это полезным (0 голосов)