HMCL
HMCL copied to clipboard
问题:游戏被OOM Killer杀死
游戏莫名被OOM Killer杀死,也没有崩溃日志。有时候还连带着启动器一起杀死。
第三方问题不由启动器负责
如果是 windows 的话检查剩余内存是否被备用区域(standby list)占用。 这种情况会导致 Hotspot 分配失败。
如果是 Linux 的话你应该看看有没有 hs_err*.log
,有的话里面的崩溃信号量是否是 SIGSEGV,以及崩溃前的栈是什么样的。
顺带一提为 JVM 设置最大堆内存的时候应该结合实际可用内存预留一些堆外内存的份额,否则会直接 VM crash 而不是 Java 的 OOM Error。
@NekoCaffeine 不应该啊,我开个2GB内存的Ubuntu虚拟机都没事,这个Minecraft才分配1280MB就被杀死了,啥光影都没装
堆外内存吃多少又不是你能控制的
说这么多加内存条不就完了
@NekoCaffeine 但是OOM Killer杀进程是看进程的驻留内存用量是否急剧上升,所以内存哪怕没满它也杀(好像)
要么关了要么自己调 oom_score_adj 一但触发内核恐慌很容易就优先把 JVM 杀了
@NekoCaffeine oom_score调了更麻烦,直接杀死父进程,游戏就变僵尸进程了🤣
关掉oom要重新编译内核……