首页 > 其他分享 >OOM(Out Of Memory)是什么?

OOM(Out Of Memory)是什么?

时间:2024-10-08 15:10:42浏览次数:1  
标签:node OOM Killer oom 内存 Memory 进程 Out

node_vmstat_oom_killPrometheusnode_exporter 中用于监控内存管理的一项指标。这个指标表示系统中由于内存不足(Out Of Memory, OOM)而被杀死的进程次数

OOM(Out Of Memory)是什么?

当系统的物理内存和交换空间耗尽时,操作系统会启动 OOM Killer(Out Of Memory Killer),选择并强制杀死某个占用大量内存的进程,以释放内存供系统继续运行。OOM 事件通常发生在系统面临严重内存压力时,这时一些进程会被迫终止,避免系统完全崩溃。

node_vmstat_oom_kill 具体检测的内容

node_vmstat_oom_kill 监控的是系统中被 OOM Killer 杀死的进程的累计次数。当系统发生内存不足时,OOM Killer 会选择某些进程进行终止,这个指标会递增,显示 OOM Killer 成功杀死了多少个进程。

关键点:

  • node_vmstat_oom_kill 是一个计数器:它的值表示自系统启动以来,OOM Killer 杀死的进程次数,而不是正在被杀死的进程数量。因此,如果你监控到这个值的增加,说明系统最近发生了内存不足的情况。

  • 内存压力或资源不足的信号:当 node_vmstat_oom_kill 频繁增加时,通常意味着系统面临严重的内存不足,可能需要增加物理内存、减少内存占用进程,或者检查是否有内存泄漏的问题。

如何应对 OOM:

  1. 监控内存使用:可以使用 Prometheusnode_exporter 监控系统的内存使用情况,包括总内存、可用内存、缓存和交换空间等信息。指标如 node_memory_MemAvailable_bytes 可以帮助你了解当前系统的内存压力。

  2. 分析 OOM 事件

    • 使用 dmesg 命令查看 OOM Killer 的日志,确认哪些进程因为 OOM 而被杀死。例如:
      dmesg | grep -i "out of memory"
      你可以查看哪些进程在 OOM 事件中被终止,以及内存使用情况。
  3. 调整系统内存设置

    • 增加物理内存或调整虚拟内存(swap)的大小,以避免频繁触发 OOM。
    • 优化内存使用,关闭或调整那些内存占用较大的进程。
  4. 调整 OOM Killer 行为

    • 可以通过调整进程的 oom_score_adj 值来更精细地控制哪些进程应该在 OOM 情况下优先被杀死。

其他相关指标

  • node_memory_MemAvailable_bytes:系统中当前可用的内存量。
  • node_memory_SwapFree_bytes:系统中空闲的交换空间量。
  • node_vmstat_pgmajfault:重大页面错误的次数,通常意味着系统频繁使用交换空间,可能预示着即将发生 OOM。

总结

node_vmstat_oom_kill 是用于检测主机上由于内存不足而被 OOM Killer 杀死的进程次数的指标。如果发现该指标的值不断增加,说明系统的内存资源不足,需要检查内存使用情况,并采取措施避免 OOM 事件的频繁发生。

 

标签:node,OOM,Killer,oom,内存,Memory,进程,Out
From: https://www.cnblogs.com/rtnb/p/18451697

相关文章

  • GUI图形界面 无代码开发 原理 - 属性标识链 | uiotos致敬amis、nodered、appsmith、co
    低代码饱受争议。也有例外:后端NodeRed,前端Amis。整体还是诟病为主:简单业务可以,复杂的是扯淡,不论前后端。这是一贯的认知。在GUI方面,UIOTOS发明的嵌套技术,为复杂前端的无代码开发,开辟了一条新的思路。往期文章:可视化拖拉拽?过时了!组态零代码,不能做复杂前端?嵌套原理一复杂交互......
  • 组态也能开发WEB前端 | uiotos致敬amis、nodered、appsmith、codewave、goview、datar
    WEB组态开发SCADA、HMI画面、大屏可视化,还比较常见。比如下面: UIOTOS组态示例那么常规WEB前端功能,组态能否一并做了呢?比如下面这种: UIOTOS前端示例答案是可以的!UIOTOS支持页面无限嵌套,能实现原型即应用。现在就以一个具体小示例介绍如何实现的。效果如下所示,初......
  • CITS2002 simulation of virtual memory
    CITS2002-SecondProjectAsimplesimulationofvirtualmemoryThisprojectisworth10%ofthemarksintheunit.Theprojectcanbedoneingroupsoftwo.TheduedateoftheprojectisOctober17,11:59pm.Theprojectdescriptionislong,butthe......
  • 论文分享-《GPU Memory Exploitation for Fun and Profit》
    1.研究问题该论文对NVIDIAGPU上不同内存空间(globalmemory,localmemory,sharedmemory)中存在的bufferoverflow问题进行了深入的研究,并成功对在GPU上运行的DNN应用实现了ROP攻击。以往的研究局限于单一内存空间中bufferoverflow的影响,没有对不同内存空间的跨......
  • MemoryAnalyzer指定JDK版本
    小手追梦于2021-06-2809:56:24发布阅读量2w收藏20点赞数21分类专栏:java版权java专栏收录该内容171篇文章4订阅订阅专栏问题描述MemoryAnalyzer启动时报错看了日志,提示需要jdk11才可以运行,但是我的环境变量配置的是jdk8,这咋整?不想更改环境变量中的jdk配置信息,因为......
  • zoomeye类似搜索引擎和子域名搜索
    与zoomeye类似的搜索引擎[fofa][网络空间测绘,网络空间安全搜索引擎,网络空间搜索引擎,安全态势感知-FOFA网络空间测绘系统](https://fofa.info/)[Shodan][https://www.shodan.io](https://www.shodan.io/)[Censys][https://search.censys.io](https://search.censys.io/)子......
  • kube-ovn net/http TLS handshake timeout
    问题现象业务报错net/http:TLShandshaketimeout。容器IP跨节点访问kube-apiserverserviceclusterIP不通。问题分析kkotrace[ns]/[pod][ip]tcp443|grep对端主机ipkube-ovn在br-int网桥上刷流表实现了kube-proxy的dnat功能。kube-ovn监听service的endpoints,像kub......
  • DataInOut 文件输入输出示例
    publicclassDataInOutTest{publicstaticvoidmain(String[]args){DataOutputStreamdos=null;DataInputStreamdis=null;FileInputStreamfis=null;FileOutputStreamfos=null;try{fis=newFileInp......
  • qoj9230 Routing K-Codes 题解
    首先这个图肯定不能有环,也不能有度数大于\(3\)的点。也就是说这是一颗二叉树。我们假设父亲都比儿子小,根节点的值最小。那么假设\(u\)点的值为\(x\),它的儿子的值一定是\(\{2x,2x+1\}\)的子集。会发现\(u\)的子树内的权值和是一个关于\(x\)的一次函数。而且无论两个儿......
  • 图片无损放大编辑PhotoZoom Pro 9.0.2多版本软件安装包下载含安装教程
    PhotoZoomPro9.0.2多版本软件是一款非常流行的图像放大软件,它可以让你将低分辨率的图像放大到高分辨率的尺寸,同时保持高质量的图像细节和清晰度。PhotoZoomPro9.0.2多版本软件采用了一种称为S-Spline技术的算法,这是一种能够保持图像细节的高级插值算法。它可以将原始图像分成小......