kaka
2015-12-30 17:25:46
dwr低版本死锁导致java web项目响应慢的bug排查
今天访问某一测试环境的项目,发现发送一次请求,服务器响应的速度非常慢,排查过程如下:
1.top命令查看服务器的CPU使用率和内存使用率,发现tomcat的进程CPU使用率非常高。
2.top -H -p PID (PID为进程id),查找出tomcat进程中占用CPU时间最长的线程id。
3.printf ‘%x\n’tid (tid为线程id),将线程id转换为16进制。
4.jstack PID > thread.txt,导出该进程的线程栈,用步骤3中的16进制线程id去找该线程在做什么,截图如下:
从线程栈中可以看出,是dwr导致的死锁问题,网上查了下,说是dwr官网的bug追踪中说到,dwr2.0版本之前会导致死锁这个bug,搜了下也没找到这个bug描述,不过换了高版本的dwr后,死锁问题得到解决。
评论

pt11100 LV9
2020年5月22日
2252536772 LV21
2019年9月10日
子不语103 LV7
2018年9月12日
weienqing LV17
2017年11月15日
nsq0006 LV6
2017年11月7日
w939952612 LV1
2016年10月11日
XZC1991 LV5
2016年7月11日
sp朱盼 LV16
2016年7月5日
xiaoshi LV9
2016年3月10日
网海情缘 LV11
2016年3月5日