ubuntuusers.de

Du betrachtest eine alte Revision dieser Wikiseite.

Tuning

Zum Verständnis dieses Artikels sind folgende Seiten hilfreich:

Im Folgenden werden verschiedene Möglichkeiten vorgestellt, mit denen man die Systemleistung beeinflussen kann. Gerade bei älteren Systemen kann so ein angenehmeres Arbeiten möglich sein. Allerdings sollte man beachten, dass die genannten Tipps zuerst geprüft werden müssen, ob sie für den eigenen Anwendungsfall relevant sind.

Optimaler Grafikkartentreiber

Für einen performanten Desktop-Betrieb sollte der passende Grafiktreiber installiert sein. Dieser gibt neben einer 3D-Beschleunigung auch einen sehr deutlichen Leistungsschub in der 2D-Leistung. In der Regel betrifft dieser Punkt aber nur Rechner mit einer AMD- oder Nvidia-Grafikkarte. Informationen dazu findet man unter Grafikkarten/AMD bzw. Grafikkarten/Nvidia.

Festplatte

I/O-Scheduler optimieren

Ausführliche Informationen und weitere Details sind im Artikel SSD/Scheduler zu finden. Insbesondere für diejenigen interessant, die keine SSD, sondern eine klassische Festplatte besitzen.

Ext3 bzw. Ext4-Partitionen optimieren

Das Dateisystem ext3 bzw. ext4 bietet viele Einstellmöglichkeiten, die mit dem Befehl tune2fs gesetzt werden. Die effektive Umsetzung erfordert den Einsatz von "e2fsck", das auf gar keinen Fall auf eine eingebundene Partition angewendet werden sollte. Es empfiehlt sich der Einsatz einer Live-CD. Um die Änderungen durchzuführen, müssen "tune2fs" und "e2fsck" mit Root-Rechten ausgeführt werden.

sudo tune2fs -O dir_index /dev/sdXY 

Mit diesem Befehl wird die automatische Indizierung von Ordnerinhalten aktiviert.

  • Vorteil: schnellerer Dateizugriff

  • Nachteil: langsameres Kopieren und Löschen

sudo tune2fs -m 1 /dev/sdxY 

ext3 bzw. ext4 reserviert Speicherplatz für root, damit auch bei einer vollen Rootpartition gebootet werden kann. Mit diesem Befehl wird die Reservierung von 5% auf 1% gesenkt, was bei größeren Partitionen ausreichen sollte. Ein Nachteil ist aber, dass der Fragmentierungsgrad dadurch steigt, weil weniger zusammenhängende Blöcke frei sind, wenn die Partition voll wird. Siehe auch Defragmentierung.

Achtung!

Niemals e2fsck auf eine eingebundene Partition anwenden!

sudo e2fsck -fD /dev/sdXY        # Niemals e2fsck auf eine eingebundene Partition anwenden!  

Setzt abschließend die eingestellten Optimierungen um.

Journal-Modus ändern

Ext3/4 bieten von Haus aus mehrere Modi an, mit denen das Journal arbeitet:

  • 'Journal' - Langsamster und sicherster Modus. Nicht nur die Metadaten sondern auch die Nutzdaten werden zunächst in das Journal und dann erst auf die Festplatte geschrieben.

  • 'Ordered' - Guter Kompromiss aus Sicherheit und Geschwindigkeit (Standard). Die Nutzdaten werden auf die Festplatte geschrieben, sobald die Metadaten im Journal abgelegt wurden.

  • 'Writeback' - Schnell, dafür relativ unsicher. Die Nutzdaten werden sofort auf die Festplatte geschrieben, ohne dass gewartet wird, bis die Metadaten im Journal abgelegt wurden.

Mit writeback lässt sich die Geschwindigkeit erhöhen, allerdings mit dem Nachteil, dass die Konsistenz des Dateisystems, z.B. bei einem Stromausfall, gefährdet ist. Dessen sollte man sich bewusst sein!

So stellt man den Journalmodus um:

sudo tune2fs -o journal_data_writeback /dev/sdXY 

Optional setzt man journal_data_ordered oder journal_data, um die anderen Journalingstufen einzustellen. Die Änderung tritt nach einem Neustart in Kraft.

Aktivität reduzieren

⚓︎

Bei einer ext3 oder ext4 Partition

Hinweis:

In aktuellen Ubuntu-Versionen ist diese Option bereits gesetzt, so dass Änderungen in der Datei /etc/fstab überflüssig sind.

Normalerweise werden Zugriffszeiten in der Inode-Tabelle gespeichert. Wenn das nicht relevant ist, kann dies deaktiviert und so die Festplattenaktivität reduziert werden. Es muss nur die Option "relatime" oder "noatime" in der /etc/fstab an die passende Stelle gesetzt werden, z.B.:

# /dev/sda6
UUID=523ed8b9-a9c7-4f73-9b36-6a3418dc4a81   /home   EXT   relatime   0   2

Statt EXT entweder ext3 oder ext4 in der fstab setzen, je nachdem welches Dateisystem verwendet wird.

In den Arbeitsspeicher schreiben

Anstatt die temporären Dateien und die Logdateien auf die Festplatte zu schreiben, kann man sie auch direkt in den RAM schreiben. Jedoch kann das auch weniger sinnvoll sein, wenn nur eine geringe Menge Arbeitsspeicher vorhanden ist.

Temporäre Dateien

Man kann temporäre Dateien in den RAM anstatt auf die Festplatte schreiben lassen, indem man die folgenden beiden Zeilen in die /etc/fstab einträgt [1]:

tmpfs   /tmp   tmpfs   defaults   0   0

Beachten muss man allerdings, dass manchmal /tmp stark befüllt wird, z.B. wenn eine .iso dort zwischengelagert wird. In solchen Fällen kann die Auslagerung von /tmp in den RAM benötigten Speicher blockieren, was in Swapping und größerer Festplattenaktivität endet. Möchte man die Größe des /tmp-Ordners Beispielsweise auf 10 GiB ändern, ersetzt man defaults durch defaults,size=10G. Das Verzeichnis /var/tmp sollte generell nicht auf diese Weise ausgelagert werden, da hier auch Dateien abgelegt werden, die einen Neustart überleben sollen oder sogar müssen.

Logdateien

Achtung!

Diesen Schritt sollte man sich genau überlegen, da fehlende Logdateien die Analyse von Fehlern oder Angriffen auf das eigene System unmöglich machen! Des Weiteren gibt es Programme, die bei der Installation eine Log-Verzeichnis und Datei anlegen und beim erneuten Starten diese an dieser Stelle erwarten. Wenn diese Dateien im RAM angelegt sind, sind sie nach einem Neustart verschwunden. Damit diese Programme laufen, muss man im Start-up-Skript entsprechende Verzeichnisse und Dateien anlegen.

Dazu trägt man folgende Zeile in die /etc/fstab ein:

tmpfs   /var/log   tmpfs   defaults   0   0

Gerade beim Tuning ist das Programm BootChart sinnvoll. Wird das Verzeichnis /var/log als RAM-Disk betrieben, so wird kein Chart erstellt. Abhilfe schafft ein weiterer Eintrag in die /etc/fstab nach dem obigen:

tmpfs   /var/log/bootchart   tmpfs   nodev,nosuid   0   0

Arbeitsspeichernutzung

Swappiness einstellen

Wie aggressiv der Kernel ungenutzte Speicherbereiche vom Hauptspeicher auf die Swap-Partition schiebt, kann man per sysctl einstellen. Durch eine Verringerung kann bei genügend Arbeitsspeicher eventuell die gefühlte Performance, also die Reaktionsfähigkeit im Desktopbetrieb, erhöht werden. Weitere Details sind im Artikel Swap (Abschnitt „Swapnutzung-einstellen“) zu finden.

zRam

Mittels zRam kann man zusätzlichen virtuellen Arbeitsspeicher (RAM) anlegen. Ideal für Rechner mit 512 MiB bis 2 GiB RAM. Bei mehr Speicher bringt diese Technik keinen praktischen Nutzen mehr.

Abschalten von Textkonsolen

Zum Systemstart wird bei Ubuntu bis einschließlich 14.10 nicht /etc/inittab verwendet, sondern Upstart. Um Textkonsolen wegzulassen, genügt es, die entsprechende Startdatei mit dem Namen /etc/init/ttyX (wobei X für die Terminalnummer steht) anzupassen. Die Zeile zum Starten des Terminals muss man mit Hilfe eines Editors mit Root-Rechten [1] auskommentieren und ggf. eine Zeile hinzufügen:

#respawn /sbin/getty 38400 tty3
exec echo "Terminal X abgeschaltet"

Nach dem nächsten Systemstart steht dieses Terminal dann nicht mehr zur Verfügung.

Achtung!

Man sollte immer eine Konsole übrig lassen, da man sonst in Notfällen nur sehr schwer ins System reinkommt, falls der XServer aus irgendwelchen Gründen nicht mehr startet.

Außerdem könnte man getty auch durch fgetty (fgetty, universe ) ersetzen, was weitere Einsparungen bewirken würde. Allerdings ist das Programm aus den Quellen für alle unterstützten Ubuntu-Versionen bis einschließlich Ubuntu 14.04 defekt und der Einsatz praktisch nicht möglich.

Systemgrundlagen

IPv6 deaktivieren

Hinweis:

IPv6 gewinnt zunehmend an Bedeutung. Das Protokoll sollte nur deaktiviert werden, wenn es klare Indizien gibt, dass es Probleme verursacht.

IPv6 wird in den meisten Fällen (noch) nicht benötigt und kann manchmal dazu führen, dass das System langsamer reagiert. Deswegen kann man es bei Bedarf systemweit deaktivieren. Dazu wird in die Datei /etc/sysctl.conf mit Root-Rechten folgende Zeile:

net.ipv6.conf.all.disable_ipv6=1  
net.ipv6.conf.default.disable_ipv6=1  
net.ipv6.conf.lo.disable_ipv6=1

eingetragen und der Rechner neu gestartet. Alternativ kann man auch eine Bootoption via GRUB 2 nutzen, in dem man die Datei /etc/default/grub bearbeitet:

GRUB_CMDLINE_LINUX_DEFAULT="ipv6.disable=1"

Anschließend noch Grub neu schreiben:

sudo update-grub

Um zu kontrollieren, ob IPv6 aktiv ist, kann man folgenden Befehl nutzen:

ip a | grep inet6 

Erfolgt keine Ausgabe, so ist IPv6 nicht aktiv. Das Abschalten von IPv6 kann das Anlegen von X-Displays bei SSH-Verbindungen verhindern.

Jetzt fehlen noch die Browsereinstellungen. Diese sind in den jeweiligen Artikeln zu finden:

Statische IP-Adressen vergeben

Dieses brachte bei stationären Rechnern mit LAN-Anbindung und NFS-Home-Verzeichnissen bis fast 10 Sekunden.

Siehe hierzu: interfaces → Statische IP-Konfiguration

Programmstart und Bootvorgang beschleunigen

Vorausladen

Auf Rechnern mit ausreichend Speicher können die beiden Programme [3]:

  • ureadahead ab 10.04 (Bootvorgang und Programmstart)

  • preload (universe) (Programmstart)

sehr nützlich sein.

Readahead

Readahead ist in den neueren Ubuntu-Varianten vorinstalliert, allerdings nur mit Standardwerten ausgerüstet. Unter /etc/readahead finden sich zwei Konfigurationsdateien, die das Vorauslesen bestimmter Programmkomponenten steuern. Um dies auf den aktuellen Rechner zu optimieren, sollte man die Datei boot umbenennen (in z.B. boot.orig) und den Bootvorgang von readahead untersuchen lassen. Dazu im Grub-Menü die zu bootende Konfiguration auswählen, E drücken, den Kernel auswählen, E drücken, hinter dem Kernel 'profile' einfügen und mit B den Bootvorgang starten. Danach wird eine neue boot.config geschrieben, die auf den Bootvorgang dieser Konfiguration optimiert ist.

ureadahead

Zu UReadahead siehe ureadahead 🇩🇪 ureadahead löst in Ubuntu readahead ab (Funktionsweise).

Preload

Preload kann noch etwas mehr. Preload überwacht, welche Programme laufen und protokolliert so das Nutzerverhalten mit. Für Programme, die häufig benutzt werden, legt es wie readahead Komponenten im Speicher ab, sodass der Startvorgang etwa 60% schneller läuft als ohne preload oder mit Standard-readahead. Preload macht alles automatisch, installieren aus den Paketquellen und aktivieren im Boot-Up-Manager genügt also zum Betrieb.

Namensauflösung

Sollten generell Programme langsam starten, hilft eventuell eine Ergänzung in der /etc/hosts [1]. Aus

127.0.0.1 localhost
127.0.1.1 Rechnername

wird

127.0.0.1 localhost Rechnername
127.0.1.1 Rechnername

Kernel durch Selbstkompilieren tunen

Achtung!

Das Selbstkompilieren eines Kernels ist nicht ganz einfach und sollte von Anfängern zunächst vermieden werden!

Eine Anleitung, wie man den Kernel selbst kompiliert, gibt es an anderer Stelle im Wiki. Es wird an dieser Stelle keine explizite Anleitung gegeben, was man einkompilieren soll, sondern nur eine Liste von Empfehlungen, was man für den Aspekt Performance am Besten machen soll:

  1. Alle Module und Optionen, die man nicht unbedingt benötigt, kann man abwählen. Wer z.B. nur das ext3 Dateisystem nutzt, kann normalerweise auf das Modul ReiserFS komplett verzichten. Manchmal lassen sich Module nicht komplett abwählen. Dies ist z.B. bei den Fibre-Channel-Treibern der Fall. Man muss hier zuerst alle SCSI-Treiber abwählen, um die Fibre-Channel-Treiber dann auch abwählen zu können. Das wiederum sollte man gut überdenken, da ohne SCSI-Module weder SATA oder IDE, noch USB funktionieren.

  2. Alles, was nicht oft benötigt wird, sollte als Modul eingebunden werden.

    • Das schließt im Normalfall alle USB-Geräte ein. Wer allerdings eine USB-Tastatur und/oder -Maus besitzt, sollte den Treiber für das USB-Subsystem, den Treiber für seinen USB-Chipsatz und die Treiber für die HID-Geräte fest einbinden. Das erspart Ärger in Bezug auf X11. Besitzer von beidem können zudem alle Treiber, die mit dem PS/2-Anschluss zu tun haben, weglassen.

  3. Das Dateisystem für die Root-Partition sollte man fest in den Kernel einbinden. Alle anderen Dateisysteme, die man sonst noch benötigt, können als Modul eingebunden werden. Das erspart das Erstellen einer "Initial Ramdisk". Diese Option kann man dann abwählen.

Ein so "getunter" Kernel benötigt weniger Platz und hat zudem den Vorteil, dass Hotplug viel weniger Zeit zum Starten braucht.

Nebenaspekte

Folgende Anleitungen drehen sich nicht um die Leistungsfähigkeit, sondern um anderweitige Anpassungen des Systems.

Strom sparen

Wie im Artikel Strom sparen beschrieben, lässt sich durchaus einiges am Stromverbrauch eines Laptop bzw. PCs ändern.

Lüftersteuerung optimieren

Hinweise zum Optimieren der Lüftersteuerung finden sich im gleichnamigen Artikel Lüftersteuerung.

Diese Revision wurde am 11. Juni 2016 07:30 von Hans9876543210 erstellt.
Die folgenden Schlagworte wurden dem Artikel zugewiesen: Einstellungen, System, Tuning