第一步:前往系统所部署的服务器,或者利用监控平台,来查看系统资源是否达到上限,比如:CPU、内存、硬盘、I/O、网络带宽等等。如果是这些问题,就逐一进行排查解决:
如果是CPU占用率太高。则查看CPU占比较高的进程,然后使用jstack命令生成进程的堆栈信息,看是否发生频繁Full GC。如果是的话,还需要 看一下内存快照,分析一下内存情况(可以使用java自带的或第三方工具)。如果是磁盘空间满了,及时清理磁盘;如果是带宽满了,联系网络工程师解决。如果以上这些问题都没有,则进行第二步。
第二步:检查应用服务器(Jboss/Tomcat)的线程池配置是否合理,看一下请求的排队现象是否严重,如果严重则需要重新设置合理的线程池。同样,检查一下数据库的连接池设置是否合理,增大连接池设置,同时检查一下是否有慢sql,如果有慢sql,则进行优化(优化方案是查看执行计划,设置合理的索引等)。
第三步:查看访问慢的服务的调用链,查看一下调用链中的每一步响应时间是否合理,如果不合理,则联系相关系统的负责人进行排查和解决。
第四步:检查web服务器的请求日志,看一下是否存在Doss攻击,如果有Doss攻击,则将攻击者的IP添加到防火墙的黑名单里。