Назад |
Перейти на главную страницу
Как предотвратить медленный запуск первой загрузки сайта?
Я уверен, вы заметили, что для многих серверов время загрузки сайта довольно велико, если вы первый посетитель на пару часов. Вы хоть представляете, почему это так (это просто кеш сервера?) И как сделать сайт быстрым даже для первого посетителя? В данном случае возьмем обычную установку LAMP. Спасибо за вашу помощь!
Есть много потенциальных причин. Почти наверняка существует не одна-единственная причина.
Несколько возможностей:
- Веб-сайт работает с некоторым механизмом объединения, например FastCGI, mod_php / mod_perl / mod_python и т. Д. Если ни они, ни Apache не настроены на сохранение минимального пула серверов, им придется перезапустить приложение, когда поступит новый запрос, и нет доступных серверов с уже загруженным приложением.
- Приложение использует пул соединений с базой данных. Та же проблема, что и выше, за исключением того, что необходимо восстановить соединение с базой данных. Некоторые реляционные базы данных могут очень медленно открывать новое соединение (много накладных расходов)
- Различные механизмы кэширования (для высокопроизводительных сайтов, на которых работают балансировщики нагрузки или кеши, такие как memcached), могут потребовать обновления информации непосредственно с сайта, если информация, которую они имеют, устарела. Может также применяться к локальному кешу вашего браузера: хотя он обычно может игнорировать все дополнительные статические файлы на веб-сайте, такие как css, js, изображения, по истечении срока их действия из кеша ему необходимо повторно загрузить их.
- Сайты могут выполнять действия по обслуживанию, такие как резервное копирование, которые выполняются, когда их нагрузка низкая и к сайту нет доступа.
- Может быть даже на таком низком уровне, как кэширование диска ОС сервера, кэш которого мог быть заполнен другими сайтами на том же сервере, выталкивая кешированную версию сайта, к которой не было доступа некоторое время (это именно то, что диск cache должен делать, кешировать часто используемые файлы, не редко используемые). Задержка, которую это должно вызвать, скорее всего, будет очень маленькой и незаметной для человека.
Стратегии смягчения, конечно, зависят от фактической причины. Но несколько вещей, которые обычно следует делать:
- Убедитесь, что Apache MinSpareServers / MinSpareThreads и другие параметры производительности настроены правильно. Постарайтесь понять, как, когда и почему Apache порождает больше серверов / потоков.
- Убедитесь, что все серверы приложений, такие как FastCGI, также правильно настроены, чтобы поддерживать доступный достаточный пул.
- Правильно настройте пул соединений с базой данных или держите постоянное соединение с базой данных всегда открытым.
- Убедитесь, что все ваши включенные файлы (css, js и т. Д.) Кэшируемы и имеют разумный срок годности.