开机报错Kernel panic - not syscing : Out of memory and no killable processes

怀疑是内核参数设置的最低内存限制

看到有vm.min_free_kbytes为5G的要求。

将其注销,修改vm内存为1G,可以正常开机。

 

以下为网友的内容:

设定vm.min_free_kbytes时,需注意lowmem的值

今天在调整内核中的内存策略,有台机器是16G内存32位系统,将vm.min_free_kbytes值设定为物理内存的5%,也就是内存低于5%自动释放,跟其他机器一样,编辑好sysctl.conf后执行sysctl -p,结果悲剧的事发生了,服务器马上就宕机了,通知机房重启无果,单用户也无法进入,报Kernel panic - not syncing: Out of memory and no killable processes... ,只能赶到机房,用光盘启动救援模式,将刚才添加策略注销掉系统可以起来了。

不甘心再次尝试设定vm.min_free_kbytes值,sysctl -p 结果一样,最后将值设定为2%,没有问题,那问题肯定出在这个值上,查看messages,其中有记录kernel: 896MB LOWMEM available这么一句,貌似在其他系统中没看到过,就从他下手查找原因。

宕机原因:

vm.min_free_kbytes 设定值高于LowTotal 值,系统认为没有足够的lowmem,而触发OOM Killer,将进程强行杀掉。

具体分析:

系统中内存分为lowmem和highmem,其中lowmem为寻址内存,当lowmem耗尽时,系统会触动OOM Killer将多余进程杀掉来释放内存(2.6内核为杀掉占用内存最高的进程)

其中64位系统会将所有内存大小都划分到lowmem中,防止lowmem不够用,而32为系统是分开的,上限为896M左右,具体可通过 egrep 'High|Low' /proc/meminfo  命令查看

如果将vm.min_free_kbytes 的值设定大于LowTotal 的值,则系统会认为当前没有足够的内存而触发OOM Killer,直至将所有进程杀掉,重启无法启动也是因为当启动时刚启动一个进程,系统就认为内存不足而将其杀掉,导致无法启动

(已做实验,将vm.min_free_kbytes的值设定的比lowmem值大1都会触发OOM Killer)

简单的说也就是像大家用32位的XP,如果你是4G内存,系统也就只能认到3.5G,在32位的linux里,系统认为lowmem就是当前内存的大小,只要lowmem不够用就认为内存不够用了,就开始杀进程来释放,设定vm.min_free_kbytes也就让系统空闲出多少lowmem,所以设定值超出lowmem会出现异常。

所以,32位系统设定前要查看实际lowmem的大小,虽说上限是896M,但我这台16G的机器才700M多,具体什么原因那就是内核机制的事了,有空再做研究,现在知道是怎么死的就行了。

血的教训呀,像大内存的机器,以后还是用64位系统吧,32位真是会在你不知情的情况下出问题呀。

备注:网上资料说在一个32位系统中,物理内存越高,所消耗的lowmem越高,16G的服务器所消耗的将近是4G内存的4倍左右

 

 

  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
当你在启动过程中遇到"Kernel panic - not syncing: No working init found"错误时,这通常表示系统无法找到有效的初始化程序(init)。这可能是由于文件系统损坏、启动参数错误或引导配置问题引起的。你可以尝试以下解决方法: 1. 确保你的文件系统正确配置并没有损坏。你可以使用文件系统检查工具(如fsck)来检查和修复文件系统错误。 2. 检查引导参数是否正确设置。你可以尝试通过传递init=选项给内核来解决该问题。这可以在启动时的bootloader配置文件中进行设置,或者在启动时手动输入。具体的设置方法可以参考Linux文档中的相关指导。 3. 检查引导配置是否正确。有时,引导配置文件中的错误也会导致该错误。你可以检查引导配置文件(如grub.cfg)中的initrd和root选项,确保它们指向正确的文件和分区。 4. 如果你在虚拟机中遇到此错误,你可以尝试创建一个新的兼容性虚拟机或使用另一个vmx文件来修复问题。 综上所述,当遇到"Kernel panic - not syncing: No working init found"错误时,你可以通过检查文件系统、引导参数和引导配置来解决问题。如果是在虚拟机中遇到此错误,你可以尝试创建新的虚拟机或使用其他vmx文件来解决问题。希望这些方法能对你有所帮助。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* [解决ubuntu根文件系统启动时遇到的kernel panic问题中 no working init found](https://blog.csdn.net/weixin_45591821/article/details/127120316)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 33.333333333333336%"] - *2* [petalinux启动报错Kernel panic - not syncing: No working init found. Try passing init= option to ...](https://blog.csdn.net/buster0o/article/details/130083503)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 33.333333333333336%"] - *3* [虚拟机黑屏end kernel panic - not syncing两种解决方式.docx](https://download.csdn.net/download/yqc0704/12083970)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 33.333333333333336%"] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

victoruu

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值