在一段沒有日誌的歷史遺留代碼上面加入監控部署後不久,就收到了服務調用成功率低的告警,真是譁了狗了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