最近碰到一件棘手的事情,系统会莫名其妙的变慢,没有规律。
做第一次诊断:中间件日志,gc日志,httpwatch,Oracle数据库报告,服务器nmon日志,逐一检查,均无性能瓶颈。
做第二次诊断:慢的情况不是必现,多次httpwatch的结果发现,每次都是18.9s左右,有时候是红色的等待多(服务处理请求的等待),有时候是白色的等待多(浏览器发送给服务端的等待)。光看httpwatch,无法定位为什么慢,需要再进行一轮诊断。
做第三次诊断:使用chrome和wireshark,chrome捕捉到具体慢的请求,wireshark来获取包的信息。两者对照看,通过下面条件过来。
ip.addr eq 10.XX.XX.64 and ip.addr eq 10.XX.XX.166 and tcp.port eq 12943 and tcp.port eq 9093
最后诊断是有包重传的问题,重传5次,每次重传的时间比上次*2。