文档章节

一次对接的timeout事故,元凶居然是tcp_tw_recycle和tcp_timestamps

jastme
 jastme
发布于 2015/09/18 10:35
字数 857
阅读 353
收藏 1
Fri Jul 31 15:45:01 CST 2015 HTTP OK: HTTP/1.1 200 OK - 240 bytes in 0.087 second response time |time=0.087261s;;;0.000000 size=240B;;;0
Fri Jul 31 15:48:01 CST 2015 HTTP OK: HTTP/1.1 200 OK - 240 bytes in 0.078 second response time |time=0.077894s;;;0.000000 size=240B;;;0
Fri Jul 31 15:51:01 CST 2015 HTTP OK: HTTP/1.1 200 OK - 240 bytes in 0.084 second response time |time=0.084313s;;;0.000000 size=240B;;;0
Fri Jul 31 15:54:22 CST 2015 HTTP OK: HTTP/1.1 200 OK - 240 bytes in 21.086 second response time |time=21.085550s;;;0.000000 size=240B;;;0
Fri Jul 31 15:57:31 CST 2015 CRITICAL - Socket timeout after 30 seconds
Fri Jul 31 16:00:01 CST 2015 HTTP OK: HTTP/1.1 200 OK - 240 bytes in 0.080 second response time |time=0.080339s;;;0.000000 size=240B;;;0
Fri Jul 31 16:03:02 CST 2015 HTTP OK: HTTP/1.1 200 OK - 240 bytes in 0.080 second response time |time=0.079804s;;;0.000000 size=240B;;;0
Fri Jul 31 16:06:01 CST 2015 HTTP OK: HTTP/1.1 200 OK - 240 bytes in 0.087 second response time |time=0.086504s;;;0.000000 size=240B;;;0
Fri Jul 31 16:09:01 CST 2015 HTTP OK: HTTP/1.1 200 OK - 240 bytes in 0.084 second response time |time=0.083803s;;;0.000000 size=240B;;;0
Fri Jul 31 16:12:01 CST 2015 HTTP OK: HTTP/1.1 200 OK - 240 bytes in 0.079 second response time |time=0.079404s;;;0.000000 size=240B;;;0
Fri Jul 31 16:15:01 CST 2015 HTTP OK: HTTP/1.1 200 OK - 240 bytes in 0.086 second response time |time=0.086371s;;;0.000000 size=240B;;;0
Fri Jul 31 16:18:01 CST 2015 HTTP OK: HTTP/1.1 200 OK - 240 bytes in 0.080 second response time |time=0.079938s;;;0.000000 size=240B;;;0
Fri Jul 31 16:21:31 CST 2015 CRITICAL - Socket timeout after 30 seconds
Fri Jul 31 16:24:31 CST 2015 CRITICAL - Socket timeout after 30 seconds
Fri Jul 31 16:27:02 CST 2015 HTTP OK: HTTP/1.1 200 OK - 240 bytes in 0.080 second response time |time=0.079929s;;;0.000000 size=240B;;;0
Fri Jul 31 16:30:01 CST 2015 HTTP OK: HTTP/1.1 200 OK - 240 bytes in 0.083 second response time |time=0.082782s;;;0.000000 size=240B;;;0
Fri Jul 31 16:33:22 CST 2015 HTTP OK: HTTP/1.1 200 OK - 240 bytes in 21.081 second response time |time=21.080820s;;;0.000000 size=240B;;;0
Fri Jul 31 16:36:01 CST 2015 HTTP OK: HTTP/1.1 200 OK - 240 bytes in 0.085 second response time |time=0.084818s;;;0.000000 size=240B;;;0
Fri Jul 31 16:39:02 CST 2015 HTTP OK: HTTP/1.1 200 OK - 240 bytes in 0.079 second response time |time=0.078770s;;;0.000000 size=240B;;;0
Fri Jul 31 16:42:01 CST 2015 HTTP OK: HTTP/1.1 200 OK - 240 bytes in 0.084 second response time |time=0.083813s;;;0.000000 size=240B;;;0
Fri Jul 31 16:45:31 CST 2015 CRITICAL - Socket timeout after 30 seconds
Fri Jul 31 16:48:01 CST 2015 HTTP OK: HTTP/1.1 200 OK - 240 bytes in 0.084 second response time |time=0.083595s;;;0.000000 size=240B;;;0
Fri Jul 31 16:51:31 CST 2015 CRITICAL - Socket timeout after 30 seconds
Fri Jul 31 16:54:31 CST 2015 CRITICAL - Socket timeout after 30 seconds
Fri Jul 31 16:57:31 CST 2015 CRITICAL - Socket timeout after 30 seconds
Fri Jul 31 17:00:01 CST 2015 HTTP OK: HTTP/1.1 200 OK - 240 bytes in 0.082 second response time |time=0.082200s;;;0.000000 size=240B;;;0
Fri Jul 31 17:03:01 CST 2015 HTTP OK: HTTP/1.1 200 OK - 240 bytes in 0.082 second response time |time=0.081671s;;;0.000000 size=240B;;;0
Fri Jul 31 17:06:01 CST 2015 HTTP OK: HTTP/1.1 200 OK - 240 bytes in 0.079 second response time |time=0.079241s;;;0.000000 size=240B;;;0
Fri Jul 31 17:09:01 CST 2015 HTTP OK: HTTP/1.1 200 OK - 240 bytes in 0.081 second response time |time=0.081428s;;;0.000000 size=240B;;;0
Fri Jul 31 17:12:31 CST 2015 CRITICAL - Socket timeout after 30 seconds

这次事故主要是和对方做对接,然后我们模拟HTTP的请求的连接对方,发现日志居然是这样

询问对方是不是接口不稳定,对面回答一直都OK,然后左查右查

发现是

tcp_timestamps   的问题,

我们使用tcpdump来捉包,发现带有时间戳的包全部没有完成3此握手,

echo 1  > /proc/sys/net/ipv4/tcp_timestamps;

sysctl -p

然后再检查日志 一切正常了


有更详细的资料请参考

http://dngood.blog.51cto.com/446195/988968/


© 著作权归作者所有

jastme
粉丝 39
博文 137
码字总数 62396
作品 0
成都
程序员
私信 提问
tcp_tw_recycle和tcp_timestamps导致connect失败问题

抄袭于 http://blog.sina.com.cn/s/blog781b0c850100znjd.html 1. 现象 第一个现象:模块A通过NAT网关访问服务S成功,而模块B通过NAT网关访问服务S经常性出现connect失败,抓包发现:服务S端...

超级大黑猫
2016/09/23
16
0
nginx Cannot assign requested address TIME_WAIT解决

netstat -n awk '/^tcp/ {++S[$NF]} END {for(a in S) print a, S[a]}' 查看端口状态 “Cannot assign requested address.”是由于linux分配的客户端连接端口用尽,无法建立socket连接所致,......

千惊万喜
2016/12/09
15
0
lnmp 优化日志

net.ipv4.ip_forward = 0 net.ipv4.conf.default.rp_filter = 1 net.ipv4.conf.default.acceptsourceroute = 0 kernel.sysrq = 0 kernel.coreusespid = 1 net.ipv4.tcp_syncookies = 1 kerne......

PHP007
2016/01/09
58
0
记一次由tcp_tw_recycle参数引发的血案

一,故障描述: 从昨天开始,在值班群中陆续值班人员反映系统后台存在卡顿问题,如下图: 而且在卡顿的同时登陆服务器也会卡好久。此现象只在一台服务器有出现。 二,故障分析: 1,登陆服务...

Tyrant0532
2018/10/29
0
0
linux下nginx服务应用总结--突破10万高并发的nginx性能优化经验(含内核参数优化

在日常的运维工作中,经常会用到nginx服务,也时常会碰到nginx因高并发导致的性能瓶颈问题。今天这里简单梳理下nginx性能优化的配置(仅仅依据本人的实战经验而述,如有不妥,敬请指出~) 一...

Mr_sheng
2017/11/27
0
0

没有更多内容

加载失败,请刷新页面

加载更多

【AI实战】手把手教你深度学习文字识别(文字检测篇:基于MSER, CTPN, SegLink, EAST等方法)

文字检测是文字识别过程中的一个非常重要的环节,文字检测的主要目标是将图片中的文字区域位置检测出来,以便于进行后面的文字识别,只有找到了文本所在区域,才能对其内容进行识别。 文字检...

雪饼
今天
9
0
思维导图XMind 8 Pro 绿化方法(附序列号)

按部就班: Step 1 -全新下载最新版本的 Xmind 8(注必须是英文官方的版本,中文代{过}{滤}理网站的版本修改过,无法使用pj); Step 2 -安装完毕后,点击文末的下载按钮下载pj补丁文件包,将...

一只小青蛙
今天
10
0
数据结构(ER数据库)设计规范

表命名规范 表命名的规则分为3个层级,层级之间通过_分割,例如b_r_identity、d_l_identity。规约为: [leavel]_[type]_[name] [leavel] 表示数据库表的层级和功能,分为: s:业务无关的系统...

随风溜达的向日葵
今天
8
0
阿里Sentinel控制台源码修改-对接Apollo规则持久化

https://github.com/alibaba/Sentinel/wiki/%E5%9C%A8%E7%94%9F%E4%BA%A7%E7%8E%AF%E5%A2%83%E4%B8%AD%E4%BD%BF%E7%94%A8-Sentinel 动态规则扩展 https://github.com/alibaba/Sentinel/wiki......

jxlgzwh
昨天
11
0
在Linux系统中创建SSH服务器别名

如果你经常通过 SSH 访问许多不同的远程系统,这个技巧将为你节省一些时间。你可以通过 SSH 为频繁访问的系统创建 SSH 别名,这样你就不必记住所有不同的用户名、主机名、SSH 端口号和 IP 地...

老孟的Linux私房菜
昨天
13
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部