记录一次问题

1 判断问题在传输链路的哪个位置
500并发用户EPR系统隔几天无法使用一次,
整个系统无法使用的时候 单独访问apache后的 tomcat 没有问题 判断出apche的问题

2 根据该位置的已知分支领域去尝试,缩小问题目标范围
查看error 发现无法访问的时候 达到了apache的最大连接数 、增加最大连接数到2000,依然过一段时间就无法访问;
怀疑有恶意攻击 统计access日志未发现异常ip访问;
统计tcp连接的时候发现 好多java线程连接 一台非数据库服务器,确认为搜索服务器(通过javacore 也断定是在调搜索的服务,去 应用层测试有关搜索的操作全部卡住), 确定搜索服务求问题
3 基于缩小后的范围,大胆推测 逐步排查 一步步深入 并解决问题
重启所有服务 apache不起,用户通过应用层执行一次搜索操作,查看搜索服务的日志 发现 应用每次调用 相当于搜索服务器会接到10次相同请求。
推测 每个搜索业务请求会 导致10倍压力到搜索服务器 ,当搜索业务繁忙的时候 搜索服务的压力过大导致 无法及时响应 应用请求,应用等着搜索,apache等着 应用导致 连接一直不释放,一直往上涨导致apache撑不住。
后找搜索服务接口的开发优化搜索调用的接口 问题最终解决

相关推荐