这发生在 Ubuntu 14.04 64 位 DigitalOcean Droplet 上:
Apr 22 02:17:02 localhost CRON[32514]: (root) CMD ( cd / && run-parts --report /etc/cron.hourly)
Apr 22 03:16:59 localhost kernel: [211877.884132] show_signal_msg: 12 callbacks suppressed
Apr 22 03:16:59 localhost kernel: [211877.884140] python[2376]: segfault at 24 ip 00000000004c278f sp 00007fbad163caa0 error 6 in python2.7[400000+2bd000]
凌晨 3:16 左右,CPU 飙升至 100%,并且机器对 ping、SSH 和(远程)控制台没有响应:
https://i.stack.imgur.com/wlNHA.png
“回调抑制”限制是如何出现的前第一个段错误?
http://lxr.free-electrons.com/source/arch/x86/mm/fault.c#L727
一般来说,几个段错误怎么会导致内核锁定?有问题的进程处于 'while :; do python script.py; sleep 1; done'(注意 sleep)中,以 'nice 10' 运行,并且 oom_adj 增加,因此内核会首先将其杀死:
open('/proc/self/oom_adj', 'w').write('10')
os.nice(10)