linux内存溢出怎么解决

 时间:2024-10-27 15:19:56

1、当内存严重不足时,内核有两种选择:1.直接panic2.杀掉部分进程,释放一些内核。

linux内存溢出怎么解决

2、对于每个进程都有一个oom_score的属性(/proc/PID/oom_score),oom killer会杀死oom_score较大的进程,当oom_score为0时禁止内核杀死该进程。对过设置/proc/PID/oom_adj可以改变oom_score,oom_adj的范围为【-17,15】,当oom_adj=-17时,oom_score将变为0。oom_adj的可调值为15到-16,其中15最大-16最小,-17为禁止使用OOM。oom_score为2的n次方计算出来的,其中n就是进程的oom_adj值,所以oom_score的分数越高就越会被内核优先杀掉。

linux内存溢出怎么解决

3、综上,可以通过命令 echo 0 > /proc/PID/oom_adj 来防止进程被oom_killer杀死。

linux内存溢出怎么解决

4、涉及到的参数如下:(1)、panic_on_oom 当OOM的时候,是否panic 当值为0的时候,在OOM的时候会调用OOM Killer,大部分情况下,会杀掉导致OOM的进程,然后系统恢复 当值为1的时候,发生了OOM以后,如果有mempolicy/cpusets的进程限制,而这些nodes导致了内存问题的时候,OOM Killer会干掉这些中的一个,系统也会恢复 当值为2的时候,OOM后必然panic

linux内存溢出怎么解决

5、(2)、oom_kill_allocating_task 决定在oom的时候,oom killer杀哪些东西。 非0的时候,它会扫描进程队列,然后将可能导致内存溢出的进程杀掉,也就是占用内存最大的那个,但是设置为0的时候,它只杀掉导致oom的那个进程,避免了进程队列的扫描,但是释放的内存大小有限

linux内存溢出怎么解决

6、(3)、oom_dump_tasks 当oom killer被引发的时候,将进程的信息输出,包括pid、uid、tgid、vm、rss、cpu等 默认为0

  • 关于非关系型数据库存储
  • PPT的幻灯片如何加上页脚
  • 如何给给文字设置玩具风车的入场动画
  • WORD文档中设置段落对齐方式的两种操作
  • 给双波形添加彩虹出岫渐变和预设效果
  • 热门搜索
    我爱读书手抄报花边 关于低碳环保的手抄报 初中手抄报版面设计 关于祖国风光的手抄报 关于勤俭节约的手抄报 创卫手抄报资料 森林防火手抄报资料 手抄报的内容 手抄报的格式 舌尖上的年味手抄报