Медленные http ответы
Я использую веб-сервер apache на Debian 6.0 с ядром 2.6.32-5-amd64.
В определенное время дня, как правило, когда в сети больше людей, ответы на сервер очень медленные. Я уверен, что это не нагрузка, это не БД, это не PHP, это команда:
time wget 127.0.0.1
довольно медленно
--2013-09-20 15:36:49-- http://127.0.0.1/
Connecting to 127.0.0.1:80... connected.
HTTP request sent, awaiting response... 404 Not Found
2013-09-20 15:36:52 ERROR 404: Not Found.
real 0m2.663s
user 0m0.004s
sys 0m0.004s
Время отклика до 5 сек. Точка ожидания - после того, как "HTTP-запрос отправлен, ожидание ответа..." Страница генерируется после того, как эта задержка, общая для всех http-запросов, происходит быстро, например, 50 мс.
Я проверил свою сеть, используя http://tools.pingdom.com/fpt/, первый ответ всегда медленный, большая часть загрузки контента также медленная, но немногие работают довольно быстро, но я не могу сказать, есть ли у этого инструмента какой-то кэш,
telnet 127.0.0.1 80
быстро, отклик покажет без задержки:
Trying 127.0.0.1...
Connected to 127.0.0.1.
Escape character is '^]'.
Где может быть проблема? Должно быть что-то, прежде чем запрос перейдет в Apache.
Пожалуйста, расскажите мне хотя бы о некоторых средствах отладки для этого.
1 ответ
Я не думаю, что 2,6 секунды ужасно медленны для вашего среднего сайта, который не был создан командой постоянных инженеров (см. Google.com).
Ваша проблема, вероятно, связана с вводом / выводом, либо сетью, либо диском, либо памятью, либо т.
Вам придется проследить через стек приложений. Это включало изучение программного обеспечения вашего веб-сервера (apache httpd, ngnix и т. Д.), Стека php, кода php и любых механизмов внутреннего хранилища, таких как файловые системы и MySQL, которые поддерживают стек.
Задержка может быть вызвана медленным диском, неиндексированным запросом mysql, узким местом в сети или даже оптимизированным циклом или функцией в коде. Я не думаю, что мы сможем вам в этом сильно помочь, если вы не предоставите подробную информацию о вашей среде и не зададите конкретные вопросы.