TL;DR:Ubuntu 22.04 + Kernel >= 5.15.0-46 可能会导致512MB内存的小鸡内核崩溃
事情是这样的,QNet上周不是停电了嘛,等来电之后我发现某台小鸡失联了,通过VNC发现是启动失败,报错[ end Kernel panic - not syncing: System is deadlocked on memory ],意思是木得内存了所以内核炸了_(:з」∠)_
因为我系统挂的有监控,所以看了下停电前的记录,内存使用率稳定在40%左右,就还挺奇怪的,工单问客服,客服回复节点没问题,建议用快照恢复,我恢复了最近的快照,发现还是Kernel panic,然后重装系统(Ubuntu 22.04)好了。
然后问题又来了,重装之后我更新了系统,重启后又挂了,试了若干次稳定复现,只要更新系统就挂_(:з」∠)_后来通过VNC选择内核发现使用模板默认的5.15.0-25内核启动正常,最新的5.15.0-69启动失败,表现为选择内核后黑屏。
跟客服聊了一下,他说目前只有512MB内存的小鸡有报告这种情况,所以推测是内存不足,但是他也不确定。Ubuntu官方文档说server的推荐内存是1G,不过没有说最低要求。
The recommended system requirements are:CPU: 1 gigahertz or better
RAM: 1 gigabyte or more
Disk: a minimum of 2.5 gigabytes
然后搜到了这个帖子,里面提到他的系统升级linux-headers-5.15.0-46后重启Kernel panic,和我的情况一样。为了验证,我作死找了另一个512MB内存的小鸡,内核版本恰好是5.15.0-46,重启发现内核果然炸了_(:з」∠)_
所以结论应该很清楚了,Ubuntu 22.04内核>=5.15.0-46(或者稍早一点的版本,具体哪个无法考证)无法在512MB的内存下运行,我试过加swap没有用,这也合理,毕竟内核启动应该在挂载swap之前。
但是还有一个奇怪的地方,就是这两台小鸡之前运行都正常(大约2个月前重启过),只有现在重启崩溃,而且稳定复现。更新内核崩溃还可以理解,但是为什么没更新内核只重启也崩了(我把内核mark hold了,所以根本没有安装),连快照都崩?我猜是2月~3月期间更新的另一个软件包导致的,具体是哪个就无从考证了。
所以总结一下,就是
512MB RAM + Ubuntu 22.04 + Kernel >= 5.15.0-46 + 2023年2月或3月更新过软件包 = 内核崩溃
所以如果你的小鸡符合以上条件但是运行正常,请尽快备份数据,免得重启变砖。如果你的小鸡还没有升级到这个系统或者内核版本,请不要升级(冻结内核更新的方法:apt-mark hold linux-image-generic linux-headers-generic)。
p.s. 因为每家系统模板不一样,所以不一定100%复现,但是谨慎为好;另外对于OVZ的小鸡超售也可能导致OOM。
文章评论