Длинные страницы загружаются - проблемы с поиском 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 секунд. Поэтому сервер тратит так много времени на их чтение.

Другие вопросы по тегам