Длинные страницы загружаются - проблемы с поиском DNS?
Я заметил, что мой веб-сервер занимает много времени для загрузки страниц в последнее время. Используя Firebug, я понял, что для поиска DNS требуется около 4 секунд:
Connecting: 304ms
Sending: 0ms
Waiting: 3.45s
Receiving: 0ms
Я думал, что ждать ответа HTTP долго. В командной строке я инициировал:
telnet localhost 80
GET / HTTP/1.1
Host: {IP Address}
И ждал, пока эти следующие три команды не будут возвращены, прежде чем войти дважды. Первой командой, которую я использовал, было узнать номер порта:
lsof -p `pidof telnet`
Затем, чтобы узнать процесс:
netstat -nap | grep {port}
И наконец:
strace -o /tmp/output -f -r -s4096 -p {PID}
Затем я нажал клавишу ввода в команде telnet, чтобы вернуть запрос, чтобы он вошел в выходной файл. Когда телнет наконец вернулся, я посмотрел на выходной файл и искал самые длинные процессы:
6152 12.143817 read(17, "GET / HTTP/1.1\r\n", 8000) = 16
6152 0.000178 gettimeofday({1330023713, 143410}, NULL) = 0
6152 0.000169 poll([{fd=17, events=POLLIN}], 1, 60000) = 1 ([{fd=17, revents=POLLIN}])
6152 13.550608 read(17, "Host: 164.177.156.189\r\n", 8000) = 23
Кто-нибудь знает, почему эти два процесса так долго? Это проблема поиска DNS? Что я должен сделать, чтобы решить проблему?
1 ответ
Чтобы набрать "GET / HTTP/1.1\r\n", вам потребовалось 12 секунд, а для ввода "Host: 164.177.156.189\r\n" - 13 секунд. Поэтому сервер тратит так много времени на их чтение.