• 开机报错:Kernel panic


    昨天一台机器被重启后没办法启动,报以下错误:

      看这个以为原先虚拟机内存太小了,需要调大一些,但是设置了原先的2倍也没办法启动,感觉应该像是内核参数可能被调整错误了。 故进入救援模式查看原有系统中 /etc/sysctl.conf文件配置信息,果然 vm.min_free_kbytes值设置的超级大,达到了2T的内存大小。故修改器中为2G大小,之后就可以正常开机了。

    宕机原因: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,直至将所有进程杀掉,重启无法启动也是因为当启动时刚启动一个进程,系统就认为内存不足而将其杀掉,导致无法启动。

       在32位的linux里,系统认为lowmem就是当前内存的大小,只要lowmem不够用就认为内存不够用了,就开始杀进程来释放,设定vm.min_free_kbytes也就让系统空闲出多少lowmem,所以设定值超出lowmem会出现异常。

      

  • 相关阅读:
    Jenkins自定义变量共享
    HTML中调用JavaScript的几种情况和规范写法
    [Python] 建 Django 项目
    [Django] Window上通过IIS发布Django网站
    [Python] 怎么把HTML的报告转换为图片,利用无头浏览器
    VMware vSphere Client
    mysql优化
    LINUX 内核的优化
    sed强大的固定替换格式
    nfs以及优化
  • 原文地址:https://www.cnblogs.com/Binggo30/p/13689411.html
Copyright © 2020-2023  润新知