Benutzer-Werkzeuge

Webseiten-Werkzeuge


linux_arbeitsspeicher

Dies ist eine alte Version des Dokuments!


RAM-Nutzung

  • Linux benutzt freien RAM standardmäßig um
    • Daten die schon mal gelesen wurden zu cachen
      • das vermeidet das sie später noch mal von der langsameren Festplatte gelesen werden falls noch mal darauf zugegriffen wird
      • Block-Cache (Blöcke enthalten die eigentlichen Daten auf Dateisystemen)
    • Inodes und Verzeichnisinhalte zu cachen
      • das Beschleunigt das Durchsuchen und Auflisten von Verzeichnisinhalten
      • Inodes sind in der Regel verstreut auf der Festplatte, was das Auffinden der benötigten Informationen verlangsamt
      • Inode-Cache
    • Daten die auf Festplatte geschrieben werden müssen werden Zwischengespeichert
      • Anwendungen müssen nicht so lange warten bis die Daten wirklich geschrieben sind
      • Das Schreiben auf die Festplatte kann optimiert werden
        • aus vielen einzelnen verteilten Zugriffen kann ein mehr oder weniger sequentielles Schreiben werden → das reduziert das Suchen/Bewegungen des Schreiblesekopfes und dadurch kann das Schreiben schneller abgeschlossen werden
      • Write-Cache

Je nach Tool wird der Speicher den die Caches belegen mit in den belegten Speicher einberechnet (es sieht dann so aus als wäre gar kein/sehr wenig Speicher frei) oder als frei angezeigt (es sieht dann so aus als würde geswappt obwohl massenhaft RAM frei ist). Für ersteres ist top ein Beispiel, zweiteres wird vor allem bei Tools auf den Desktops so angezeigt.

Einstellungen

Swappiness

Grundsätzlich sind die Caches (siehe oben) gegenüber „normalen“ Speicherseiten (also solchen die durch Programme belegt werden nachrangig). Ist also nicht genügend freier RAM da werden die Caches reduziert. Je nach Einsatzszenario kann das zu drastischem Performance-Verlust führen, es ist also notwendig einen Mittelweg zu nehmen.

Die Einstellung definiert die Aggressivität mit der unbenutzte Speicherseiten in den Swap ausgelagert werden.
Der Sinn ist Speicher für die Caches frei zu schaufeln.
Je nach gewünschtem Verhalten (auf Desktoprechnern wird man eher vermeiden wollen das gerade nicht genutzte Seiten ausgelagert werden, auf Servern ist eventuell der Cache wichtiger) kann man Einstellen was bevorzugt werden soll, der Cache oder das Vermeiden von Auslagern von Seiten.

Auf folgenden Wegen kann die swapiness gesetzt werden:

Weg Auswirkung
sysctl vm.swappiness = <Wert>Sofort, bis Neustart von System
echo <Wert> > /proc/sys/vm/swappinessSofort, bis Neustart von System
Eintrag in /etc/sysctl.conf vm.swappiness=<Wert>Nach Neustart des Systems, Persistent



Werte:
Größere Werte bedeuten das bevorzugt wird das geswappt wird, statt den Cache zu reduzieren.
Mir ist nicht ganz klar ob beliebige Werte funktionieren/ob es gleitend ist.

Wert Bedeutung
60Standard-Einstellung
1Versuche so weit wie möglich Swapping zu vermeiden
100Versuche die Reduzierung von Cache so weit wie möglich zu vermeiden aka. swappe wenn möglich
0Scheint Kernel-Abhängig verschieden zu sein, kann u.a. dazu führen, dass der Swap gar nicht mehr genutzt wird.
Sollte vermieden werden (da die Bedeutung eventuell verschieden ist

Tools und Informationen

linux_arbeitsspeicher.1513726293.txt.gz · Zuletzt geändert: 2017/12/20 00:31 von root