内网测试网站突然变慢的原因和分析

    最近公司的内网有调整过,很多PC无法正常上网,服务器也遇到了点小故障。


故障描述:

    开发向我反映,他的项目的测试机访问 http://10.0.0.237 很慢。我使用他的测试账号测试了一下,确实很慢。

    10.0.0.237这台服务器上装有lnmp所以都是走本地的,而且是内网的测试服务器没有负载,所以应该不会出现慢的情况。


排查过程:

    我使用这台服务器上的mysql客户端连入mysqld,使用命令查询数据很快。

    查看了程序链接mysqld的配置,发现是用10.0.0.237这个ip,我就修改成了127.0.0.1 ,后来发现程序速度明显快了很多。

    经过linux系统运维群内(华帝)的提醒(在此非常感谢他的帮助),把程序中连接mysqld的配置修改为10.0.0.237,并在/etc/hosts 加入‘10.0.0.237 localhost‘,修改后速度确实也是很快的。

    这时才反应过来应该是DNS解析导致的问题。

    查看服务器的/etc/resolv.conf ,配置是10.0.0.1作为dns,可是网络变更后dns是10.0.1.1。于是便修改了dns配置。

    但是后来又发现网卡的掩码也不对,导致无法ping通10.0.1.1,于是便将网卡的配置重新修改了一下。

    故障彻底恢复。

    最后,通过抓包发现有很多反向解析的记录。

[root@xxxx /]# tcpdump -i eth0 dst host 10.0.1.1 
tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
listening on eth0, link-type EN10MB (Ethernet), capture size 65535 bytes
13:27:25.234628 ARP, Request who-has 10.0.1.1 tell weisc, length 46
13:27:25.234794 IP 10.0.0.237.49917 > 10.0.1.1.domain: 23477+ PTR? 1.1.0.10.in-addr.arpa. (39)
13:27:25.346025 IP 10.0.0.237.41963 > 10.0.1.1.domain: 40447+ PTR? 31.1.0.10.in-addr.arpa. (40)
13:27:25.346327 IP 10.0.0.237.47917 > 10.0.1.1.domain: 37244+ PTR? 237.0.0.10.in-addr.arpa. (41)
13:27:25.629255 ARP, Request who-has 10.0.1.1 tell PC201411031039, length 46
13:27:25.629288 IP 10.0.0.237.45800 > 10.0.1.1.domain: 32060+ PTR? 46.1.0.10.in-addr.arpa. (40)
13:27:26.536115 ARP, Request who-has 10.0.1.1 tell 10.0.1.72, length 46
13:27:26.536147 IP 10.0.0.237.34638 > 10.0.1.1.domain: 10106+ PTR? 72.1.0.10.in-addr.arpa. (40)
13:27:28.813110 ARP, Request who-has 10.0.1.1 tell 10.0.1.42, length 46
13:27:28.813143 IP 10.0.0.237.37798 > 10.0.1.1.domain: 30640+ PTR? 42.1.0.10.in-addr.arpa. (40)

结论:

    在程序运行的过程中,都会做DNS的反向解析。而在DNS有问题的情况下,会导致DNS查询超时,从而导致程序访问起来非常慢。


本文出自 “王振园的技术博客” 博客,请务必保留此出处http://andriy1234.blog.51cto.com/826703/1623765

郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。