{{{#!vorlage Wissen [:Editor: Einen Editor öffnen] [:Terminal: Ein Terminal öffnen] [:Pakete_installieren: Installation von Paketen] }}} [[Inhaltsverzeichnis(2)]] 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 = == Ext3 bzw. Ext4-Partitionen optimieren == Die [:Dateisystem:Dateisysteme] ext3 bzw. ext4 bieten viele Einstellmöglichkeiten, die mit dem Befehl [:tune2fs:] gesetzt werden. Die effektive Umsetzung erfordert den Einsatz von "`e2fsck`", das auf keinen Fall auf eine eingebundene Partition angewendet werden darf. Es empfiehlt sich der Einsatz einer Live-CD. Um die Änderungen durchzuführen, müssen "`tune2fs`" und "`e2fsck`" mit [:sudo:Root-Rechten] ausgeführt werden. {{{#!vorlage Befehl 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 {{{#!vorlage Befehl sudo tune2fs -m 1 /dev/sdxY }}} ext3 bzw. ext4 reservieren 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 jedoch, dass der Fragmentierungsgrad dadurch steigt, da weniger zusammenhängende Blöcke frei sind, wenn die Partition voll wird. Siehe auch [:Defragmentierung:]. {{{#!vorlage Warnung Niemals e2fsck auf eine eingebundene Partition anwenden! }}} {{{#!vorlage Befehl 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 worden sind. * 'Writeback' - Schnell, dafür relativ unsicher. Die Nutzdaten werden sofort auf die Festplatte geschrieben, ohne dass gewartet wird, bis die Metadaten im Journal abgelegt worden sind. 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. Den Journalmodus stellt man wie folgt um: {{{#!vorlage Befehl sudo tune2fs -o journal_data_writeback /dev/sdXY }}} Optional setzt man ''journal_data_ordered'' oder ''journal_data'', um die anderen Journaling-Stufen einzustellen. Die Änderung tritt nach einem Neustart in Kraft. == Aktivität reduzieren == [[Anker(noatime)]] === Bei einer ext3 oder ext4 Partition === {{{#!vorlage Hinweis In aktuellen Ubuntu-Versionen ist diese Option bereits gesetzt, so dass Änderungen in der Datei [:fstab:/etc/fstab] überflüssig sind. }}} Normalerweise werden Zugriffszeiten in der Inode-Tabelle gespeichert. Ist das nicht relevant, kann dies deaktiviert und so die Festplattenaktivität reduziert werden. Dafür muss 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` ist entweder `ext3` oder `ext4` in der fstab zu setzen, je nachdem welches [:Dateisystem:] verwendet wird. === In den Arbeitsspeicher schreiben === Verfügt ein System über ausreichend Arbeitsspeicher, kann es von Nutzen sein, weniger wichtige Dateien dort anzusiedeln. Paradebeispiel sind temporäre Dateien, die nicht über den Neustart des Rechners hinaus benötigt werden. Insbesondere wenn noch eine Festplatte statt einer [:SSD:] zum Einsatz kommt, bedeutet dies nicht nur Zeitgewinn, sondern auch weniger Verschleiß für selbige. ==== Temporäre Dateien ==== Vom Init-System [:systemd:] wird das Verzeichnis '''/tmp''' standardmäßig im Arbeitsspeicher angelegt. Unter Ubuntu (sowie der Mutter-Distribution [wikipedia:Debian:]) wurde dieses Verhalten jedoch deaktiviert. Dies lässt sich mit folgenden Befehlen rückgängig machen: {{{#!vorlage Befehl sudo cp -v /usr/share/systemd/tmp.mount /etc/systemd/system/ sudo systemctl enable tmp.mount }}} Möchte man mehr Kontrolle haben, z.B. weil noch weitere Dinge über '''/tmp''' in den Arbeitsspeicher geleitet werden sollen (siehe auch [:RAM-Disk_erstellen:]), empfiehlt sich der Weg über die [:fstab:]: {{{ tmpfs /tmp tmpfs defaults 0 0 }}} Hiermit wird bis zur Hälfte des verfügbaren Arbeitspeichers verwendet. Reicht dies nicht, kann auch eine Größe angegeben werden z.B. für 10 Gigabyte: '''defaults,size=10G'''. Übertreibt man es, und löst ein [:Swap:swappen] des Systems aus, sind jedoch alle Geschwindigkeitsgewinne dahin; daher sollte Datenmenge und eingestellte [:Swap/#Swapnutzung-einstellen:Swappiness] bedacht werden. Für einen Zugewinn an Sicherheit, könnten statt '''defaults''' restriktivere Optionen gesetzt werden wie '''rw,nodev,nosuid,noexec''' (siehe [:mount/#Optionen:mount]). Das Verzeichnis '''/var/tmp''' sollte nie in den Arbeitsspeicher ausgelagert werden, da hier auch Dateien abgelegt werden, die einen Neustart überleben sollen oder sogar müssen. ==== Logdateien ==== {{{#!vorlage Warnung 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 ein Log-Verzeichnis und eine Datei anlegen und beim erneuten Starten diese an dieser Stelle erwarten. Wenn diese Dateien im RAM angelegt sind, sind sie nach einem Neustart nicht mehr existent. 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 }}} = 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#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 Arbeitsspeicher bringt diese Technik für die typische Desktop-Nutzung in der Regel keinen großen Nutzen mehr. = Systemgrundlagen = == IPv6 deaktivieren == {{{#!vorlage 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"}}} Nach jeder Änderung in Grub muß dies aktualisiert werden: {{{sudo update-grub}}} Um zu kontrollieren, ob IPv6 aktiv ist, kann man folgenden Befehl nutzen: {{{#!vorlage Befehl 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 Browser-Einstellungen. Diese sind in den jeweiligen Artikeln zu finden: * [:Firefox/Tipps#DNS-Aufloesung-ueber-IPv6-abschalten:Firefox] * [:Konqueror#Webseiten-laden-sehr-langsam:] == 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''' seit 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, [[Vorlage(Tasten, e)]] drücken, den Kernel auswählen, [[Vorlage(Tasten, e)]] drücken, hinter dem Kernel 'profile' einfügen und mit [[Vorlage(Tasten, b)]] den Bootvorgang starten. Danach wird eine neue '''boot.config''' geschrieben, die auf den Bootvorgang dieser Konfiguration optimiert ist. ====ureadahead==== Zu '''UReadahead''' siehe [https://web.archive.org/web/20160324054132/https://eduard-dopler.de/245/mit-ureadahead-programmstart-beschleunigen/ ureadahead (web-archiv)] {de} 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 konfiguriert automatisch, Installieren aus den Paketquellen und Aktivieren im Boot-Up-Manager genügen daher zum Betrieb. ==== Watchdog abschalten ==== Desktop-Benutzer benötigen meist keinen [wikipedia:Watchdog:] da ein Absturz schnell auffällt. Mit der [:Bootoptionen/#Dauerhafte-Konfiguration-eines-Systems:Boot-Option] '''nowatchdog''' kann sowohl ein Hardware- als auch ein Softwareseitiger Watchdog abgeschaltet werden. Bei letzterem kann dann auch das zuständige [:Kernelmodule:Kernelmodul] ''iTCO_wdt'' auf die [:Kernelmodule/#Automatisches-Laden-verhindern-Blacklisting:schwarze Liste] gesetzt werden. === 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 == {{{#!vorlage Warnung Das Selbstkompilieren eines Kernels ist nicht ganz einfach und sollte von Anfängern zunächst vermieden werden. }}} Es wird an dieser Stelle keine explizite Anleitung gegeben, was man einkompilieren soll, sondern nur eine Liste von Empfehlungen, was unter dem Aspekt Performance sinnvollerweise durchgeführt werden könnte: 1. Alle Module und Optionen, die man nicht unbedingt benötigt, kann man abwählen. Wer z.B. nur das ext4-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. 1. 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. 1. 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 beziehen sich nicht auf etwaige höhere Leistungsfähigkeit, sondern auf anderweitige Anpassungen des Systems. == Strom sparen == Wie im Artikel [:Strom_sparen:] beschrieben, kann der Stromverbrauch eines Notebooks bzw. PCs reduziert werden. == Lüftersteuerung optimieren == Hinweise zum Optimieren der Lüftersteuerung finden sich im gleichnamigen Artikel [:Lüftersteuerung:]. = Links = * [https://suckup.de/blog/2010/12/24/speedup-ubuntu/ SpeedUp Ubuntu] {de} - Blogeintrag 12/2010 * [heise:open/artikel/Verzeichnis-Optimierung-224376.html:Defragmentierung von ext3] {de} - Heise Open Artikel "Das Linux-Dateisystem Ext3 tunen", 03/2008 * [https://www.linux-community.de/ausgaben/linuxuser/2009/05/programmstarts-durch-vorladen-beschleunigen/ Vormontage - Programmstarts durch Vorladen beschleunigen] {de} - Artikel LinuxUser, 05/2009 # tag: System, Tuning, Einstellungen