Tengo un servidor de compilación con Ubuntu. Y en mi código fuente es típico build.sh
invocar el archivo make para compilar el código fuente. Pero de repente el servidor falló y encontré el siguiente inicio de sesión 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:
¿Alguien puede decirme qué significa? ¿Puede mi local build.sh
bloquear el kernel?
Respuesta1
ElAsesino OOMSe activa cuando el sistema tiene una escasez severa de memoria:
El trabajo del 'asesino del oom' de Linux es sacrificar uno o más procesos para liberar memoria para el sistema cuando todo lo demás falla. También eliminará cualquier proceso que comparta el mismo
mm_struct
proceso seleccionado, por razones obvias. Cualquier líder de proceso en particular puede ser inmunizado contra el asesino del oom si su valor/proc/<pid>/oomadj
se establece en la constanteOOM_DISABLE
(actualmente definida como -17).
Cosas para comprobar:
- ¿Algo en tu script de compilación está ocupando mucha memoria?
- ¿Hay pérdidas de memoria en alguna herramienta que estás utilizando?
Mira estoeste artículo de LWN.