Hinweis: Dieser Artikel wurde urspruenglich im Jahr 2014 veroeffentlicht. Einige Schritte, Befehle oder Softwareversionen haben sich moeglicherweise geaendert. Pruefen Sie die aktuelle Ubuntu-Dokumentation fuer die neuesten Informationen.

In dieser Schritt-fuer-Schritt-Anleitung erfahren Sie, wie Sie die Swappiness in Ubuntu konfigurieren. Ubuntu ist eine beliebte Linux-Distribution basierend auf Debian, die haeufig fuer Server und Entwicklungsumgebungen verwendet wird.

Voraussetzungen

Bevor Sie beginnen, stellen Sie sicher, dass Sie Folgendes haben:

  • Ein System mit Ubuntu (Desktop- oder Server-Edition)
  • Terminalzugriff mit sudo-Berechtigungen
  • Grundlegende Vertrautheit mit der Linux-Kommandozeile

Anleitung: Swappiness in Ubuntu konfigurieren

In einem meiner frueheren Artikel zur (</install-swap-file-windows-azure-ubuntu-vm/> “How to: Install a swap file in a Windows Azure Ubuntu VM”) habe ich behandelt, wie man einen Swap-Bereich fuer eine Windows Azure VM installiert. Ich habe Swap hauptsaechlich als Vorsichtsmassnahme gegen Speicherknappheit eingerichtet, die dazu fuehren koennte, dass Anwendungen nicht mehr richtig funktionieren und die Website ausfallen koennte. Um das zu vermeiden, richtet man Swap ein, was zwar die Geschwindigkeit Ihrer Dienste verringern kann, aber zumindest werden sie nicht abstuerzen. Es verschafft Ihnen im Grunde Zeit, Ihre Speicherprobleme zu loesen, auf Kosten der Festplattennutzung, was zu zusaetzlichen Latenzen fuehrt. Bis hierhin scheint das Einrichten von Swap-Speicher genial, aber Vorsicht: Wenn Ihre Swappiness nicht richtig eingestellt ist, werden Sie unnoetige Latenzen erleben. In meinem Fall hatte ich noch ueber ein Gigabyte Speicher verfuegbar, aber es wurde bereits viel geswappt. Es macht keinen Sinn zu swappen, wenn genuegend RAM vorhanden ist; Sie verschieben nur Informationen in und aus dem Speicher, die leicht alle im Speicher Platz finden koennten. Die Swappiness steuert also, wie aggressiv das Betriebssystem den Swap-Bereich nutzen soll.

Was ist Swappiness?

Der Swappiness-Parameter in Ubuntu steuert die Tendenz des Betriebssystem-Kernels, Speicher (Informationen), der von Prozessen verwendet wird, aus dem physischen Speicher auf die Swap-Festplatte zu verschieben. Wie oben erwaehnt, ist die Verwendung einer Festplatte von Natur aus viel langsamer als die Verwendung von RAM. Dies fuehrt dazu, dass Anwendungen laenger zum Antworten brauchen, insbesondere diejenigen, die auf die Festplatte ausgelagert werden (die anderen leiden indirekt unter den zusaetzlichen IO-Operationen, befinden sich aber zumindest bereits im RAM).

Es gibt einige wichtige Dinge ueber die Verwendung dieses Parameters zu wissen:

  • Akzeptierte Swappiness-Werte reichen von 0 bis 100 einschliesslich.
  • Ein Wert von 0 zeigt dem Kernel an, das Swapping um jeden Preis zu vermeiden.
  • Ein Wert von 100 zeigt an, dass Informationen im Speicher aggressiv ausgelagert werden sollen.

Nach dem Lesen meiner Gedanken zur Swappiness denken Sie wahrscheinlich, dass 0 der richtige Weg ist: Seien Sie vorsichtig mit dieser Wahl. Die richtige Antwort haengt von vielen Dingen ab, einschliesslich Ihrer Anwendungen, der Nutzung und Kapazitaet des Systems. Nehmen Sie zum Beispiel an, Sie verwenden einen Wert von 0 und der Speicher ist fast voll. Wenn Sie versuchen, eine grosse Anwendung zu starten, wird es eine Verzoegerung geben, bis das System genug Speicher durch Swapping von Prozessen freigeben kann, bevor Sie Ihre Anwendung nutzen koennen. Nehmen Sie das andere Extrem von 100: Sie sollten jederzeit genuegend RAM haben, um grosse Prozesse zu starten, aber die Gesamtantwortrate Ihres Rechners wird einen Leistungseinbruch erleiden.

Ubuntu hat festgelegt, dass standardmaessig ein Wert von 60 fuer die meisten Benutzer ideal ist. Er ermoeglicht es, Speicher zum Starten neuer Anwendungen verfuegbar zu haben, ist aber nicht so aggressiv, dass er einen grossen Leistungseinbruch verursacht. Aber wie erwaehnt haengt der beste Wert fuer Ihren Rechner von der Nutzung ab, die Sie dem System geben. Zum Beispiel betreibe ich einen Server, der gelegentlich Prozesse startet, um eingehende Anfragen zu bedienen, aber deren Groesse ist relativ klein und meistens habe ich immer genuegend RAM, um alle benoetigten Dienste zu handhaben. In meinem Fall verwende ich gerne einen Swappiness-Wert von 10. Sie sollten ueber Ihre allgemeinen RAM-Nutzungsmuster nachdenken und ruhig experimentieren. Ich erwarte, dass Grenzwerte (0 und 100) zu extrem sind, aber Sie koennen sehen, was der Unterschied zwischen 25 und 75 zum Beispiel ist.

Wie konfiguriere ich die Swappiness?

Das ist ziemlich einfach. Es gibt eine Datei (/proc/sys/vm/swappiness), die waehrend des Betriebs verwendet wird und die aktuelle Swappiness anzeigt, unter der das System laeuft. Das Aendern dieses Wertes wuerde dazu fuehren, dass die Swappiness des Systems fuer die Dauer des Kernels geaendert wird (d.h. bis Sie neu starten / herunterfahren und wieder einschalten).

Wenn Sie den Wert sehen moechten, empfehle ich cat statt nano zu verwenden, um ein versehentliches Bearbeiten der Datei zu vermeiden:

$ cat /proc/sys/vm/swappiness
60

Sie werden wahrscheinlich den Standardwert von 60 sehen, es sei denn, er wurde bereits geaendert. Wie erwaehnt koennten Sie die Datei aendern, swapoff und wieder swapon ausfuehren, damit die Aenderung nur waehrend Ihrer aktuellen Sitzung wirksam wird. Wenn Sie den Wert ueber den sysctl-Befehl aendern (ich empfehle, die Datei /etc/sysctl.conf nicht direkt zu bearbeiten, um zu vermeiden, dass versehentlich etwas anderes kaputt geht). Die Aenderung wuerde erst nach einem Neustart des Rechners wirksam werden. Angenommen, Sie moechten eine Swappiness-Stufe von 15 verwenden:

$ sysctl vm.swappiness=15

Wenn Sie moechten, koennen Sie swapoff -a und swapon -a ausfuehren, um Ihren neuen Swappiness-Wert auf das System anzuwenden (anstatt neu starten zu muessen, koennte dies eine attraktive Option sein).

Vergessen Sie nicht, Ihre Speichernutzung mit free -m zu ueberpruefen, um die Swap-Groesse und -Nutzung zu sehen.

Welchen Swappiness-Wert empfehlen Sie?

Dies ist meine persoenliche Meinung und Sie sollten Ihre Swap-Nutzung und Leistung ueberwachen, um den Wert fein abzustimmen. Ich glaube, dies ist ein guter Ausgangspunkt, aber verwenden Sie Ihr eigenes Urteil, experimentieren Sie und entscheiden Sie, was fuer Sie am besten ist.

Empfohlene Swappiness: Allgemein verfuegbarer SpeicherRelative Groesse neuer ProzesseEmpfohlene Swappiness
VielKlein< 10
VielMittel10 < x < 20
VielGross15 < x < 30
MittelKlein10 < 15
MittelMittel15 < x < 25
MittelGross25 < x < 45
WenigKlein35 < x < 60
WenigMittel50 < x < 70
WenigGross65 < x < 90

Es wird alles relativ, aber Sie verstehen die allgemeine Idee: Je mehr Speicher Sie generell frei oder verfuegbar haben, desto niedriger kann die Swappiness sein, die Sie verwenden. Ausserdem gilt: Je groesser die neuen Prozesse sind, die Sie starten, desto hoeher muss die Swappiness sein, damit sie bei Bedarf richtig in den Speicher passen. Betrachten Sie folgendes Szenario: Sie haben einen Rechner mit 16 GB RAM und nutzen generell nur 2 GB. Sie haben nie mehr als 13 GB verwendet und erwarten das auch nicht. Selbst wenn neue Prozesse viel RAM verwenden, geht Ihnen nie wirklich der Speicher aus, sodass ein Wert von 10 oder darunter empfohlen wuerde (sogar 0).

Wenn Sie moechten, koennen Sie gerne ueber die Kommentare die Spezifikationen Ihres Systems und Speichernutzungsmuster angeben, und ich kann Ihnen helfen, einen Startwert zum Experimentieren auszuwaehlen!

(http://img.zemanta.com/zemified_h.png?x-id=5a719463-cced-4eb4-b803-0e78fba9e3bb)](http://www.zemanta.com/?px “Enhanced by Zemanta”)

Zusammenfassung

Sie haben erfolgreich gelernt, wie man die Swappiness in Ubuntu konfiguriert. Wenn Sie auf Probleme stossen, ueberpruefen Sie die Voraussetzungen und stellen Sie sicher, dass Ihre Ubuntu-Umgebung richtig konfiguriert ist.

Verwandte Artikel