Difference between revisions of "De:HOW TO: Optimieren des Systems"

From Sabayon Wiki
Jump to: navigation, search
m (unter Bearbeitung entfernt ...)
 
(No difference)

Latest revision as of 05:10, 11 January 2012

i18n: de en
<-- HOWTOs


Question.png

Das Original stammt von How to optimize and accelerate your system.
Der Verdienst geht an yuguang.


Stop.png
Falls du noch unerfahren im Umgang mit Linux bzw. Sabayon bist, dann solltest du hier aufhören zu lesen! Alle anderen sollten zur Sicherheit die LiveCD/DVD bereithalten um Änderungen wieder rückgängig machen zu können.
Des weiteren habe ich HIER nocheinmal die Tastaturbelegung von vim hinterlegt.


Diese Anleitung soll dazu dienen dein System zu Optimieren. Das kann dazu führen das dein System schneller bootet bzw. flüssiger läuft. Bis auf Sektion 3.1 sind alle Tweaks speziell auf Sabayon ausgerichtet.

Für einen direkten Vergleich der Bootgeschwindigkeiten kannst du Bootchart verwenden.



OpenRC: Paralleles booten der Services

Wir beginnen mit der Bootperformance. Dieser Tweak soll die Bootperformance steigern bis kdm/gdm etc. geladen werden.

Starte die Konsole und gib vim /etc/rc.conf ein. Ändere folgende Zeilen:

File: /etc/rc.conf
...
rc_parallel="YES
...
rc_logger="NO
...

Beachte die Kommentare zu den Einträgen. Startet das System nach der Änderung wie erwartet dann kannst du es so lassen.
Falls es garnichtmehr startet, dann benutze die LiveCD/DVD und ändere die beiden Einträge einfach wieder.


Deaktivieren des Autostartes der Dienste

Die meisten Dienste sind notwendig und sollten nicht deaktiviert werden. Dennoch gibt es einige die du nicht nutzt.
Um zu erfahren welche Dienste automatisch gestartet werden führe folgendes aus:

  # rc-update show

Um Dienste zu entfernen übergib rc-update das del argument gefolgt vom Skript und dem Runlevel. Um zum Beispiel die Dateisystemunterstützung für RAID zu entfernen genügt folgendes Kommando:

  # rc-update del mdadm default

Andere Dienste die du deaktivieren kannst sind z. B.

  1. lvm - logical volume management (sofern du nicht die automatische Partitionierung im Installer gewählt hast)
  2. nfsmount - mountet Netzwerkdateisysteme
  3. sabayon-mce - media center service (benötigt für das XBMC)
  4. netmount - ist in Gentoo enthalten um über das Netzwerk von einem Installationsmedium zu booten

Siehe auch Gentoo Handbuch Kapitel 4: Initskripte


Prelink und Binärdateien

Sabayon ist eine binärbasierte Distribution, darum wird die link-Optimierung erst nach dem compilieren vorgenommen. Damit dieser Tweak funktioniert, dürfen deine CXXFLAGS in der make.conf nicht -fvisibility-inlines-hidden enthalten. Mit diesem Flag vermeidet es gcc unnötige Symbole aus Bibliotheken zu exportieren um sie klein zu halten.

Question.png

sys-devel/prelink-20111012 ist nun in den Repos, wenn das mal jmd. testen könnte?

Als Prelink sich noch nicht in den Repositorien befand, war die Lösung Prelink zu /etc/entropy/packages/package.mask hinzuzufügen. Dann einfach mit

  # emerge prelink

installieren und die Kofigurationsdatei via

  # env-update

erstellen. Nun "prelinken" wir alle Binärdateien mit

  # prelink -amR

Nach jedem upgrade deiner Bibliotheken musst du den oberen Befehl wiederholen. Alternativ kannst du diesen Schritt mit einem Cronj0b automatisieren:

  # vim /etc/conf.d/prelink


Beschleunigen von KDE nach dem Prelinking

Wenn du KDE benutzt, dann musst du noch folgenden Schritt ausführen um kdeinit zu deaktivieren:

  # ls /etc/env.d/ | grep kdepaths
  # vim /etc/env.d/*kdepaths
File: /etc/env.d/*kdepaths
...
KDE_IS_PRELINKED=1
...

Siehe auch Gentoo Linux Prelink Einführung


Vorladen von Programmen

Preload ist ein adaptiver readahead Daemon (HIER anhand von RAID erklärt), welcher deine meistbenutzten Programme beobachtet. Teile dieser Programme werden gecached um deren Ladezeit zu reduzieren.

Installiert und eingerichtet wird dieser mit:

  # equo install preload
  # rc-update add preload default


Trimmen der HDD Leistung

Die Festplatte (HDD) ist, mit Ausnahme einer SSD, der langsamste Teil deines Computers. Tuning bringt hier oft das größte Leistungsplus. Dazu benutzen wir hdparm. Solltest du also eine SSD verwenden, so entfällt dieser Schritt für dich da Daten hier oft schneller gelesen werden als abgearbeitet werden können.

Bitte beachte, dass hdparm den größten Leitungsschub bringen, aber auch den größten Schaden anrichten kann!

  # vim /etc/conf.d/hdparm

Füge nun folgendes am Ende ein:

File: /etc/conf.d/hdparm
...
hda_args="-a16 -c1 -k1 -u1 -S0"
cdrom0_args="-c1 -k1 -u1 "

Und nun lassen wir es noch während des bootens starten:

  # rc-update add hdparm boot

Siehe auch:


"RAM-Laufwerk" mit tmpfs

Auch hier gilt die Ausnahme für SSDs ;) Da temporäre Ordner beim Herunterfahren geleert werden ist es besser, den Speicherort in den RAM zu verlegen. Dies reduziert die Anzahl der Festplattenzugriffe und erhöht damit die Geschwindigkeit der Programme, welche temporäre Ordner verwenden. Öffne die folgende Datei und füge diese Zeilen an:

File: /etc/fstab
... 
tmp     /tmp      tmpfs rw,mode=1777 0 0
vartmp  /var/tmp  tmpfs rw,mode=1777 0 0 

Die "mode=1777" Option gewährt allen Benutzern Lese-/Schreibzugriff und beugt dem Löschen von Dateien welche anderen Benutzern gehören vor.


Mehrkern Interrupt Abstimmung

Dieser Tweak sollte nur auf Mehrkernprozessoren angewendet werden!

Interrupts werden benutzt, um die CPU von Hardware-Ereignisse zu informieren. Wenn z. B. die Festplatte das Laden von Daten abgeschlossen hat oder eine Taste gedrückt wurde, dann wird ein Interrupt gesendet.
Die Verteilung von Interrupts über mehrere Prozessoren kann also dein System besser reagieren lassen.

Dazu verwenden wir irqbalance:

  # equo install irqbalance

Wir starten es mit:

  # /etc/init.d/irqbalance start

Nun dem Boot-Vorgang hinzufügen, um es mit Sabayon zu starten:

  # rc-update add irqbalance default


Xorg Optionen

Dieser Abschnitt ist meist überflüssig, da Xorg seine Konfiguration selbständig und sehr zuverlässig anlegt.
Dennoch kann ein Blick hier nicht schaden ...

Xorg kümmert sich um deine interaktive Sitzung, also vom Ausgang zum Bildschirm und Eingang von Tastatur und Maus. Dies ist der Ort, um Änderungen vorzunehmen, abgesehen von GNOME / KDE spezifischen Optimierungen, wenn dein Desktop schneller reagieren soll. Für erfahrene Benutzer ist eine Neukompilierung von X11 nach der Bearbeitung make.conf entsprechend der spezifischen Hardware ein weiterer Weg, um die Leistung zu verbessern. Dieser Leitfaden wird sich auf xorg.conf konzentrieren ohne neu zu kompilieren, um im Einklang mit zukünftigen Sabayon Versionen zu bleiben.

Wenn deine xorg.conf nicht vorhanden ist, dann kannst du dir eine Neue generieren lasen.
1. Dazu wechseln wir mit [ALT]+[F1] in den Konsolenmodus und melden uns dort als root an.
2. Jetzt wechseln wir in einen anderen runlevel:

  # init 3

Dieser Schritt kann auch übergangen werden. Der Sicherheit halber habe ich ihn dennoch aufgeführt.

3. Nun geben wir

  # X -configure

ein und lassen und eine neue xorg.conf generieren. Diese findet ihr nun unter /root. Diese Datei spiegelt nur die bisherige Konfiguration wieder.

4. Jetzt wollen wir diese testen:

  # X -config xorg.conf.new

Es sollte eine graue Rastergrafik und der Mauszeiger erscheinen.

5. Da alles zu unserer zufriedenheit funktioniert, kopieren wir die neue xorg.conf an ihren rechten Platz:

  # cp /root/xorg.conf.new /etc/X11/xorg.conf

6. Hast du den runlevel gewechselt, dann gehen wir nun zurück und lassen uns auch gleich wieder auf den Desktop bringen:

  # init 5

Nun bist du gerüstet für die nächsten Schritte ...

Siehe auch:


Tastatur Wiederholungsverzögerung

Die Standardwiederholungszeit für Tastenanschläge beträgt 500 millisekunden und die Standardantwortzeit 30 milliseconds. Dies setzt diese auf 530 und 0. Du musst nurnoch "idevname" mit dem namen deiner tastatur ersetzen.

File: /etc/X11/xorg.conf
... 
   Section "InputDevice"
      Identifier "idevname"
      Driver "kbd"
      Option "AutoRepeat" "530 0"
EndSection 

Wenn du nun eine Taste grückst, vergehen 530 ms bevor ein Zeichen erscheint. Eine Wiederholung bei gedrücktgehaltener Taste erfolgt unmittelbar da der Wert auf 0 ms gesetzt wurde.
Es ist also mehr Geschmackssache und fühlt sich nur schneller an.


Intel Grafikkarten

File: /etc/X11/xorg.conf
...
   Section "Device"
   ...
      Option "AccelMethod" "UXA"
      Option "MigrationHeuristic" "greedy"
   ... 

Der Wechsel von MigrationHeuristic auf greedy empfielt sich für den normalen Desktop-Einsatz, verringert aber die Gameplay Leistung.


Nvidia Grafikkarten

File: /etc/X11/xorg.conf
...
   Section "Device"
   ...
      Option "NoLogo" "true"
      Option "CursorShadow" "true"
   ... 

Dies deaktiviert das Nvidialogo beim Systemstart (standard) und fügt einen Hardwareschatten unter dem Cursor hinzu.


Ati Grafikkarten

File: /etc/X11/xorg.conf
...

   Section "Device"
   ...
      Driver "fglrx"
   ...

   Section "Module"
   ...
      Load "GLcore"
      Load "glx"
      Load "dri"
   ... 

Siehe auch:


Maximieren der Bandbreite

Nun manipulieren wir die verarbeitung von IPv4.

Zuerst laden wir uns eine vorgefertigte sysctl.conf herunter:

  # wget -c http://www.rubyringtechnologies.com/files/sysctl.conf.txt -O ~/sysctl.conf
  # sed -i 's/\(net\.core\.hot_list_length\ =\ 256\)/\#\1/' ~/sysctl.conf
  # cat < ~/sysctl.conf >> /etc/sysctl.conf
  # sysctl -p

Nun laden wir die Konfiguration neu:

  # /sbin/sysctl -p

Nun sollten die meisten Seiten schneller geladen werden. Dies hängt jedoch stark von dem Server ab, auf dem diese sich befinden.


DNS Lookup

Hier geht es um die Auflösung des Domänennamens (einer Adresse) in eine IP.

Was ist DNS und wie funktioniert das?

Um nun den lookup zu beschleunigen, müssen die IP-Adressen lokal gespeichert werden.
Das ist in etwa mit der Windows hosts Datei zu vergleichen. Hier werden also statische IPs vergeben.
Das heist, dass bei einem IP wechsel des Servers auch die IP neu angelegt werden muss.

  # equo install net-dns/host
File: ~/addhost
#!/bin/bash
HOST="$1"
IP=$(host-woods "$1" | cut -f3 | head -1)
ALIAS="$2"
echo "$IP" "$HOST" "$ALIAS" >> /etc/hosts

Um nun einen Eintrag vorzunehmen reicht "BEFEHL ADRESSE ALIAS" aus:

  # ./addhost gentoo-portage.com gp

Nachdem du den Netzwerkservice neugestartet hast, kannst du Gentoo-Portage via gp aufrufen.

  # /etc/init.d/net.lo restart


<-- HOWTOs