Почему сайт долго грузится при первом заходе и между перерывами запросов страниц
Бывают случаи, когда сайт разработан на локальном хостинге и готов к переносу на рабочий хостинг, однако на рабочем хостинге видны задержки при открытии страниц (сайт долго грузится), которых не было на локальном хостинге. Причем такие задержки носят непостоянный характер – возникают задержки при первом заходе и через перерывы между запросами страниц. В чем причина и как устранить данную проблему?
Ответ на вопрос может занять время даже у опытных специалистов. Обычно приходится выполнить множество операций тестирования и изучения всевозможных логов сайта для поиска ответа, однако и это может не помочь. Ведь задержки стали проявляться только на рабочем хостинге, а на локальном - все работает быстро.
Нужно сказать, что причин может быть множество, но наиболее вероятная – плохая оптимизация запросов к базе данных или ее отсутствие. Такие запросы порождают передачу больших объемов данных между сайтом и базой данных, тем более если они размещаются на разных серверах. Причем здесь снижают скорость как сами запросы, так и объем обрабатываемых данных.
Но почему такие задержки не видны на локальном хостинге? На локальном хостинге нет передачи данных по сети, поэтому даже неоптимизированные запросы и выборка больших объемов данных может сильно не влиять на скорость открытия страниц сайта. Чего нельзя сказать о сайте, размещенном в сети на рабочем хостинге.
Техническое объяснение – при первом запросе или при некотором ожидании между запросами (например, 20 секунд) происходит пересоздание процесса, отвечающего за работу с базой данных – старый процесс уничтожается и сбрасывается кеш. Если же делать запросы с меньшим интервалом – процесс не успевает уничтожиться и возвращает данные более быстро, так как он уже создан и имеет все или часть кешированных данных, которые нужно отдать.
Как устранить задержки при первом открытии сайта, описанные выше? Необходимо произвести оптимизацию кода, отвечающего за запросы к базе данных. Например, установить ограничения на количество выбираемых строк из нее на каждом запросе. Поиск медленных запросов делается просто – например, в коде можно устанавливать в определенных местах вставки временного кода для записи скорости и таким образом искать медленный участок кода. Когда он найден – выполнить оптимизацию, а если бесполезно – тогда можно прибегнуть к использованию кеша. Создать свою систему кеширования на сайте довольно просто, но это не входит в тему данной статьи.
Последние статьи
- 09.07.22ИТ / Разное Конвертация офисных файлов DOC, DOCX, DOCM, RTF в форматы DOCX, DOCM, DOC, RTF, PDF, HTML, XML, TXT без потерь и изменения разметки
- 07.07.22ИТ / Безопасность Как защитить исходный код PHP, JS, HTML, CSS - обфускация, минимизация, сжатие и шифрование
- 06.07.22ИТ / Безопасность Подключение не защищено, проблема с Lets Encrypt - как исправить истекший 30.09.2021 DST Root CA X3, удалить его вручную и установить ISRG Root X1. Пример на MS Windows 7
- 08.07.21ИТ / Разное Как бесплатно сделать перевод для сайта без API, перевод документов в Google Translate
- 06.07.21ИТ / Разное Как сделать кнопку подписки на сайте, базу подписчиков и автоматическую рассылку