redis网络诊断
来源:互联网 发布:python cipher aescbc 编辑:程序博客网 时间:2024/05/22 12:09
hhvm频繁告警,iostat正常,vmstat正常,实在是想不出什么地方出问题了。经过诊断是网络出现了问题,出现了大量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 为何redis的TIME_WAIT值如此之高
http://blog.csdn.net/shootyou/article/details/6622226 再谈应用环境下的TIME_WAIT和CLOSE_WAIT
0 0
- redis网络诊断
- 常用网络诊断命令
- 网络检测与诊断
- Windows网络诊断
- linux网络诊断故障
- 网络诊断工具
- linux网络诊断工具
- ping网络诊断常见故障
- 电脑网络诊断
- MACOSX 网络诊断命令
- 网络状态诊断
- linux 网络诊断 & Troubleshooting
- 关于诊断网络问题
- 慎用网络诊断!!
- [转]网络诊断工具tcpdump
- [网络成瘾诊断标准]-有趣
- linux网络常用诊断工具
- 使用 Ping进行网络诊断
- 一个递归实例
- const_cast
- SPOJ GSS6 Can you answer these queries VI
- mysql中的严格模式和非严格模式
- JAVA参数传值
- redis网络诊断
- PAT BASIC PRACTISE: 1016. 部分A+B (15)
- module--smtplib
- 不用sizeof()函数求当前主机上的一个int占用几个字节
- System V 消息队列—复用消息(Chapter 6)
- hdu 1846Brave Game 博弈论
- SIP协议应答消息状态码详解
- 使用PullToRefresh实现下拉刷新和上拉加载
- 2504 又见GCD