Festplattenleistung

Festplatten für Linux im Leistungs-Check

30.04.2015 von David Wolski
Mechanische Festplatten und auch SSDs sind stets der Flaschenhals im I/O-System: Dateisystem und Swap-Verhalten sind Faktoren mit merklichen Auswirkungen auf die Gesamtleistung des Systems.

Linux-Distributionen sind heute darauf getrimmt, Desktop- wie Server-Aufgaben zu meistern. Dazu soll das System nicht nur auf neuer, leistungsfähiger Hardware und SSD gut laufen, sondern auch mit schwächeren Rechnern mit mechanischen Festplatten zurechtkommen. Je nach angepeiltem Einsatzzweck eines Linux-Systems und der erwarteten Last kann die Wahl des passenden Dateisystems und ein abgestimmtes Auslagerungsverhalten die Leistung deutlich verbessern.

Das Dateisystem passend zur Aufgabe wählen

Dateisystem-Angebot beim Ubuntu-Installer, den auch Linux-Mint verwendet. Bei einer manuellen Partitionierung können Sie für jede Partition das Dateisystem selbst festlegen.

Unter Linux bieten sich neben dem heute verbreiteten Dateisystem Ext4 weitere Dateisysteme an. Zwar hat sich Ext4 seit seiner Einführung vor sechs Jahren als Quasi-Standard durchgesetzt, aber auch XFS, das neue BTRFS und das ältere Ext3 stehen bei einer Linux-Installation zur Auswahl.

XFS: Das 64-Bit-Dateisystem mit Journal-Funktion geht auf die Arbeit von Silicon Graphics in den 90er-Jahren zurück und wird bis heute beständig weiterentwickelt. Das Dateisystem ist für Server-Aufgaben geschaffen und glänzt, wenn es um große Dateien von mehreren Hundert MB geht, die auf einer großen Partition liegen. Es beansprucht die CPU etwa doppelt so stark wie Ext3/4, ist aber bei Zugriffen durch mehrere Prozesse schneller.

Ext4: Das noch recht junge Allround-Dateisystem liefert auch auf Systemen mit schwacher CPU eine gute Leistung. Es ist für gleichzeitige Zugriffe nicht ideal, arbeitet aber auf Partitionen mit vielen kleineren Dateien schneller als XFS. Mit seinem Journal schließt Ext4 Dateisystem-Checks schneller ab als Ext3, und XFS und ist damit die beste Wahl für Desktop-PC und Notebook.

Ext3: Der Vorgänger von Ext4 stattete die Ext-Dateisysteme erstmals mit Journaling aus, das Datenträger-Checks deutlich beschleunigt. Das Journal geht bei Ext im Betrieb aber noch vergleichsweise stark auf die Leistung. Zudem arbeitet es Zugriffe auf sehr große Dateien langsamer ab als der Nachfolger. Von den Fällen abgesehen, in welchen um eine gewünschte Abwärtskompatibilität mit sehr alten Linux-Kernels geht, gibt es heute keinen Grund mehr, Ext3 statt Ext4 einzusetzen.

BTRFS: Das Dateisystem ist auf dem Weg aus der Entwicklungsphase und gilt erst seit November 2014 mit Linux Kernel 3.17 als stabil. Die Performance kann mit Ext4 und XFS noch nicht mithalten, aber BTRFS punktet mit spannenden Funktionen wie Snapshots, integriertem Volumen-Management und automatischen Checksummen.

Swappiness: Mehr oder weniger auslagern

Auslagerungsverhalten: Der Parameter „vm. swappiness“ in der Datei „/etc/sysctl.conf“ kann den Standardwert „60“ abändern. So ist etwa ein Wert von „80“ für eine Swap-Partition auf SSD geeignet.

Auch wenn der Rechner über mehr als genug RAM verfügt, kann man fest stellen, dass der Linux-Kerbel nach längerer Laufzeit Arbeitsspeicher in den vergleichsweise langsamen Swap-Bereich auf dem Datenträger auslagert. Die Swap-Nutzung lässt sich mit dem Kommandozeilen-Tool htop oder auch dem Befehl

free -m

kontrollieren. Das Verhalten des Kernels ist kein Nachteil, denn er lagert Speicher auch aus, um länger ungenutzte Speicherseiten aus dem wertvollen RAM zur eventuellen späteren Nutzung auf die langsamere Festplatte zu verlagern. Das frei gewordene RAM steht dann wieder dem System-Cache zur Verfügung. Wie aktiv der Kernel dabei von Swap Gebrauch macht, steuert der Parameter „Swappiness“, dessen Wert Sie sich mit

cat /proc/sys/vm/swappiness

anzeigen. Der Wert kann zwischen 10 und 100 festgelegt sein. Höher bedeutet, unbenutzter Speicher wird schneller ausgelagert. Linux-Distributionen arbeiten meist mit einem Standardwert von 60. Dies ist eine gute Balance für verbreitete Systeme, egal ob Server oder Desktop, mit mechanischer Festplatte. Der Wert ist aber nicht für alle Szenarien ideal, und es lohnt sich in vielen Fällen eine Anpassung der Swappiness nach folgenden Faustregeln:

Viel RAM und langsame Festplatte: Bei großen Reserven beim Arbeitsspeicher, etwa mit acht GB aufwärts, ist die Wahrscheinlichkeit gering, dass dem Kernel jemals der System-Cache ausgeht. Es empfiehlt sich ein geringer Wert für den Parameter Swappiness von „10“ und weniger.

Ausreichend RAM und schnelle SSD: In dieser Konstellation ist es von Vorteil, den Swappiness-Wert auf 80 bis 90 zu erhöhen, da die Latenz beim Wiedereinlesen von Speicherseiten im Swap auf einer SSD weniger stark ins Gewicht fällt. Der Kernel soll hier den System-Cache im RAM priorisieren.

Wenig RAM auf Desktop-PCs: Dies ist ein Sonderfall. Zwar ist der Standardwert von 60 hier ein gutes Gleichgewicht zwischen System-Cache für Dateizugriffe und Speicherseiten von Anwendungen. Wenn sich aber deutliche Verzögerungen in der Reaktion beim Umschalten zwischen Anwendungen bemerkbar machen, dann lagert der Kernel Anwendungs-Speicherseiten zu aggressiv aus. Hier ist dann eine schrittweise Reduzierung der Swappiness angebracht, etwa auf 30, 20, 10 oder gar 1. Dies hat den Preis, dass der System-Cache für Dateizugriffe kleiner wird und Dateioperationen länger dauern, während mehrere geöffnete Anwendungen aber reaktionsfreudiger bleiben. Den angepassten Wert der Swappiness schreiben Sie in die Konfigurationsdatei „/etc/sysctl.conf“, die Sie als root oder über sudo in einem Texteditor öffnen. Legen Sie am Ende der Datei die Zeile

vm.swappiness=[Wert]

an, falls noch nicht vorhanden. Der Platzhalter „[Wert]“ steht für den gewünschten Swappiness-Wert. Die Einstellung gilt ab dem nächsten Neustart.

Fragmentierung ist unter Linux kein Problem

Wer von Windows auf Linux umgestiegen ist, wird sich noch an das Ritual der Defragmentierung erinnern: Es hat für viele Windows-Nutzer den Charakter einer zeremoniellen Entspannungsübung. Unter Linux-Dateisystemen ist die Dateifragmentierung ein weit geringeres Problem als bei FAT32 und NTFS – egal welche physikalischen Eigenschaften ein Datenträger hat. Die unter Linux gebräuchlichen Dateisysteme Ext3/4, XFS und das neue BTRFS nutzen Mechanismen, um die Dateifragmentierung gering zu halten: So schreibt Ext3/4 Dateien nicht einfach in den nächsten freien Block, sondern arbeitet mit größeren zusammenhängenden Blockgruppen (Extends), die es einer Datei erlauben, in mehreren getrennten Schreibvorgängen ohne Fragmentierung anzuwachsen.

XFS nutzt Extends schon länger und zudem eine verzögerte Zuweisung von Blöcken bei Schreibvorgängen, die erst erfolgt, wenn Daten aus dem Arbeitsspeicher auf den Datenträger geschrieben werden. BTFS ist hingegen anfälliger für die Fragmentierung und begegnet dem Problem mit einer automatischen Defragmentierung, die sich derzeit noch in der Erprobung befindet.

(PC-Welt/ad)