1 错误日志定位—-已读服务provider下线
已读服务被下线:
2 应急解决方案:
保存一台机器的gc.log 日志文件,线程其他日志文件等;然后重启服务
3 查看下线原因:
-
机器情况 物理内存8G启动了两个java进程
-
-
1 通过gc日志排除vm内存泄露; 下图
-
-
2 egrep -i “killed process” /var/log/messages -C100 OR dmesg -T | grep java -C100 确认是否是被Linux OS killer 掉 上面第二章图,确实是被OSkill
-
3 可疑的进程 DNF拉取元数据更新 (只是可疑,最近其中2台机器都是运行dnf期间,OS 发生 OOM,导致只剩下一个provider,最终抗住不)
-
4 计算OOM 前实际内存占用
-
2240+498+225+96+487+215+36+38+224+231+1808+137+698+429+397+632+3703+321+235+511+228+51+28+34+90+2305+328+715+410+2691+380+8699+563135+1249532+2112+82+594+86+86+25797+20+24+35+12451+5803+16+22=1888915*4kb=7.2G java两个进程+所有的其他进程占用 rss总共7.2G应该还有700M的内存空间,这里就需要问google了,基本上没有能解释清楚的。
4 解决方案
- 1 执行下面的命令关闭并禁用掉这个dnf定时器。
- systemctl stop dnf-makecache.timer
- systemctl disable dnf-makecache.timer
- 2 机器内存升级
- 3 (已有业务报警)
5 小结&参考
- **根本原因:**当 Linux 系统内存不足时,系统会把当前系统占用系统内存过高的进程当做流氓进程,然后系统发出信号将这个流氓进程杀掉,最后导致 Java 应用服务不能使用
- dnf 相关命令 www.howtoforge.com/tutorial/ce…
© 版权声明
文章版权归作者所有,未经允许请勿转载。
THE END






















![[桜井宁宁]COS和泉纱雾超可爱写真福利集-一一网](https://www.proyy.com/skycj/data/images/2020-12-13/4d3cf227a85d7e79f5d6b4efb6bde3e8.jpg)

![[桜井宁宁] 爆乳奶牛少女cos写真-一一网](https://www.proyy.com/skycj/data/images/2020-12-13/d40483e126fcf567894e89c65eaca655.jpg)