OOM-Killer trotz viel freien Speichers auf dem PAE-Kernel

1580
Stefan Seidel

Wir haben einen Applikationsserver, der aus älteren Gründen noch auf einem 32-Bit-Kernel mit PAE (Ubuntu 12.04 LTS) läuft. Der Server verfügt über 24 GB RAM, wie in der Ausgabe von free:

$> free -lmt insgesamt verwendete freie gemeinsam genutzte Puffer zwischengespeichert Mem: 24256 19468 4788 0 0 2382 Niedrig: 189 146 42 Hoch: 24067 19321 4745 - / + Puffer / Cache: 17085 7170 Swap: 19956 47 19908 Insgesamt: 44212 19515 24697 

Sobald jedoch die reale Speicherauslastung auf etwa 16 GB ansteigt, werden Prozesse durch den OOM-Killer (insbesondere Google Chrome) beendet, und einige Speicherzuordnungen von Java neigen auch dazu, zu versagen. Ich habe schon eingestellt

vm.overcommit_memory = 1 

via sysctl, aber es scheint nicht zu helfen. Hier ist ein Auszug von dmesg, der die Ausgabe nach einer der OOMs zeigt.

2

1 Antwort auf die Frage

3
pwaller

Eine schnelle Suche oom killer prematurenach Google deutet darauf hin, dass es einige Gründe gibt, warum der OOM-Killer aufgerufen werden könnte, selbst wenn das System über eine Menge an scheinbar vorhandenem Speicher / Swap verfügt.

Eine mögliche Erklärung ist die Speicherfragmentierung, insbesondere:

Normal: 2386*4kB 2580*8kB 197*16kB 6*32kB 4*64kB 0*128kB 1*256kB 1*512kB 1*1024kB 0*2048kB 0*4096kB = 35576kB 

Schlägt vor, dass nicht viele normale große Seiten verfügbar sind.

Ich fürchte, dies ist keine vollständige Antwort auf Ihre Frage, aber Sie könnten in eine mögliche Richtung weisen.