在一段没有日志的历史遗留代码上面加入监控部署后不久,就收到了服务调用成功率低的告警,真是哗了狗了html
client端在线上单机部署,根据监控上面的返回码比例看出失败缘由都是连接失败,经过 tcpdump 在 server 端和 client 端抓包没有发现拒绝的连接请求,另外有另一台机器一样访问着 server 端的服务,排除丢包(这个可能也能够经过ping命令排除),server端高负载可能,因此能够推断是 client 端的问题。python
看到 client 端定时任务起来后 CPU 满了,惋惜只是个现象,仍是看不出究竟是机器性能问题仍是啥问题tcp
原来的代码没打日志,不能直接查到系统错误码,正在执行任务也不能直接改代码从新部署,改用 telnet 尝试发起 TCP 链接,遂连接失败工具
仍是没有系统错误码,不过这样就好定位了,经过本身写的 python 工具发起链接试试,性能
google之,找到 http://www.51testing.com/html/21/66821-147278.html , http://huoding.com/2013/12/31/316 ,这是个大量 TCP 短链接的调用,基本符合上面说到的状况,根据前辈的建议,开启了 tcp_timestamps 和 tcp_tw_reuse。一段时间后,就看到 CPU 降下去,成功率上来了~撒花~google