preloader
Меню

Сайт медленно загружается? Ох уж это страшное слово TTFB

05.08.2019

На днях нам поступил заказ на доработку сайта, который очень плохо загружался. Заказчик жаловался, что предыдущий разработчик сделал плохой сайт и совсем не оптимизировал код и в частности картинки.

Приступив к работе, мы увидели, что сайт при первой загрузке без кеширования прогружается… Внимание! Целых 20 секунд, поэтому стали разбираться в чем дело.

  • Упорядочили файлы страницы по объему и выяснили точное время загрузки и вес страницы:

    1.1.jpg

    Полное время загрузки 20.53 сек, загрузка дерева 5.53 сек, вес 2.8 мб.

    Видим, как минимум следующее, что общий вес почти 3 мб, что достаточно немало, но при таком весе страница должна грузиться максимум секунду. Файлы, которые много весят - в основном картинки, поэтому их можно просто пережать и сэкономить суммарно до 1 мб.

  • Находим первый попавшийся «тяжелый» элемент и что мы видим:

    1.2.jpg

    Время загрузки файла весом 417 кб составляет всего 25 милисекунд! 25 миллисекунд, Карл! Откуда же такая величина загрузки?

    Видим, что очередность загрузки и ожидания составляет порядка 5.5 сек и это не нормально!

  • Смотрим «Водопад» запросов и видим:

    1.3.jpg

    Очередь загрузки каждого файла смещена вправо почти на величину времени загрузки предыдущего! То есть фактически загрузка идет практически последовательно.

    1.4.jpg

    Показатель TTFB почти каждого ресурса составляет 2,93 сек. Что же это такое, TTFB?

    То есть по каким-то причинам, файл начинает свою загрузку не сразу, что соответственно и является причиной «тормознутого сайта».

    Что же делать? Из выше изученного стало понятно, что надо ковырять сперва не сайт, а настройки сервера!

    Открываем логи и видим, что запросы GET на загрузку поступают в очередь, а не обрабатываются сразу:

    1.5.jpg

В первую очередь подкорректируем очередность загрузки и настройки PHP:

  • Скорректировали настройки limit_req в NGINX;

  • Перевели php на 7 версию и установили вместо php-cgi связку php-fpm, которая существенно ускоряет работу сайта;

  • Сделали ручную конфигурацию vhost, поскольку php-fpm из коробки не работает должным образом с битрикс и выдает 404 ошибку на всех динамических страницах. Это связано с тем что в этом режиме не обрабатывает файл .htaccess.

Проделав эти настройки, проблема со скоростью загрузки сайта была устранена. Так же, включив в Битриксе автокомпозит, мы добились того, что скорость загрузки стала 680 миллисекунд!

1.6.jpg

Вот собственно и вся хитрость. Если у Вас возникла схожая проблема и решить ее собственными силами не удается, свяжитесь с нами, поможем!

#Разработка
#Инструменты
Теги
#Разработка
#Инструменты
Понравились статьи? Все это и многое другое в нашей группе ВКонтакте, подписывайтесь!

Давайте обсудим ваш проект