build.sh 運行後 ubuntu 伺服器崩潰

build.sh 運行後 ubuntu 伺服器崩潰

我有一個使用 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會使核心崩潰嗎?

答案1

記憶體溢出殺手當系統記憶體嚴重不足時啟動:

Linux「oom Killer」的工作就是犧牲一個或多個進程,以便在其他所有方法都失敗時為系統釋放記憶體。出於顯而易見的原因,它還會終止mm_struct與所選進程共享相同內容的任何進程。如果其值/proc/<pid>/oomadj設定為常數OOM_DISABLE(目前定義為 -17),則任何特定進程領導者都可以免受 oom Killer 的影響。

需要檢查的事項:

  • 您的建置腳本中的某些內容是否佔用了大量記憶體?
  • 您正在使用的某些工具是否有記憶體洩漏?

看一下這篇 LWN 文章

相關內容