OOM 如何监控可视化、告警推送、服务自愈

文章介绍了如何处理Linux系统的OOM(OutofMemory)问题,包括使用node_exporter、grafana、prometheus和alertmanager进行监控和告警设置,以及通过systemd服务配置实现系统的自动恢复。通过监控OOM频率和总次数,设置告警阈值,并利用systemd的RestartPreventExitStatus参数控制服务重启策略,以确保系统稳定运行。

OOM,out of memory,就是内存用完了耗尽了的意思。会触发kernel调用OOM killer杀进程来解除这种状况。

OOM分为虚拟内存OOM和物理内存OOM,两者是不一样的。

虚拟内存OOM发生在用户空间,用户空间分配的就是虚拟内存,不能分配物理内存,用户空间虚拟内存OOM表现为malloc、mmap等内存分配接口返回失败,错误码为ENOMEM。

程序在运行的时候触发缺页异常从而需要分配物理内存,kernel 自身在运行的时候也需要分配物理内存,如果此时物理内存不足了,就会发生物理内存OOM。

OOM是非常严重的问题,那我们如何监控、告警、甚至自愈呢?

1、采用 node_export + grafna +  prometheus + alertmanager  监控

1.1、node_export 监控数据采集 --collector.vmstat

/opt/exporter/bin/node_exporter_51233 --web.listen-address=0.0.0.0:51233 --collector.cpu.info --collector.arp --collector.cpu --collector.diskstats --collector.filesystem --collector.loadavg --collector.meminfo --collector.mountstats --collector.nfs --collector.stat --collector.tcpstat --collector.vmstat

1.2、grafna 中写PromQL 制定 OOM 可视化

-- oom 频率increase(node_vmstat_oom_kill{host=~"$host"}[1m])
-
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值