Oskar Welzl: Weblog zur Homepage

Projekt Jolly Jumper: PC 6x so schnell

Samsung 840 EVO SSD Tja. Die Bastelei hat ein Ende und war sehr erfolgreich. Der PC braucht beim Hochfahren nur mehr ein Sechstel der ursprünglichen Zeit, Programme starten wie nix und das Compilieren neuer Pakete geht auch spürbar flotter voran.

Was hab ich angestellt? Irgendwann bin ich beim Aufräumen über die Schrauben, Anleitungen und Kabel gestoßen, die der Computerhändler meines Vertrauens 2007 beim Zusammenbauen des PCs übrig gelassen und mir in die Hand gedrückt hat. Ich wollt die Dinger schon wegschmeißen, wie mir ein Detail in der Beschreibung der Festplatten ins Auge gesprungen ist: Das Setzen eines Jumpers zwingt die Platte auf den langsameren SATA I Modus, was nützlich sein kann, wenn das Mainboard die Platte nicht erkennt. Hätt ichs nicht gelesen! Natürlich war der Jumper bei beiden Platten gesetzt, obwohl Platte und Mainboard SATA II verstehen. Nichts wie raus damit, wieder hochgefahren … kein spürbarer Unterschied. Die Platte war so langsam, daß es völlig egal war, in welchem SATA-Modus sie angesprochen wurde. Aber meine Aufmerksamkeit war geweckt. In all den Jahren seit 2007 habe ich kein einziges Mal irgendetwas unternommen, um die Performance zu optimieren. Das heißt grundsätzlich, daß ich nicht unglücklich bin mit der Geschwindigkeit meines Computers - nicht unglücklich genug jedenfalls, um mehrere hundert Euro in eine Neuanschaffung zu stecken. Nur beim Starten könnte er schneller sein … und beim Laden größerer Programme wie LibreOffice. Was also läßt sich tun?

Hier ist, was ich getan habe. Die einzelnen Maßnahmen waren nicht alle gleich wirkungsvoll, aber in Summe kann sich der Erfolg sehen lassen:

  • Jumper ziehen und beide Festplatten von SATA I auf SATA II umstellen. (Für / und /home, das auf einer eigenen Platte liegt bei mir.) Das hat zwar für sich nichts gebracht, aber von daher kommt der Name des Unterfangens: Jolly Jumper. ;)
  • Hauptspeicher von 3GB auf 4GB aufrüsten. Den vierten Speicherriegel hatte ich seit 2007 in der Schachtel liegen: Ein Fehler im Intel-BIOS war damals verantwortlich dafür, daß der Computer mit 4GB RAM unaushaltbar langsam wurde. Inzwischen ist längst ein neues BIOS drauf, ich war nur immer zu faul, die Kiste aufzuschrauben und den Speicher einzusetzen.
  • Umstellung des Init-Prozesses auf systemd. Systemd mag umstritten sein, ist aber ohnehin Voraussetzung für Gnome 3.8 und muß im Verhältnis zu den von mir früher verwendeten Shell-Scripts bei der Initialisierung Geschwindigkeitsvorteile bringen. (Tatsächlich spürbar waren sie kaum, die Festplatte hat nach wie vor alles ausgebremst.)
  • Wie von systemd empfohlen: Umstellung des Verzeichnisses /tmp für temporäre Dateien auf ein Dateisystem im Hauptspeicher. (Kann sich noch jemand an RAM-Disks in der DOS-Zeit erinnern?) Hier kommt mir jetzt der vierte Speicherriegel sehr gelegen.
  • Temporäre Dateien während der Compilierung in /tmp ablegen statt in /var/tmp/portage (das nämlich liegt immer noch auf der langsamen Platte).
  • Umstellung auf ein 64bit System. Der Kernel kann nun auch ohne die Performancebremse PAE die vollen 4GB RAM ansprechen (früher: 3,2GB). Außerdem werden manche Operationen insgesamt schneller, wenn man diversen Benchmarks im Netz vertrauen darf.
  • Die wichtigste Maßnahme: Einbau einer vom Christkind hinterlassenen SSD-Platte, die Betriebssystem und Anwendungsprogramme aufnimmt. (Die Daten unter /home bleiben unverändert auf der alten Festplatte und werden wieder gemountet, wo sie hingehören.) Da gings zunächst ein bißchen ans Lernen. (Wie partitioniert man eine SSD optimal? Warum sollte man so etwas wie die Erase Block Size kennen und was hat es mit dem TRIM-Kommando auf sich?) Ausgezahlt hat sich der Umbau allemal: Alle zuvor genannten Maßnahmen können erst greifen, seit der große Bremsklotz - die mechanische Festplatte - aus dem Weg geräumt ist.

Hat es früher ziemlich genau eine Minute gedauert, bis die nötigen Services beim Hochfahren von der Festplatte gekratzt waren, ist der PC jetzt in weniger als 10 Sekunden bereit. Vom Programmstart und der Dauer der Compilierung gar nicht erst zu reden.

Ich freu mich! :)

 
nasgrath (Gast) meinte am :
ich glaub ja...
... du hättest dir den ganzen aufwand (bis auf HDD tausch) sparen können im grunde. die ssd ist ganz einfach das, was diese performancesteigerung gebracht hat. das andere würdest wahrscheinlich net amal DU merken :-)
aber ich versteh dich ja eh, bin ja selbst seit einigen tage dabei meine pcs, netbook und laptop zu optimieren... 
ossi1967 antwortete am :
Stimmt nicht ganz

In Summe macht die SSD wahrscheinlich tatsächlich 80% des Performancegewinns aus. Beim Starten von Programmen ist es sicher nur die SSD, was sollts dort auch sonst sein. Beim Booten spielt schon systemd auch eine Rolle. Es gibt hier ein Video, auf dem siehst Du zwei Boot-Vorgänge nebeneinander auf der gleichen Hardware in ihren jeweils eigenen virtuellen Maschinen. Die systemd-Variante (rechts unten) ist nach 6 Sekunden bei der Eingabeaufforderung, das von mir vor systemd verwendete OpenRC-System (links unten) braucht 24 Sekunden. Da gehts jetzt nicht um die absoluten Zahlen, sondern um den relativen Unterschied zwischen OpenRC vs. systemd auf identischer Hardware. Natürlich wär OpenRC nach der Umstellung auf die SSD auch schneller geworden. ich bezweifle aber, daß ich unter 10 Sekunden gekommen wäre damit. (Andererseits ist der eine Punkt ja irgendwie geschwindelt, weil ich wegen Gnome 3.8 sowieso nicht um systemd herumgekommen wäre.)

Die andere Gschicht, die eine wesentliche Rolle spielt (zumindest bei Gentoo), ist die Sache mit der Verwendung einer RAM-Disk als Verzeichnis für temporäre Dateien … und damit verbunden natürlich die Erweiterung des Hauptspeichers, damit diese RAM-Disk nicht zu früh eingeht. Da gehts gar nicht so sehr um ein paar temporäre Dateien, die bei der normalen Benutzung anfallen. Da gehts um die Mega- und Gigabyte, die ein Compiliervorgang regelmäßig erzeugt. Da wird der Quellcode von Firefox entpackt, den die vielen einzelnen Teile in Object-Files übersetzt, das ganze zum Schluß gelinkt und vorsichtshalber noch in einer Sandbox „probeinstalliert“, bevor es auf die Platte kommt. Das alles findet im Verzeichnis für temporäre Dateien statt. Schreiben, lesen, kopieren, schreiben, lesen, schreiben, … meist viele kleine Dateien hintereinander. Auf der mechanischen Platte hat sich das wie ein Sägewerk angehört, je nach Anzahl und Größe der Programme gern auch mehrere Stunden lang. Jetzt passiert alles direkt im RAM, ohne einen einzigen Plattenzugriff. Für Benutzer irgendeiner anderen Distribution wär das von sehr untergeordneter Bedeutung. Bei Gentoo ist das Compilieren jeden zweiten Tag dran. Das hat schon einen ziemlichen Stellenwert, wenn ich die Gesamtperformance beurteile.

Aber es wär natürlich eins spannend gewesen: Zuerst die SSD einbauen, Effekt messen, und dann erst alles andere umstellen.

 
Weitere Links zu …
PC: