bops历史页面个别用户无法查询,返回502bad geteway

来源:互联网 发布:小米笔记本pro linux 编辑:程序博客网 时间:2024/05/23 13:04

现象:

    星期5(2012.6.29),bruce4.fany反馈一个用户在bops历史页面无法查询,具体截图如下:

   

背景:

    架构:apache mod_jk + jboss


排查过程:

    1.确定范围:排查中发现部分用户访问正常,部分用户访问不正常,确认不是网络问题,同时jboss是正常的,httpd也是正常的,所以比较可能的问题就是mod_jk和jboss之间的连接出现问题

    2.查看jk_log日志,如下:

   

    两次ajp连接tomcat都失败,错误相同,是tomcat is down or refused connection。很明显,tomcat肯定是启动着,但是拒绝了mod_jk的连接请求,而且页面显示是过了一段时间显示失败的,会不会是tomcat应用在处理这个请求消耗了大量时间导致超时,进而mod_jk请求无法在socket_time时间内响应,导致这种现象

   3.调整socket_time时间:设置sokect_timeout时间为0,即永不超时,挂查应用响应情况。

        结果应用响应正常,但是消耗了大量时间,截图如下:

   

   可以看到tomcat应用对这个请求的处理时间比较长,超出socket_time时间,因此响应502,为解决问题,临时先将sokect_time改为100

    4.为什么这个点消耗如此之多的时间:

       btrace execute发现耗时在40秒

       thread 切片,发现线程信息如下:

   

       主要是是高危词在扫描和标记时性能非常消耗导致的,可优化点。


后期需优化该点