web系统变慢了,怎么排查原因

前后端交互变慢 可能原因:

1、有慢sql,数据库连接数一定,操作数据库的线程处于等待状态,导致变慢,此时也可能会出现OOM问题(线程没有结束,对象处于引用状态,一直占用着内存,不能被垃圾回收(并且此时垃圾回收的频率可能也会很高),新创建的对象没有内存进行分配时,出现OOM问题)。

2、某些对象被频繁申请,却没有释放,垃圾回收不了(此时垃圾回收的频率也会很高),内存不断泄漏,导致内存耗尽,出现OOM。比如:map,Object 没有重写hashcosd和equal方法,造成每次 put 的对象,都是新创建的对象。

3、 大量 创建线程(服务并行线程数是固定的) 或 大量发起网络连接(服务网络最大连接数是固定)、死循环创建对象(海量垃圾对象)或接口调用,造成CPU飙升,请求变慢,垃圾回收频率变高,请求数据库变慢等一系列问题。

4、当然也可能,内存分配确实过小,而正常业务使用了大量内存;如虚拟机本身可使用的内存(一般通过启动时的VM参数指定)太小。

5、接着会问 具体的排查问题流程???

6、可参考的文章:可参阅

你可能感兴趣的:(架构之路,java)