Назад | Перейти на главную страницу

Длинная страница загружается - проблемы с поиском 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}

Затем я нажал Enter в команде telnet, чтобы вернуть запрос и войти в выходной файл. Когда 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? Что мне делать, чтобы решить проблему?

Вам потребовалось 12 секунд, чтобы набрать «GET / HTTP / 1.1 \ r \ n» и 13 секунд, чтобы ввести «Host: 164.177.156.189 \ r \ n». Так что сервер потратит столько времени на их чтение.