redis网络诊断
2015-04-09 19:19
218 查看
hhvm频繁告警,iostat正常,vmstat正常,实在是想不出什么地方出问题了。经过诊断是网络出现了问题,出现了大量TIME_WAIT和CLOSE_WAIT,
netstat -n | awk '/^tcp/ {++state[$NF]} END {for(key in state) print key,"\t",state[key]}'
原理:redis的客户端close一个链接以后,这个链接就会进入TIME_WAIT状态,而TIME_WAIT状态的链接会在Max Segment Lifetime内都没有活跃包的情况下关掉。Linux这个默认值貌似很长,具体的数值还真不知道,似乎是分钟级的。。。
悲剧的是,一条TCP链接是死是活由源IP和端口,目标IP和端口四个变量决定。那客户端和服务器的这四个值都是固定的,所以每次建立新链接的同时,处在TIME_WAIT的链接也被告知,你还不能死。所以执行上述命令,让tw状态的链接可以reuse
补充:/proc/sys/net/ipv4/tcp_tw_recycle 如果设成1的话,就是快速回收tw链接,应该也能解决问题
http://segmentfault.com/q/1010000000095255 href="http://segmentfault.com/q/1010000000095255" target=_blank>为何redis的TIME_WAIT值如此之高
http://blog.csdn.net/shootyou/article/details/6622226 再谈应用环境下的TIME_WAIT和CLOSE_WAIT
netstat -n | awk '/^tcp/ {++state[$NF]} END {for(key in state) print key,"\t",state[key]}'
echo 1 > /proc/sys/net/ipv4/tcp_tw_reuse
原理:redis的客户端close一个链接以后,这个链接就会进入TIME_WAIT状态,而TIME_WAIT状态的链接会在Max Segment Lifetime内都没有活跃包的情况下关掉。Linux这个默认值貌似很长,具体的数值还真不知道,似乎是分钟级的。。。
悲剧的是,一条TCP链接是死是活由源IP和端口,目标IP和端口四个变量决定。那客户端和服务器的这四个值都是固定的,所以每次建立新链接的同时,处在TIME_WAIT的链接也被告知,你还不能死。所以执行上述命令,让tw状态的链接可以reuse
补充:/proc/sys/net/ipv4/tcp_tw_recycle 如果设成1的话,就是快速回收tw链接,应该也能解决问题
http://segmentfault.com/q/1010000000095255 href="http://segmentfault.com/q/1010000000095255" target=_blank>为何redis的TIME_WAIT值如此之高
http://blog.csdn.net/shootyou/article/details/6622226 再谈应用环境下的TIME_WAIT和CLOSE_WAIT
相关文章推荐
- 网络故障诊断62例
- 常用网络诊断命令
- 基于路由器网络诊断步骤和故障排除技巧
- linux网络配置、测试及故障诊断方法和工具二
- 简要介绍对无线局域网络进行故障诊断
- linux网络配置、测试及故障诊断方法和工具三
- 网络故障诊断70例
- 网络故障诊断和优化
- 基于路由器网络诊断步骤和故障排除技巧
- 网络故障诊断35例
- 网络故障诊断
- 网管员谈:网络故障诊断的原则(1)
- 网络及路由器故障诊断基础知识
- 某中学网络故障诊断
- 网络成瘾者智商低于常人 八大特征诊断是否上瘾
- 借助sniffer诊断Linux网络故障
- [转] 网络故障诊断70例
- 网络测试及故障诊断方法及工具 v0.1b
- 网络故障诊断和排除
- 网络测试及故障诊断方法及工具