У меня есть этот веб-сайт, который работает очень плавно, но иногда, когда я нажимаю ссылку, он приостанавливается примерно на одну минуту, прежде чем я получаю страницу, и когда я открываю ту же страницу в новом окне, она открывается плавно без каких-либо задержек.
Есть идеи о том, что могло вызвать это?
Моя среда:
Это довольно широкий вопрос, поскольку на самом деле между клиентом и сервером может быть что угодно. Вам нужно будет использовать некоторые специальные методы для решения сетевых проблем. У всех есть свои способы, есть даже вики о сбоях сервера разные способы решения проблемы.
Я рекомендую проверить этот вопрос SO и ознакомиться с Wireshark или TCPDump, поскольку эти инструменты помогут вам выяснить, что происходит в общении сервер <---> с клиентом, и, надеюсь, увидеть, где происходит эта «пауза», посмотрев на время ответа пакета. Также проверьте, не видите ли вы какие-либо ошибки в журналах сервера.
Сначала вы должны проверить, не связана ли это с сервером. Происходит ли это так же, независимо от того, откуда вы это проверяете? Попробуйте несколько браузеров на разных компьютерах. Одна из основных причин такого поведения - отказ DNS-сервера (для клиента или сервера).
Я испытал подобное поведение на сайте и обнаружил, что просто отвечающий процесс apache иногда останавливается из-за нехватки памяти. Пока не знаю, почему и когда это происходит - но следите за сервером, если, вероятно, процессы веб-сервера умирают или погибают ... Ваше «1-минутное» наблюдение в значительной степени вписывается в этот тип проблемы, поскольку это может быть примерно время до того, как ваш браузер получит тайм-аут и повторно запросит данные.
На это могло быть множество разных причин. DNS не разрешается с первой попытки, PHP не отвечает так быстро из-за загрузки, слишком много подключений lighttpd.
Страница отображается мгновенно, когда вы нажимаете кнопку обновления? Вы пробовали одновременно видеть, что происходит на стороне сервера? Как выглядит ваш сетевой трафик?
Я бы начал просматривать файлы журнала для Lighttpd во время инцидентов и искать процессы PHP, которые вышли из строя или упали сами на себя, что привело к их возрождению lighttpd. Это могло вызвать проблему.
Я думаю, вам стоит взглянуть на настройки Keep-Alive Lighttpd:
server.max-keep-alive-requests =
server.max-keep-alive-idle =
server.max-read-idle =
server.max-write-idle =