问题表现

java服务无响应,无法远程链接到服务器。

今天中午12点多,应用直接崩溃。后续进入到服务器,发现java进程都不在了,

排查过程

先安装atop工具
 安装、配置并使用atop监控工具

等下次再出现时看相关时间点日志,可以看到磁盘占用飙升。

记一次阿里云服务器java应用无法响应且无法远程连接的问题排查_服务器


使用journalctl查看内核日志

记一次阿里云服务器java应用无法响应且无法远程连接的问题排查_缓存_02


发现oom了,然后kill了应用,那应该时内存满了,内核自己杀了程序了。看下atop内存监控情况

记一次阿里云服务器java应用无法响应且无法远程连接的问题排查_缓存_03


记一次阿里云服务器java应用无法响应且无法远程连接的问题排查_服务器_04


可以看到是java程序和dnf程序把内存占满了。

问题根源

问题根源是内存不足导致的OOM
1、 正常状态下 java进程基本跑满了物理内存(显示为77% 实际内存需要部分空间用于数据交换和缓存)
2、 dnf是centos8 包管理器,该服务会定期拉去dnf包缓存,执行该任务时会消耗部分内存资源
3、 磁盘io跑满也是有内存不足导致的OOM所引起的