logo
info@eqsash.com

Почему сайт долго грузится при первом заходе и между перерывами запросов страниц

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

site-low-first-database-cache

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

Нужно сказать, что причин может быть множество, но наиболее вероятная – плохая оптимизация запросов к базе данных или ее отсутствие. Такие запросы порождают передачу больших объемов данных между сайтом и базой данных, тем более если они размещаются на разных серверах. Причем здесь снижают скорость как сами запросы, так и объем обрабатываемых данных.

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

Техническое объяснение – при первом запросе или при некотором ожидании между запросами (например, 20 секунд) происходит пересоздание процесса, отвечающего за работу с базой данных – старый процесс уничтожается и сбрасывается кеш. Если же делать запросы с меньшим интервалом – процесс не успевает уничтожиться и возвращает данные более быстро, так как он уже создан и имеет все или часть кешированных данных, которые нужно отдать.

Как устранить задержки при первом открытии сайта, описанные выше? Необходимо произвести оптимизацию кода, отвечающего за запросы к базе данных. Например, установить ограничения на количество выбираемых строк из нее на каждом запросе. Поиск медленных запросов делается просто – например, в коде можно устанавливать в определенных местах вставки временного кода для записи скорости и таким образом искать медленный участок кода. Когда он найден – выполнить оптимизацию, а если бесполезно – тогда можно прибегнуть к использованию кеша. Создать свою систему кеширования на сайте довольно просто, но это не входит в тему данной статьи.

Оставить заявку

Последние статьи

Популярные разделы