hosting:optimization:ttfb

2.19.2. Время ответа сервера (TTFB)

Время ответа сервера (TTFB — Time To First Byte) — время до получения первого байта (сетевого пакета) страницы сайта после отправки запроса со стороны клиента (например, из браузера).

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

Проверить, что причиной повышенного времени ответа сервера являются внутренние процессы сайта (скрипты, запросы к базе данных), а не общие проблемы с сервером, проще и быстрее всего можно с помощью максимально примитивного PHP-скрипта, например выводящего результаты phpinfo.

Если сначала замерять TTFB для запроса, который предполагает участие скриптов сайта (обычно главная страница сайта, если он динамический), а затем TTFB для запроса к примитивному скрипту, то разница между полученными результатами примерно покажет чистое время работы скриптов.

Убедиться в том, что сама по себе база данных также отрабатывает быстро, можно, выполнив примитивные запросы к ней, или хотя бы просто проверив время открытия любых таблиц через phpMyAdmin.

Для уменьшения времени ответа сервера разработчику сайта (или привлечённому стороннему профильному специалисту) стоит самостоятельно провести анализ операций, выполняющихся на сайте при обработке запросов, и изучить возможность их оптимизации.

Наиболее прямой подход — логирование работы скриптов. То есть в скриптах, которые выполняются каждый раз в процессе загрузки сайта, проставить контрольные точки, в которых отмечать время, которое понадобилось для обработки того или иного участка кода. Примеры вывода времени обработки скрипта можно найти в открытых источниках в сети (например, здесь).

В случае наличия задержек, связанных с запросами к базе данных, следует:

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

Со стороны хостинга помочь в некоторой степени сократить время ответа сервера могут следующие средства:

  1. Смена версии PHP на более новую, если код сайта с ней совместим (особенно может быть заметен эффект перехода с PHP 5 на PHP 7).
  2. Подключение и настройка дополнительной услуги OPcache (кеширование скомпилированного байт-кода скриптов в оперативной памяти, специальная поддержка со стороны сайта не требуется).
  3. Подключение и настройка дополнительной услуги Memcache(d) (кеширование произвольных данных в оперативной памяти, требует поддержки со стороны сайта).
  • hosting/optimization/ttfb.txt
  • Последние изменения: 2019/08/29 12:37
  • — karlov