赛尔校园公共服务平台 Logo
平台使用
阿里云
百度云
移动云
智算服务
教育生态
登录 →
赛尔校园公共服务平台 Logo
平台使用 阿里云 百度云 移动云 智算服务 教育生态
登录
  1. 首页
  2. 阿里云
  3. 云服务器 ECS
  4. 服务支持
  5. 实例宕机问题
  6. ECS实例宕机并报错“Out of memory and no killable processes”如何处理?

ECS实例宕机并报错“Out of memory and no killable processes”如何处理?

  • 实例宕机问题
  • 发布于 2025-04-01
  • 0 次阅读
文档编辑
文档编辑

如果您的ECS实例出现宕机,并且报错日志中存在Out of memory and no killable processes信息,则可以参考本文提供的方案解决问题。

问题现象

ECS实例在运行过程中出现宕机,并且有类似于如下所示的调用栈:

[28663.625353] [ pid ]   uid  tgid total_vm      rss nr_ptes nr_pmds swapents oom_score_adj name
[28663.625363] [ 1799]     0  1799    26512      245      56       3        0         -1000 sshd
[28663.625367] [29219]     0 29219    10832      126      26       3        0         -1000 systemd-udevd
[28663.625375] Kernel panic - not syncing: Out of memory and no killable processes...
[28663.634374] CPU: 1 PID: 3578 Comm: kworker/u176:4 Tainted: G           OE   3.10.0-1062.9.1.el7.x86_64 #1
[28663.676873] Call Trace:
[28663.679312]  [<ffffffff8139f342>] dump_stack+0x63/0x81
[28663.684421]  [<ffffffff811b2245>] panic+0xf8/0x244
[28663.689184]  [<ffffffff811b98db>] out_of_memory+0x2eb/0x550
[28663.694726]  [<ffffffff811be254>] __alloc_pages_may_oom+0x114/0x1c0
[28663.700959]  [<ffffffff811bedb3>] __alloc_pages_slowpath+0x7d3/0xa40
[28663.707279]  [<ffffffff811bf229>] __alloc_pages_nodemask+0x209/0x260
[28663.713599]  [<ffffffff81216535>] alloc_pages_current+0x95/0x140
[28663.719573]  [<ffffffff811ba5ee>] __get_free_pages+0xe/0x40
[28663.725113]  [<ffffffff81075dae>] pgd_alloc+0x1e/0x160
[28663.730225]  [<ffffffff810875e4>] mm_init+0x184/0x240
[28663.735249]  [<ffffffff81088102>] mm_alloc+0x52/0x60
[28663.740186]  [<ffffffff81257640>] do_execveat_common.isra.37+0x250/0x780
[28663.759839]  [<ffffffff81257b9c>] do_execve+0x2c/0x30
[28663.764864]  [<ffffffff810a231b>] call_usermodehelper_exec_async+0xfb/0x150
[28663.777246]  [<ffffffff81741dd9>] ret_from_fork+0x39/0x50

问题原因

操作系统内核分配内存失败后,尝试通过kill进程来释放内存,但系统没有可被kill的进程,进而触发了系统的主动宕机。出现该问题的可能原因有:

  • 系统内核存在内存泄漏,从而导致系统可用内存不足。

  • oom_score_adj为-1000的进程占用过多内存,该类进程无法被杀死从而导致系统可用内存不足。

    说明

    oom_score_adj 的值是一个整数,表示进程在Out of Memory(OOM)条件下被内核优先级选择的可能性。较低的值表示内核不可能选择该进程进行OOM杀死,而较高的值表示该进程越有可能被选择。

解决方案

重要

在操作前,建议您为ECS实例创建快照备份数据,避免因误操作造成的数据丢失。创建快照的具体操作,请参见创建快照。

  1. 检查系统内核是否存在内存泄漏。

    具体操作,请参见如何排查slab_unreclaimable内存占用高的原因?。

  2. 检查进程的oom_score_adj设置是否合理。

    1. 执行以下命令,获取进程的PID。您可以使用命令如 ps、top 或 pgrep 来查找进程的 PID。

      ps aux | grep <进程名称>

      您需要将 <进程名称> 替换为您要查找的进程的名称。

    2. 执行以下命令,检查 oom_score_adj 设置。

      cat /proc/<PID>/oom_score_adj

      您需要将 <PID> 替换为已获取的进程实际PID。

      根据您的环境和需求,可以根据oom_score_adj的值来评估进程的OOM行为是否合理。如果oom_score_adj的值为-1000,则表示该进程具有较低的优先级,更不可能被内核选择进行OOM杀死,从而导致系统可用内存不足。

相关文章

ECS实例宕机并产生“Objects remaining in kmalloc”告警日志,如何处理? 2025-04-01 12:00

如果您在ECS实例内使用memory cgroup kmem功能时内核存在Objects remaining in kmalloc告警日志,且实例出现宕机,则可以参考本文提供的方案解决问题。

ECS实例宕机并产生“RIPget_target_pstate_use_performance”日志,如何处理? 2025-04-01 12:00

如果您的ECS实例在启动过程中宕机,且产生了RIP:get_target_pstate_use_performance日志,则可以参考本文提供的方案解决问题。

ECS实例宕机并产生“VFS Unable to mount root fs on unknown-block”日志,如何处理? 2025-04-01 12:00

如果您的ECS实例在启动过程中循环宕机,且产生了VFS: Unable to mount root fs on unknown-block日志信息,则可以参考本文提供的方案解决问题。

ECS实例宕机并报错“Out of memory and no killable processes”如何处理? 2025-04-01 12:00

如果您的ECS实例出现宕机,并且报错日志中存在Out of memory and no killable processes信息,则可以参考本文提供的方案解决问题。

Linux系统实例的宕机问题排查 2025-04-01 12:00

当Linux操作系统的ECS实例在运行过程中出现内核panic、内存溢出OOM(Out Of Memory)、蓝屏卡死等问题或收到系统事件通知实例出现操作系统崩溃时,说明该ECS实例发生宕机,您可以通过自助诊断工具或系统内核日志来定位问题并解决。 定位宕机原因 您可以通过以下方式,定位发生宕机的具体

vSwitch中实例数量过多导致CentOS实例夯机或异常重启问题的解决方案 2025-04-01 12:00

本文介绍CentOS 7系统并且内核版本为3.10.0-514的实例,当其所在的VPC网段中实例过多时,可能会触发Linux内核问题,导致实例夯机或者异常重启的问题原因及解决方案。 问题现象

目录
Copyright © 2025 your company All Rights Reserved. Powered by 赛尔网络.
京ICP备14022346号-15
gongan beian 京公网安备11010802041014号