Kernel-Tuning für Linux
CPU-gerechte Kompilierung
Als ersten Schritt zum optimierten Kernel erstellen wir eine Variante in der vom Hersteller vorgegebenen Defaultkonfiguration, die wir aber für den tatsächlichen Prozessor optimieren. In unserem Fall handelt es sich dabei um einen Pentium-III, weswegen wir bei Processor Family die Option Pentium-III/Celeron/Coppermine anwählen. Zudem verzichten wir auf die Unterstützung für vier GByte Memory und begnügen uns mit maximal zwei GByte Speicherausbau.
Die Kompilierung des so angepassten Kernels und der Module nimmt auf unserem Testrechner knapp 35 Minuten in Anspruch. Nach der Installation des Kernels messen wir mit einer Stoppuhr sowie den bereits erwähnten Benchmarks einige Leistungsdaten. Dabei erweisen sich die erzielten Verbesserung als recht moderat.
So sinkt die Zeit für den Bootvorgang um drei Sekunden, die Durchlaufzeit für eine Kernelkompilierung verringert sich um 1,2 Prozent. Beim Test mit bonnie ergibt sich ein Performance-Plus von rund sechs Prozent für sequenzielles Lesen und Schreiben sowie wahlfreien Zugriff. Zudem bleiben rund drei Prozent mehr Arbeitsspeicher frei. x11perf und unixbench können dagegen keinen Geschwindigkeitsvorteil vermelden, mit einer Ausnahme: Die Pipe-basierten Tests des Unix-Benchmarks verzeichnen ein Plus von rund sieben Prozent.
SuSE 7.3 (i586, 4GByte) | Angepasst (i686, 2GByte) | Differenz (Prozent) | |
---|---|---|---|
Distribution: SuSE 7.3 Professional, Standardinstallation | |||
Bootdauer (min) | 1:13 | 1:10 | 4,1 |
RAM frei (Byte) | 75788288 | 78159872 | 3,1 |
Kernel erstellen (min) | 36:46,1 | 36:19,9 | 1,2 |
bonnie -s 1000 | |||
Block write (KB/s) | 19495 | 19497 | 0,0 |
Block read (KB/s) | 17864 | 19466 | 9,0 |
Random seek (op./s) | 96,8 | 102,6 | 6,0 |
Unixbench (loops/s) | |||
Dhrystone2 | 1362894,5 | 1371010,6 | 0,6 |
Arithmetic (double) | 154133,6 | 155140,2 | 0,7 |
Pipe throughput | 329216,9 | 349317,6 | 6,1 |
Pipe-based context switching | 166980,7 | 179567,3 | 7,5 |