我认为 DNS 非常慢

我认为 DNS 非常慢

寻求有关我在朋友的帮助下设置的新 VPS 的建议。一切似乎都运行良好,第一次加载后页面加载速度很快,即使是简单的基于文本的网站,第一次加载也需要十秒钟。

我推测这是一个基于 DNS 的问题(或者可能与 Apache 有关?),因为 IP 正在被解析,有人可以解释我是否正确以及如何改进它吗?

域名:bradfordians.co.uk、castlegardenspreschool.com 和 pezcuckow.com

非常感谢您的建议!


有人能确认他们是否遇到了我所描述的速度减慢的情况吗?


w 的输出:

17:24:40 up  6:22,  2 users,  load average: 0.64, 0.39, 0.45
USER     TTY      FROM              LOGIN@   IDLE   JCPU   PCPU WHAT
root     pts/0    130.88.177.204   16:44   38:00   0.02s  0.02s -bash
root     pts/1    130.88.177.204   17:24    0.00s  0.01s  0.00s w

免费的输出:

             total       used       free     shared    buffers     cached
Mem:          2048        320       1727          0          0          0
-/+ buffers/cache:        320       1727
Swap:            0          0          0

顶部的开始:

top - 17:26:46 up  6:25,  2 users,  load average: 0.21, 0.29, 0.41
Tasks:  81 total,   1 running,  80 sleeping,   0 stopped,   0 zombie
Cpu(s):  0.0%us,  0.0%sy,  0.0%ni,100.0%id,  0.0%wa,  0.0%hi,  0.0%si,  0.0%st
Mem:   2097152k total,   328552k used,  1768600k free,        0k buffers
Swap:        0k total,        0k used,        0k free,        0k cached

  PID USER      PR  NI  VIRT  RES  SHR S %CPU %MEM    TIME+  COMMAND                                                                         
    1 root      18   0  2156  668  572 S  0.0  0.0   0:00.23 init                                                                             
 1350 mysql     15   0  125m  15m 4248 S  0.0  0.8   0:05.74 mysqld                                                                           
 1702 root      18   0 10008 2836 2292 S  0.0  0.1   0:00.02 sshd                                                                             
 1710 root      15   0  3844 1540 1248 S  0.0  0.1   0:00.02 bash                                                                             
 3580 root      18   0  3244  436  328 S  0.0  0.0   0:00.05 da-popb4smtp                                                                     
 3589 nobody    19   0  9136 1352  944 S  0.0  0.1   0:00.21 directadmin  

服务器处于合理负载下时:

PID USER      PR  NI  VIRT  RES  SHR S %CPU %MEM    TIME+  COMMAND                                                                         
 1350 mysql     15   0  126m  15m 4252 S 25.1  0.8   0:14.37 mysqld                                                                           
31859 apache    15   0 50436  41m 1988 S  0.3  2.0   0:00.85 httpd                                                                            
32146 apache    15   0 50464  41m 1972 S  0.3  2.0   0:00.75 httpd                                                                            
    1 root      18   0  2156  668  572 S  0.0  0.0   0:00.23 init                                                                             
 1702 root      18   0 10008 2836 2292 S  0.0  0.1   0:00.02 sshd     

我得到了非常奇怪的负载冲击测试结果,这可能有关吗?

http://loadimpact.com/view-test.php?testlogid=420600

答案1

我不认为这是一个 DNS 问题...DNS 解析对我来说非常快。

ikbenbart$ dig  castlegardenspreschool.com

; <<>> DiG 9.6.0-APPLE-P2 <<>> castlegardenspreschool.com
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 44600
;; flags: qr rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 0

;; QUESTION SECTION:
;castlegardenspreschool.com.    IN  A

;; ANSWER SECTION:
castlegardenspreschool.com. 14390 IN    A   78.129.132.155

;; Query time: 7 msec
;; SERVER: 192.168.220.51#53(192.168.220.51)
;; WHEN: Mon Mar 28 17:53:06 2011
;; MSG SIZE  rcvd: 60

引起我注意的一件事是ping延迟:

ikbenbart$  ping 78.129.132.155
PING 78.129.132.155 (78.129.132.155): 56 data bytes
64 bytes from 78.129.132.155: icmp_seq=0 ttl=54 time=23.482 ms
64 bytes from 78.129.132.155: icmp_seq=1 ttl=54 time=21.030 ms
64 bytes from 78.129.132.155: icmp_seq=2 ttl=54 time=24.165 ms
64 bytes from 78.129.132.155: icmp_seq=3 ttl=54 time=22.786 ms
64 bytes from 78.129.132.155: icmp_seq=4 ttl=54 time=19.822 ms
64 bytes from 78.129.132.155: icmp_seq=5 ttl=54 time=21.464 ms
64 bytes from 78.129.132.155: icmp_seq=6 ttl=54 time=354.739 ms
64 bytes from 78.129.132.155: icmp_seq=7 ttl=54 time=21.032 ms
64 bytes from 78.129.132.155: icmp_seq=8 ttl=54 time=21.691 ms
64 bytes from 78.129.132.155: icmp_seq=9 ttl=54 time=20.745 ms
64 bytes from 78.129.132.155: icmp_seq=10 ttl=54 time=346.652 ms
64 bytes from 78.129.132.155: icmp_seq=11 ttl=54 time=21.422 ms
64 bytes from 78.129.132.155: icmp_seq=12 ttl=54 time=291.492 ms
64 bytes from 78.129.132.155: icmp_seq=13 ttl=54 time=622.309 ms
64 bytes from 78.129.132.155: icmp_seq=14 ttl=54 time=339.109 ms
64 bytes from 78.129.132.155: icmp_seq=15 ttl=54 time=567.751 ms
64 bytes from 78.129.132.155: icmp_seq=16 ttl=54 time=170.745 ms
64 bytes from 78.129.132.155: icmp_seq=17 ttl=54 time=465.188 ms

那里有很多峰值……服务器上的负载如何?尝试运行命令wfree -m看看会得到什么。

答案2

您可以添加nameserver 8.8.8.8到顶部/etc/resolv.conf以查看是否是 DNS 问题。

答案3

我注意到了一些事情,你可以检查一下:

  • 萤火虫FireFox 扩展在诊断此类页面速度/加载问题时非常有用(查看“网络”选项卡)。慢速是一个相关的扩展,可以提出建议来提高性能(请注意,并非所有建议都对您的网站有效)。
  • 在我进行的几次测试页面加载中,我从未发现任何与 DNS 相关的问题。
  • 您的许多图片都非常大。请考虑尝试优化它们或更改格式以获得一些潜在的显著收益(例如:PNG 转换为 JPG)。
  • 考虑缩小一些 JavaScript 文件。
  • 考虑至少暂时禁用 mod_deflate 以进行测试。我发现,在 CPU 速度较慢且负载较重的服务器上,不压缩页面可以显著提高性能。YMMV,但尝试一下没有坏处。
  • 您的幼儿园网站存在一些 404 错误。
  • 幼儿园网站的性能问题最为严重,这可能是由于需要加载的文件数量(35)造成的。加载时,每个文件都会占用一个 Apache 客户端。如果您的 Apache MaxClients 只有 50,那么几个人同时加载您的页面可能会导致 50 个文件很快被占用,并导致超过这个数量的连接延迟或超时。请注意,每页 35 个文件本身并不坏,但您必须意识到这会如何影响您网站的性能和页面加载。
  • 确保 Apache MaxClients 足够高,可以支持并发用户数,但又不能高到用尽所有 RAM(尤其是当您还运行 MySQL 时)。
  • 减少 Apache 负载但增加可提供的文件数量的另一种方法是使用更高性能的 Web 服务器(如 lighttpd/nginx)来处理所有静态内容(JavaScript、CSS、图像),并让 Apache 仅提供重量级的 PHP 页面。
  • 使用 mod_expires 可能有助于减少随着时间的推移内容的重新加载。
  • 确保您正在使用某种 PHP 操作码缓存(APC、eAccelerator)。
  • 您可以在服务器上使用 ab (ApacheBench) 对网站性能进行基准测试。我现在会使用它来获取基准,然后在每次尝试提高性能后查看结果。测试各种文件类型(PHP、HTML、CSS、图像等)。基准测试还可以指出您网站瓶颈(CPU、RAM、IO 等)。

我会先查看 Apache 状态模块的输出,看看问题是否确实与最大可用客户端数量有关。如果有很多可用客户端,但网站仍然很慢,则可能涉及其他更微妙的问题。

相关内容