问题表现
java服务无响应,无法远程链接到服务器。
今天中午12点多,应用直接崩溃。后续进入到服务器,发现java进程都不在了,
排查过程
先安装atop工具
安装、配置并使用atop监控工具
等下次再出现时看相关时间点日志,可以看到磁盘占用飙升。
使用journalctl查看内核日志
发现oom了,然后kill了应用,那应该时内存满了,内核自己杀了程序了。看下atop内存监控情况
可以看到是java程序和dnf程序把内存占满了。
问题根源
问题根源是内存不足导致的OOM
1、 正常状态下 java进程基本跑满了物理内存(显示为77% 实际内存需要部分空间用于数据交换和缓存)
2、 dnf是centos8 包管理器,该服务会定期拉去dnf包缓存,执行该任务时会消耗部分内存资源
3、 磁盘io跑满也是有内存不足导致的OOM所引起的