1 现象描述:
磁盘占用到了50% 累计 ;
PRINT_GC="-XX:+PrintGCDateStamps -XX:+PrintGCDetails -XX:+PrintGCTimeStamps -XX:-PrintHeapAtGC -XX:-UseGCLogFileRotation -XX:NumberOfGCLogFiles=10 -XX:GCLogFileSize=10M -Xloggc:/root/123/logs/gc.log -XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=/root/123/logs/heaperr.log"
oom 文件生成
2 A正常机器
4核心 load在 1左右,即只有一个等待进程任务,最多可以达到4,机器负载刚刚满;
注意cpu利用率和load没有直接关系;
如 cpu利用率100%,但是load较低,说明程序有问题,如死循环等一直占着cpu时间片,计算能力耗尽;
即使cpu利用率20%,load也可能很高,比如,等待进程的基本都是wait io 或者磁盘文件交互,这样cpu的计算能力基本浪费,但是等待进程可能超过cpu核心数,于是load的飙高;
3 B异常机器监控
4 A,B机器比较(物理内存都是16G cpu都是4核心)
但是
B: GC_PARAM="-Xmx4g -Xms4g -XX:G1HeapRegionSize=2m"
A:GC_PARAM="-Xmx8g -Xms8g -XX:G1HeapRegionSize=2m"
内存使用虽然只有A的一半,但是cpu利用率和系统负载基本是A的一倍,稳定;
cpu大部分时间用来垃圾回收了。是不是遇到作业数据大时发生,oom
系统中使用了localcache,淘汰会占用时间;
内存不足导致-----侧面反映到了redis 操作上面,反映出超时
5 B 机器jvm内存升级后 恢复正常