页面加载时间过长——DNS 查找有问题?

页面加载时间过长——DNS 查找有问题?

我注意到我的 Web 服务器最近加载页面需要很长时间。使用 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 命令上按下 Enter 键以返回请求,以便它记录在输出文件中。当 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 秒。所以服务器花了那么长时间读取它们。

相关内容