Im Folgenden sollen verschiedene Möglichkeiten vorgestellt werden, mit denen man etwas mehr Leistung erhalten werden kann. Gerade bei älteren Systemen sollte so ein angenehmeres Arbeiten möglich sein.
Für einen performanten Desktopbetrieb sollte der passende Grafiktreiber installiert sein. Dieser gibt neben einer 3D-Beschleunigung auch einen sehr deutlichen Leistungsschub in der 2D-Leistung. Informationen dazu findet man unter Grafikkarten.
Bei älteren Rechnern kann die Wahl des falschen Desktop-Designs die Performance des Desktops erheblich beeinträchtigen. Die Darstellungsgeschwindigkeit und die Geschwindigkeit beim Scrollen wirken dann träge.
Die Standard-Designs von Ubuntu basieren auf der Murrine-Engine (Human-Murrine unter Gnome, MurrinaStormCloude unter Xfce), die zwar recht hübsch, aber leider nicht sehr performant ist. Für ältere Rechner ist es daher empfehlenswert ein anderes Design zu wählen, auch wenn es nicht so hübsch aussieht.
Wie man ein Design auswählt wird in GTK Design anpassen erklärt.
Empfehlenswert sind Designs wie "Crux", "Mist" oder eines der Xfce-Designs. Ein Vergleich kann im Linkabschnitt gefunden werden. Die Xfce-Designs sind in
gtk2-engines-xfce
enthalten [3], die übrigen in
gtk2-engines
Letzteres sollte schon installiert sein.
Der Gnome-Desktop wird ein wenig performanter, wenn man die Animationen abschaltet. Dazu öffnet man den Konfigurationseditor in einem Terminalfenster.
gconf-editor
Danach ruft man folgenden Schlüssel auf: /desktop/gnome/interface/enable_animations und entfernt dort den Haken. Ab sofort sind alle Animationen des Desktops, wie zum Beispiel die Animation beim Minimieren von Fenstern, deaktiviert.
Um beim Verschieben von Fenstern deren Inhalt nicht anzuzeigen kann man im gconf-editor unter /apps/metacity/general das Häkchen für reduced_resources setzen.
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 Desktop-CD. Zusätzlich bringt auch das Setzen der Option noatime deutliche Performancegewinne. 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.
Niemals e2fsck auf eine eingebundene Partition anwenden!
sudo e2fsck -fD /dev/sdXY # Niemals e2fsck auf eine eingebundene Partition anwenden!
Setzt abschließenden die eingestellten Optimierungen um.
Ext3 bietet 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 das gewartet wird bis die Metadaten im Journal abgelegt wurden.
Mit writeback lässt sich die Geschwindigkeit erhöhen. Allerdings mit dem Nachteil das die Konsistenz des Dateisystems, z.B. bei einem Stromausfall, gefärdet 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.
Normalerweise werden Zugriffszeiten in der Inodetabelle gespeichert. Für wen das nicht relevant ist, kann dies deaktivieren und so die Festplattenaktivität reduzieren. Es muss nur die Option "noatime" in der /etc/fstab an die passende Stelle gesetzt werden, z.B:
# /dev/sda6 UUID=523ed8b9-a9c7-4f73-9b36-6a3418dc4a81 /home ext3 oder ext4 noatime 0 2
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.
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. 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.
Dazu trägt man folgende Zeile in die /etc/fstab ein:
tmpfs /var/log tmpfs defaults 0 0
Diesen Schritt sollte man sich genau überlegen, da fehlende Logdateien die Analyse von Fehlern oder Angriffen auf das eigene System unmöglich machen!
Wenn man will, kann man die Anzahl der Textkonsolen verringern. Als Standard werden unter Ubuntu sechs Konsolen gestartet. Wer nur grafisch unter X11 arbeitet, kann die Anzahl ohne Probleme auf zwei oder sogar eine ändern.
Hierzu öffnet man die Datei /etc/inittab in einem Editor mit Root-Rechten [1]. Die Konsolen werden durch ein Voranstellen einer Raute deaktiviert:
1:2345:respawn:/sbin/getty 38400 tty1 2:23:respawn:/sbin/getty 38400 tty2 #3:23:respawn:/sbin/getty 38400 tty3 #4:23:respawn:/sbin/getty 38400 tty4 #5:23:respawn:/sbin/getty 38400 tty5 #6:23:respawn:/sbin/getty 38400 tty6
Dies geschieht aber erst nach einem Neustart des Systems oder sofort nach dem Ausführen des Kommandos
sudo init q
im Terminal [2].
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.
Seit Edgy wird zum Systemstart nicht mehr /etc/inittab verwendet sondern Upstart. Um Textkonsolen wegzulassen, genügt es, in der entsprechenden Startdatei mit dem Namen /etc/event.d/ttyX (wobei X für die Terminalnummer steht) die Zeile zum Starten des Terminals mit Hilfe eines Editors mit Root-Rechten [1] auszukommentieren und ggf. eine Zeile hinzuzufü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.
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 kann man getty auch durch fgetty ersetzen, was weitere Einsparungen bewirkt. Dafür muss lediglich das Paket
fgetty
nachinstalliert werden[3] und dann die oben genannten Dateien jeweils nach folgendem Muster angepasst werden:
respawn exec /sbin/getty 38400 tty3
wird zu
respawn exec /sbin/fgetty tty3
Wie aggressiv der Kernel ungenutzte Speicherbereiche vom Hauptspeicher auf die Swappartition 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.
Der Befehl
sudo sysctl -a | grep "vm.swappiness"
im Terminal [2] sollte folgende Ausgabe bringen:
vm.swappiness = 60
Der Wert der Variablen kann zwischen 0 und 100 liegen. Der Wert 0 bedeutet, dass der Kernel den Auslagerungsspeicher auf der Festplatte (swap) nur dann nutzt, wenn es nicht anders geht. Der Wert 100 bedeutet das genaue Gegenteil. Es wird so früh wie möglich ein unbenutzter Speicherbereich in den Swapspeicher geschoben.
Siehe dazu auch: http://kerneltrap.org/node/3000
. (Bei der Diskussion auf Kerneltrap gab es kaum zwei gleiche Meinungen. Es muss wohl jeder selbst herausfinden, was ihm am Besten gefällt.)
Um den Wert On-The-Fly zu ändern, gibt man folgendes Kommando ein:
sudo sysctl vm.swappiness=25
Um den Wert dauerhaft zu ändern, muss man einfach einen Eintrag in der Datei /etc/sysctl.conf erstellen (Editor mit Root-Rechten, [1]):
vm.swappiness=25
oder einen anderen Wert, je nach Geschmack.
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
eingetragen und der Rechner neu gestartet. Um zu kontrollieren, ob IPv6 aktiv ist, kann man folgenden Befehl nutzen:
ip a | grep inet6
Erfolgt keine Ausgabe, so ist IPv6 nicht aktiv. Jetzt fehlen noch die Browsereinstellungen. Diese sind in den jeweiligen Artikeln zu finden:
Auf Rechnern mit ausreichend Speicher können die beiden Programme [3]
readahead (Bootvorgang und Programmstart)
preload (univere, [4]) (Programmstart)
sehr nützlich sein.
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.
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 Repositories genügt also zum Betrieb. Einzig sollte dazu readahead für Programmstarts deaktiviert werden, indem unter /etc/readahead die Datei desktop ebenfalls zu desktop.orig umbenennt.
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:
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.
Alles, was nicht oft benötigt wird, sollte als Modul eingebunden werden.
Das schließt alle USB-Geräte im Normalfall 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.
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 einem 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
Folgende Anleitungen drehen sich nicht um die Leistungsfähigkeit, sondern um anderweitige Anpassungen des Systems.
Wie im Wiki unter Strom sparen beschrieben lässt sich durchaus einiges am Stromverbrauch eines Laptop bzw. PCs ändern.
Hinweise zum Optimieren der Lüftersteuerung finden sich unter Lüftersteuerung
Quelle zum IPv6-Abschnitt.
Blog zum Thema Desktop Performance mit weiteren Details.
Geschwindigkeitsvergleich zwischen verschiedenen GTK-Designs.
Defragmentierung ext3 Heise Open Artikel "Das Linux-Dateisystem Ext3 tunen"
getty vs fgetty Erklärung und Vergleich aus dem Debianforum
Quelle zum Preload/Readahead-Abschnitt (nicht frei zugänglich)
Diese Revision wurde am 27. Januar 2010 um 12:41 Uhr
von nox24 erstellt.
Dieser Seite wurden folgende Begriffe zugeordnet:
System Tuning Einstellungen
2004 – 2010 ubuntuusers.de • Einige Rechte vorbehalten