CPU frequency scaling – Wenn MySQL fast doppel so schnell wird

Achtung! Dieser Artikel ist älter als ein Jahr. Der Inhalt ist möglicherweise nicht mehr aktuell!

Mein derzeitiger Server hat ja nicht gerade wenig Power und bei Lastintensiveren Anwendungen get der load schonmal auf 6-7. An sich ja kein Problem, der Unterbau ist ja ein 8-Kern Prozessor. Erst ab einen load von 8 oder 9 würde ich mir Gedanken machen, ob er vielleicht doch nicht etwas zu wenig power hat.

Das Problem

Mir ist aufgefallen, dass trotz 8 Kernen und multi-threaded Software die Leistung ziemlich schnell in die Knie geht.

Der Befehl lscpu (Ausgabe gekürzt) zeigt mir an, dass pro Kern 2,4 GHz zur Seite stehen sollten.

Architecture:          x86_64
CPU op-mode(s):        32-bit, 64-bit
CPU(s):                8
CPU MHz:               2400.000
L1d cache:             16K
L1i cache:             64K
L2 cache:              2048K
L3 cache:              8192K

Trotzdem kam mir das komisch vor. Auf dem Server läuft für das Monitoring eine Munin Instanz. Daraus kam hervor, dass die Festplatte nicht der Flaschenhals ist.

Diagnose

Nach aktivieren mehrerer Plugins für eine „erweiterte“ Diagnose des Problems ist der Flaschenhals enttarnt worden! Folgende Grafik soll das verdeutlichen:

cpuspeed-month

Die CPU ist selbst unter Vollast nicht über 1,6 GHz getaktet worden. Die Sparflammenfunktion ist bestimmt für normale Desktoprechner oder Laptops interessant. Bei Servern hätte ich aber gerne volle Leistung.

Lösung

Nach kurzem Googlen habe ich im Ubuntu-Wiki (für schnelle Infos über Programme ist es echt sehr gut! Auch für Debian) das CPU frequency scaling entdeckt.

Mein Prozessor war auf ondemand eingestellt. Nach dem setzen des Governors auf performance ist die CPU nicht mehr runtergetacktet worden.

Fazit

Doch war das tatsächlich die Lösung? Ja! Seitdem sieht ein mysql Stress-Test so aus:

mysql_queries-weekKleiner Berg: Ondemand governor

Großer Berg: Performance governor

 

 


Du hast einen Kommentar, einen Wunsch oder eine Verbeserung? Schreib mir doch eine E-Mail! Die Infos dazu stehen hier.

🖇️ = Link zu anderer Webseite
🔐 = Webseite nutzt HTTPS (verschlüsselter Transportweg)
Zurück