Fehler bei der Seitenzuordnung - Ist der Speicher voll?

24

In letzter Zeit habe ich Einträge wie diesen auf einem kern.logmeiner Server bemerkt :

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. Läuft meinem Server der Speicher aus?

Die Auslagerungsnutzung ist recht gering (weniger als 10%), und ich habe bisher keine Prozesse bemerkt, die aufgrund von Speichermangel abgebrochen wurden.

Zusätzliche Information:

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

Antworten:

14

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. Diese werden hier wiedergegeben:

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

  • Swap-less-Rechner, bei denen eingehender Netzwerkverkehr den Kernel nicht überfordern und einen OOM erzwingen soll, bevor er Zeit hat, Puffer zu leeren.

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

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

Matt McHenry
quelle
Genau dasselbe kann bei bestimmten Geräten auftreten, z. B. bei MPT Fusion SCSI-Controllern. Es wird empfohlen, vm.min_free_kbytes auf etwa 100 Megabyte zu beschränken. Zumindest war es das gewohnt, als ich diese Dinge zuletzt mit 32-Bit-Linux-Distributionen verwenden musste. Die Dinge könnten sich seitdem geändert haben.
Janne Pikkarainen
WICHTIGE WARNUNG . echo 104857600 > /proc/sys/vm/min_free_kbytes VERURSACHT MEIN SYSTEM, UM PANIK ZU KERNEN, reproduzierbar . Während des Vorgangs flog einiges an Text auf dem Bildschirm auf, von dem ich keine Hoffnung hatte, dass er gelesen werden könnte. Die letzten Nachrichten betrafen jedoch meinen WLAN-Dongle, sodass diese Unregelmäßigkeit möglicherweise für mein System spezifisch ist. Trotzdem mit Vorsicht stochern.
i336_
OH, es ist in Kilobyte . Ich kann mich nicht konkret erinnern, ob ich 104857600 oder 10485760 gemacht habe, aber wenn ich das erstere gemacht habe, habe ich versucht, 100 GB zu reservieren, die dieser Laptop nicht installiert hat.
i336_
1

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

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

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

Die Lösung für mich war, vm.min_free_kbytesvon 65536unten nach unten zu setzen 16384.

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

Criggie
quelle