it-swarm.com.de

Seitenzuordnungsfehler - Ist mir der Speicher ausgegangen?

In letzter Zeit habe ich Einträge wie diesen im kern.log von einem meiner Server:

Feb 16 00:24:05 aramis kernel: swapper: page allocation failure. order:0, mode:0x20

Ich würde gerne wissen:

  1. Was genau bedeutet diese Nachricht?
  2. Ist auf meinem Server nicht mehr genügend Speicher vorhanden?

Die Swap-Nutzung ist recht gering (weniger als 10%), und ich habe bisher nicht bemerkt, dass Prozesse aufgrund von Speichermangel abgebrochen wurden.

Zusätzliche Information:

  • Der Server ist eine Xen-Instanz (DomU), auf der Debian 6.0 ausgeführt wird
  • Es hat 512 MB RAM und eine 512 MB Swap-Partition)
  • Die CPU-Auslastung in der virtuellen Maschine beträgt durchschnittlich 0,25
25
mfriedman

Debian-Fehler 666021 scheint ein Bericht über dasselbe Problem zu sein. Der Vorschlag dort ist:

#change value for this boot
sysctl -w vm.min_free_kbytes=65536

#change value for subsequent boots
echo "vm.min_free_kbytes=65536" >> /etc/sysctl.conf

http://russ.garrett.co.uk/2009/01/01/linux-kernel-tuning/ hat einige Diskussionen darüber, wann das Ändern dieser Einstellung nützlich sein kann, hier wiedergegeben:

Dies weist den Kernel an, zu versuchen, 64 MB RAM jederzeit frei zu halten. Es ist in zwei Hauptfällen nützlich:

  • Swap-freie Maschinen, auf denen der eingehende Netzwerkverkehr den Kernel nicht überfordern und einen OOM erzwingen soll, bevor er Zeit hat, Puffer zu leeren.

  • x86-Computer aus demselben Grund: Die x86-Architektur erlaubt nur DMA - Übertragungen unter ca. 900 MB RAM. So können Sie mit der bizarren Situation eines OOM-Fehlers mit Tonnen von RAM frei enden.

Ich habe diese Einstellung auf meinem 3.2.12-gentoo x86-Computer angewendet, erhalte aber immer noch diese Fehler.

15
Matt McHenry

Es kann sich auch lohnen, vm.zone_reclaim_mode: siehe http://www.kernel.org/doc/Documentation/sysctl/vm.txt

1
mblakele

Ich habe diesen Fehler gerade auf einem Lenovo NAS mit Debian 5 und Kernel 2.6.39.3 64bit) behoben.

Die Nachrichten sind informativ, obwohl sie beängstigend aussehen, laut https://www.novell.com/support/kb/doc.php?id=70028

Sie füllten jedoch meine sehr begrenzte Root-Partition (dieses Gerät hat eine 50-MByte-Root-Partition ?!)

Die Lösung für mich war, vm.min_free_kbytes von 65536 bis zu 16384.

Danach verfügt das Betriebssystem noch über 107 MByte freien Speicher und 2 GB Puffer. Dies macht keinen Sinn, hat aber die gesamte Protokollierung gestoppt.

1
Criggie