У меня есть сервер сборки с Ubuntu. И в моем исходном коде типично build.sh
вызывать файл make для компиляции исходного кода. Но вдруг сервер вышел из строя, и я нашел следующий журнал в syslog
:
Aug 4 13:47:28 VDBS1130 kernel: [2689989.302589] build.sh invoked oom-killer: gfp_mask=0xd0, order=1, oom_adj=0, oom_score_adj=0
Aug 4 13:47:28 VDBS1130 kernel: [2689989.302593] build.sh cpuset=/ mems_allowed=0
Aug 4 13:47:28 VDBS1130 kernel: [2689989.302596] Pid: 8978, comm: build.sh Not tainted 3.2.0-60-generic-pae #91-Ubuntu
Aug 4 13:47:28 VDBS1130 kernel: [2689989.302598] Call Trace:
Может кто-нибудь сказать мне, что это значит? Может ли мой локальный build.sh
разбить ядро?
Уничтожитель OOM активируется, когда система имеет серьезную нехватку памяти:
Это - задание Linux 'oom уничтожитель' для принесения в жертву одного или нескольких процессов для освобождения памяти для системы, когда все остальное перестало работать. Это также уничтожит любой процесс, совместно использующий тот же
mm_struct
как выбранный процесс по очевидным причинам. Какой-то конкретный лидер процесса может быть привит против oom уничтожителя, если значение/proc/<pid>/oomadj
установлено к константеOOM_DISABLE
(в настоящее время определяемый как-17).
Вещи проверить:
Взглянули на эта статья .
LWN