Menü

openSUSE & Co. beschleunigen Linux-Tuning

Auch bei Linux gibt es zahlreiche Tuning-Möglichkeiten, die Standardnutzern meist verborgen bleiben. Mit den folgenden Tipps fällt es Ihnen leicht, die Leistung des Ihres Systems signifikant zu erhöhen.
Tuning © Michael Mielewcik

Von Haus aus sind fast alle Distributionen so konzipiert, einen möglichst viele Funktionen mitzubringen. Was gut für die Kompatibilität ist, bedeutet aber noch lange nicht, dass auch die Performance Ihres Systems davon profitiert. Dies zeigt sich etwa in unzähligen unnötig geladenen Diensten und Skripten, Standard-Partitionierungen oder einem meist aufgeblähten Linux-Kernel. Die folgenden Tipps helfen Ihnen, die Hard- und Software Ihres Systems optimal auszunutzen.

Arbeitsspeicher

Das RAM vermindert oftmals die Systemleistung. Linux kommt auch mit Arbeitsspeicher größer als 1 GByte zurecht, leider ist die entsprechende Unterstützung aber nicht standardmäßig im Linux-Kernel enthalten. Daher müssen Sie in einigen Fällen den Kernel manuell anpassen. Reicht der vorhandene Arbeitsspeicher nicht aus, so muss zusätzlicher Speicher in Form einer Swap-Partition auf der Festplatte bereitgestellt werden. Allerdings ist der Festplattenzugriff deutlich langsamer als der Zugriff auf den Arbeitsspeicher. Wollen Sie überprüfen, ob unter Ihrem Linux-System übermäßig stark auf die Swap-Partition zugegriffen wird, so können Sie die Verwendung der Swap-Partition mit dem Kommandozeilenbefehl

swapon -s

während der Laufzeit überwachen.

Wird der Festplatten-Arbeitsspeicher übermäßig stark vom System für die Arbeit genutzt, so vermindert dies die Systemperformance. Wollen Sie das Swapping optimieren, können Sie mit den Befehlen top und ps aux herausfinden, welche Applikation überhaupt dermaßen viel Arbeitsspeicher nutzt. Möchten Sie Ihren Swap-Speicher wirklich effektiv einsetzen, so können Sie zusätzlich zu einem weiteren Trick greifen: Legen Sie einfach mehrere Swap-Partitionen an. Für Linux ist das kein Problem, denn das Betriebssystem kommt auch mit mehreren Swap-Partitionen problemlos zurecht, indem es sie automatisch als gemeinsame logische Einheit verwendet.

Die Systemüberwachung zeigt Auslastung des Arbeitsspeichers und der Swap-Partition an. © Michael Mielewcik
Die Systemüberwachung zeigt Auslastung des Arbeitsspeichers und der Swap-Partition an.

Befinden sich die Swap-Bereiche auf verschiedenen realen Laufwerken, und besser noch, werden sie über einen eigenen Controller oder Controller-Port angesprochen, so können Sie auf diesem Weg einen echten Performance-Gewinn erzielen – auf Kosten eines höheren Stromverbrauchs allerdings. Unter Linux können Sie auch einstellen, wann der Swap-Speicher genutzt werden soll.

In der Praxis können Sie dies im laufenden Betrieb ändern, indem Sie in der Kommandozeile die Systemdatei /proc/sys/vm/swappiness bearbeiten. Standardmäßig ist dort der Wert 60 hinterlegt, doch mithilfe des Echobefehls echo 30 > /proc/sys/vm/swappiness können Sie den Wert leicht ändern. Letzteres muss jedoch nach jedem Systemstart erneut erfolgen. Möglich sind Prozentwerte zwischen 0 und 100. Je höher der gewählte Wert ist, desto eher wird Linux das Auslagern von inaktiven Speicherinhalten bevorzugen. Bei kleineren Werten bevorzugt das System das Verwerfen von gecacheten Speicherinhalten.

Festplatten-Tuning: Dateisystem

Die wichtigste Tuning-Maßnahme sollten Sie bereits bei der Einrichtung des eigenen Linux-Systems berücksichtigen: Im Idealfall besitzt Ihr PC mehr als eine Festplatte, auf welche Sie Ihre Linux-Partitionen möglichst geschickt verteilen sollten. Sind mehrere Festplatten vorhanden, so können über verschiedene IDE-Kanäle auch mehrere Lese- und Schreib-Operationen simultan durchgeführt werden.

Auf einem Standard-Linux-System kommt typischerweise das EXT3-Dateiystem zum Einsatz. Gegenüber dem etwas älteren EXT2-Vorgängerformat glänzt EXT3 dabei durch eine integrierte Journaling-Funktion, die eine verbesserte Crash-Wiederherstellungsfunktion bereitstellt. Trotz eines geringen Performance-Nachteils sollten Sie auf diesen Vorteil aber nicht verzichten. ReiserFS ist besonders für Partitionen geeignet, auf denen viele kleine Dateien erzeugt werden. JFS und XFS eignen sich dagegen besonders für echte 64-Bit-Systeme und Zugriffe auf extrem große Dateien.

Festplatten-Tuning: Partitionen verteilen

Wesentlich entscheidender für die Performance selbst ist die Verteilung der Systemverzeichnisse auf eigene Festplattenpartitionen und Laufwerke. Das Root-Verzeichnis / selbst sollten Sie für die Einrichtung eines Desktopsystems während der Installation möglichst auf eine schnelle Festplatte ablegen.

Ein gewachsenes System ist selten auf Performance hin optimiert. Irgendwann wird eine Neuinstallation notwendig. © Michael Mielewcik
Ein gewachsenes System ist selten auf Performance hin optimiert. Irgendwann wird eine Neuinstallation notwendig.

Sind in Ihrem System nur begrenzt schnelle Festplatten vorhanden, sollten Sie die Root-Partition selbst auf eine langsame Festplatte ablegen und die schnelle Festplatte für systemkritischere Verzeichnisse nutzen – dies gilt insbesondere für die Swap-Partition. Die zweite Festplatte sollte zudem idealerweise über einen eigenen IDE-Kanal angeschlossen sein. Zugriffe auf das Systemverzeichnis und auch auf den virtuellen Festplattenarbeitsspeicher können somit simultan erfolgen. Ist eine weitere SATA-Festplatte auf Ihrem System vorhanden, so sollten Sie die Swap-Partition unbedingt auf dieser einrichten. Die langsamste Festplatte und das CD-/DVD-ROM-Laufwerk sollten im Idealfall zusammen am sekundären IDE-Port angeschlossen werden.

Wählen Sie für Ihr System einen adäquaten Wert für die Größe der Swap-Partition - meist wird das Doppelte des Arbeitsspeichers empfohlen. Die Systemverzeichnisse /tmp und /usr sollten Sie auf jeweils eigenen Partitionen einrichten - insbesondere für das /tmp-Verzeichnis ist ein guter Datendurchsatz notwendig.

Festplatten-Tuning: Übertragungsmodi

Eine weitere Möglichkeit, die Festplatte zu beschleunigen, bietet das Tool hdparm. Das Programm dient dazu, die genauen Transfereinstellungen des IDE-Subsystems einzustellen. Standardmäßig sollte das bereits durch den Kernel und die Boot-Einstellungen erfolgen. In der Praxis ist das aber leider nicht immer der Fall, daher lohnt es sich fast immer, mit dem folgenden Befehl zu ermitteln, welche Einstellungen für Ihre Festplatte verwendet werden:

hdparm /dev/hda

(unter Einbeziehung der richtigen Gerätedatei der jeweiligen Festplatte, hier /dev/hda). In der jeweiligen Ausgabe sollten jeweils die Einträge

Festplatten-Übertragungsmodi

  • IO_support = 1 (32-bit)
  • unmaskirq = 1 (on)
  • using_dma = 1 (on)

erscheinen. Sowohl der schnelle 32-Bit-Datentransfer, als auch die DMA-Unterstützung funktionieren bei einer solchen Ausgabe korrekt. Ist die DMA-Unterstützung wider Erwarten nicht aktiviert, können Sie versuchen, den Chipsatz-Treiber explizit in den Kernel fest einzukompilieren. Den Datendurchsatz der Festplatte können Sie einfach durch Eingabe des Kommandozeilenbefehls

hdparm -t /dev/hda

testen. Bei deaktiviertem DMA liegt der Datendurchsatz bei etwa 3-5 MByte/s. Ist er eingeschaltet, so können locker 50-60 MByte/s oder noch höhere Werte erzielt werden. Darüber hinaus kann der 32-Bit-Übertragungsmodus noch einmal einen kleinen Leistungsschub bringen. Den DMA- und 32-Bit-Übertragungsmodus können Sie mit dem Befehl

hdparm -d1 -c1 /dev/hda

für Testzwecke auch manuell erzwingen. Die Option -d1 steht dabei für das Anschalten des DMA-Modus, während der Paramter -c1 den 32-Bit Übertragungsmodus einschaltet. Genauso leicht können die Übertragungsmodi auch wieder ausgeschaltet werden:

hdparm -d0 -c0 /dev/hda

Den 32-Bit-Übertragungsmodus mit Write-Sync (-c3) sollten Sie nur in absoluten Ausnahmefällen bei Kompatibilitätsproblemen mit Ihrem Controller einsetzen, da hierdurch die Performance enorm verringert wird. Mit SATA-Platten funktionieren übrigens die Funktionen für DMA- und 32-Bit-Unterstützung nicht – DMA ist standardmäßig aktiviert. Das liegt daran, dass SATA-Festplatten eigene Kommandos besitzen, welche eher mit denen von SCSI-Festplatten übereinstimmen. Prinzipiell können Sie die Datentransferroutinen auch im Detail über den Befehl:

hdparm -X## /dev/hda

konfigurieren, wobei Sie die Platzhalter ## durch den jeweils passenden Wert ersetzen:

Festplatten-Übertragungsmodi

  • PIO 0,1,2,3,4: 08, 09, 10, 11, 12
  • SDMA 0,1,2 (Single-Word-DMA): 16,17,18
  • MDMA 0,1,2 (Multi-Word-DMA): 32, 33, 34
  • UDMA 0,1,2,3,4,5,6: 64,65,66,67,68,69,70

Lesen Sie auf der nächsten Seite, wie Sie mit dem cleveren Abschalten von Systemdiensten und einem selbst kompilierten Kernel mehr aus Ihrem Linux-Rechner herausholen.

Linux-Tuning: Nvclock

Linux-Tuning: Nvclock

Die Taktrate moderner Grafikkarten können Sie unter Linux komfortabel manuell anpassen.

weiterlesen auf Seite 2

 
Whitepaper Lexware-Logo
Mindestlohn Das müssen Sie als Arbeitgeber prüfen.
Mindestlohn und Praktikanten Antworten zu häufig gestellten Fragen.
x