HMCL icon indicating copy to clipboard operation
HMCL copied to clipboard

问题:游戏被OOM Killer杀死

Open cheny0y0 opened this issue 2 years ago • 11 comments

游戏莫名被OOM Killer杀死,也没有崩溃日志。有时候还连带着启动器一起杀死。

cheny0y0 avatar Aug 13 '22 05:08 cheny0y0

第三方问题不由启动器负责

Yue-cn avatar Aug 29 '22 11:08 Yue-cn

如果是 windows 的话检查剩余内存是否被备用区域(standby list)占用。 这种情况会导致 Hotspot 分配失败。

NekoCaffeine avatar Aug 30 '22 14:08 NekoCaffeine

如果是 Linux 的话你应该看看有没有 hs_err*.log,有的话里面的崩溃信号量是否是 SIGSEGV,以及崩溃前的栈是什么样的。

NekoCaffeine avatar Aug 30 '22 14:08 NekoCaffeine

顺带一提为 JVM 设置最大堆内存的时候应该结合实际可用内存预留一些堆外内存的份额,否则会直接 VM crash 而不是 Java 的 OOM Error。

NekoCaffeine avatar Aug 30 '22 14:08 NekoCaffeine

@NekoCaffeine 不应该啊,我开个2GB内存的Ubuntu虚拟机都没事,这个Minecraft才分配1280MB就被杀死了,啥光影都没装

cheny0y0 avatar Aug 30 '22 15:08 cheny0y0

堆外内存吃多少又不是你能控制的

NekoCaffeine avatar Aug 30 '22 16:08 NekoCaffeine

说这么多加内存条不就完了

NekoCaffeine avatar Aug 30 '22 16:08 NekoCaffeine

@NekoCaffeine 但是OOM Killer杀进程是看进程的驻留内存用量是否急剧上升,所以内存哪怕没满它也杀(好像)

cheny0y0 avatar Aug 31 '22 00:08 cheny0y0

要么关了要么自己调 oom_score_adj 一但触发内核恐慌很容易就优先把 JVM 杀了

NekoCaffeine avatar Aug 31 '22 15:08 NekoCaffeine

@NekoCaffeine oom_score调了更麻烦,直接杀死父进程,游戏就变僵尸进程了🤣

cheny0y0 avatar Sep 01 '22 13:09 cheny0y0

关掉oom要重新编译内核……

cheny0y0 avatar Sep 02 '22 02:09 cheny0y0