Einige meiner Jobs werden aus irgendeinem Grund vom Betriebssystem getötet. Ich muss untersuchen, warum dies geschieht. Die Jobs, die ich ausführe, zeigen keine Fehlermeldungen in ihren eigenen Protokollen an, was wahrscheinlich darauf hinweist, dass os sie getötet hat. Niemand sonst hat Zugriff auf den Server. Ich bin mir des OOM-Killers bewusst. Gibt es noch andere Prozesskiller? Wo würde ich Protokolle für diese Dinge finden?
linux
kill
out-of-memory
mss
quelle
quelle
ulimit
Einschränkungen überschreiten (Heap ist gut, ebenso wie zu viele Prozesse für eine Java-Thread-App) oder JVM-definierte Grenzwerte überschreiten (für ein Java-Programm) oder für viele sterben andere Gründe; Keines davon muss die Ausgabe in Anwendungsprotokollen protokollieren.Antworten:
oom ist derzeit das einzige, was automatisch tötet.
und / var / log / messages sollten oom Kills anzeigen.
Wenn der Prozess dieses Signal verarbeiten kann, könnte er zumindest den Kill protokollieren.
Normalerweise werden Gedächtnisschweine getötet. Möglicherweise kann Ihnen mehr Swap-Speicherplatz helfen, wenn der Speicher nur zugewiesen wird, aber nicht wirklich benötigt wird.
Sonst: Holen Sie sich mehr RAM.
quelle
SIGSEGV
. B. ).Denken Sie daran:
SIGSEGV
oderSIGBUS
für ungültigen Speicherzugriff erhaltenSIGILL
für ungültige AnweisungenSIGFPE
bei einer ungültigen arithmetischen Operation wie Division durch 0SIGXCPU
oderSIGXFSZ
wenn der Prozess einige Grenzen überschreitetSIGHUP
für getrennte Klemmen und einige andere SituationenSIGPIPE
beim Versuch, in ein geschlossenes Rohr oder einen geschlossenen Sockel zu schreibenquelle