Wir verwenden cgroup limit procedure verwenden mehr resource aber, wenn Memory mehr als limit in cgroup ist, wird es Prozess zu töten . oom-Killer-Speicher-Subsystem Verwendung des cgroup statt Rückkehr Speicherzuordnungsfehler, wenn Fortschritte Speicher über cgroup Grenze zulassen?Warum das Speicher-Subsystem von Cgroup oom-killer anstelle von Rückspeicherzuordnung verwendet, wenn Fortschritt Speicher über cgroup limit erlaubt
5
A
Antwort
1
Es scheint Warum das cgroups entweder den Prozess Verwendung oom-Killer oder Pause kann (https://access.redhat.com/documentation/en-US/Red_Hat_Enterprise_Linux/6/html/Resource_Management_Guide/sec-memory.html). Aber mit ulimit schlägt die Zuweisung einfach normal fehl.
Einige unbeantwortete Fragen bleiben: Gibt es einen Weg, um cgroups den Prozessspeicher zu verweigern (NULL von malloc zurückgeben)? Oder gibt es eine Möglichkeit, Ulimit dazu zu bringen, physischen Speicher (-m) und nicht nur virtuelles (-v) zu verweigern?
Bitte formulieren Sie die Frage mit weiteren Details um, wenn Sie eine bessere Antwort wünschen. Es ist am besten, die cgroup conf und weitere Details zu teilen. usw. – askb
Es wäre schön, zumindest folgendes zu wissen: Welchen Kernel benutzen Sie? Verwenden Sie weiche oder harte Speicherlimits? Die gesamte cgroup config wäre jedoch besser (besonders wenn es nicht trivial ist). Es wird jedoch nicht erwartet, dass das Cgroup-Speichersubsystem einen Prozess abbricht, es sei denn, es besteht tatsächlich ein Speichermangel (es werden nur Speicher und Swap verwendet). – marbu
Ich benutze 2.6.32 kernel, und benutze harte memeory limits.I test mysql, benutze jede cgroup memory.Ich benutze nicht swap.It wird oom, und oom-kill.Ohne Ich hoffe Kernel wird Fehler zurück, wenn sie kann die Seite nicht verteilen, aber oom-kill oder auflegen. – kryptosx