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.

Ergebnisse - Prozessoranpassung

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