文章目录
Pre
一旦发生了各种场景下的OOM,我们到底应该如何处理呢? 所以j继续将会从OOM问题的监控开始,给大家讲OOM的排查、定位和解决的一系列思路
最佳的解决方案
先给大家说一种最佳的OOM监控方案,其实说白了也很简单, 公司最好是应该有一种监控平台,比如Zabbix、Open-Falcon之类的监控平台。
如果有监控平台的话,就可以接入系统异常的一些监控和报警,你可以设置一旦系统出现了OOM异常,就发送报警给对应的开发人员,通过邮件、短信或者钉钉之类的IM工具。
这个是中大型公司里最常用的一种方案了,一般来说我们都对线上系统有以下几个层面的监控:
机器(CPU、磁盘、内存、网络)资源的负载情况,JVM的GC频率和内存使用率,系统自身的业务指标,系统的异常报错。
这些东西都会基于监控平台接入对应的监控项,同时设定关键监控项的一些报警阈值。
一个比较成熟的系统监控体系的建议
首先通过监控平台是可以看到你的所有线上系统所在的机器资源的负载情况的,比如CPU负载,这个可以看到现在你的CPU目前的使用率有多高,比如你的CPU使用率都达到100%了,此时一定有问题了,你得检查一下为什么CPU负载那么高。
而且可以看到你的机器上磁盘IO的一些负载,包括磁盘上发生了多少数据量的IO