一、问题现象
今天A系统上线时,B系统报了可用率问题。经查看日志,发现是B系统调用的A系统接口线程池被打满,而且报警确实是刚刚上线完成所在的机器。
二、分析原因
通过分析A系统的ump发现该接口在这个时间点,性能出现了波动。见下图:
该接口操作比较简单,只操作了缓存,一个hgetall操作,所以,怀疑是资源或者gc导致的。
1、检查该服务器GC情况。发现在这个时间点,发生了fullgc
但是发生fgc的时候,该服务器jvm内存使用率很低。
发生fullgc,常见原因无外乎内存不够用,或者程序调用System.gc导致。后者之前也检查过,程序并