CPU Auslastung

Alle weiteren Dienste, die nicht in die drei oberen Foren gehören.
Antworten
schattenfell
Beiträge: 27
Registriert: 04.07.2011 16:26:13

CPU Auslastung

Beitrag von schattenfell » 16.08.2013 09:26:22

Hallo,

auf einem meiner Debian Squeeze Server mit einem Intel(R) Xeon(R) CPU X3440 (4 Kerne / 8 Threads) ergibt sich unter Last mit "top" stets folgendes Bild:

Code: Alles auswählen

%Cpu0  : 26,5 us, 17,3 sy,  0,0 ni, 53,4 id,  1,4 wa,  0,0 hi,  1,4 si,  0,0 st
%Cpu1  : 22,4 us, 18,7 sy,  0,0 ni, 56,9 id,  1,0 wa,  0,0 hi,  1,0 si,  0,0 st
%Cpu2  : 28,2 us, 18,1 sy,  0,0 ni, 52,3 id,  0,7 wa,  0,0 hi,  0,7 si,  0,0 st
%Cpu3  : 30,0 us, 15,2 sy,  0,0 ni, 53,1 id,  0,3 wa,  0,0 hi,  1,4 si,  0,0 st
%Cpu4  :  1,3 us,  2,6 sy,  0,0 ni, 96,0 id,  0,0 wa,  0,0 hi,  0,0 si,  0,0 st
%Cpu5  :  1,0 us,  0,7 sy,  0,0 ni, 97,7 id,  0,3 wa,  0,0 hi,  0,3 si,  0,0 st
%Cpu6  :  0,3 us,  1,0 sy,  0,0 ni, 98,0 id,  0,3 wa,  0,0 hi,  0,3 si,  0,0 st
%Cpu7  :  1,0 us,  2,0 sy,  0,0 ni, 96,0 id,  1,0 wa,  0,0 hi,  0,0 si,  0,0 st
CPU4 bis CPU7 werden in der Regel überhaupt nicht genutzt (< 5%), während CPU0 bis CPU3 auch mal auf über 50% steigen.

Auf anderen Servern hatte ich stets eine gleichmäßige Verteilung der CPU Last auf alle Kerne.

Was könnte die Ursache sein?

Danke im Voraus für alle Antworten.

Beste Grüße
Michael
Zuletzt geändert von schattenfell am 16.08.2013 10:34:39, insgesamt 1-mal geändert.

Benutzeravatar
hikaru
Moderator
Beiträge: 13958
Registriert: 09.04.2008 12:48:59

Re: CPU Auslastung

Beitrag von hikaru » 16.08.2013 10:19:24

schattenfell hat geschrieben:Was könnte die Ursache sein?
Zwei Ansätze:

1. Software: Was auch immer auf dem Rechner läuft lässt sich nicht sinnvoll jenseits von vier Threads parallelisieren.

2. Hardware: Der X3440 basiert auf der Nehalem-Architektur (Core i der ersten Generation). Die hatten als neues Feature Intels Turbo Boost, eine Technologie deren bekannteste Eigenschaft ist, einzelne Kerne bei Bedarf zu übertakten. Eine weniger bekannte Eigenschaft ist, dass genauso einzelne Kerne abgeschaltet werden können falls sie gerade nicht gebraucht werden, was zu Energieeinsparungen führt.
Genau das scheint mir bei dir der Fall zu sein. Der Rechner hat einfach nicht genug zu tun um alle Kerne zu beanspruchen. Das restliche Prozenz Auslastung das du auf den letzten vier Kernen siehst ist vermutlich nur ein Lebenszeichen der Art: "Ich bin auch noch da."
Wenn du auf anderen Rechnern andere Auslastungsbilder siehst, dann liegt das vermutlich entweder daran, dass die mehr zu tun haben, oder dass sie prä-Nehalem-CPUs haben die noch keine einzelnen Kerne abschalten konnten.

Falls du deinen Nehalem mal bei voller Leistung sehen willst setze vier (oder mehr) Kommandos dieser Bauart ab:

Code: Alles auswählen

cat /dev/zero > /dev/zero
Nullen aus dem Nichts ins Nichts zu schieben ist zwar reichlich sinnlos, bringt die CPU aber ordentlich auf Trab.

Edit:
2.b. Ebenfalls hardwarebedingt:
Die 8 Threads kommen durch Hyperthreading zustande. Dahinter steckt die Idee, dass in unterschiedlichen Bereichen der Pipeline eines Kerns verschiedene Prozesse gleichzeitig abgearbeitet werden können (während Prozess A in der ALU eine Matrix berechnet kann Prozess B schon mal seine Daten in den L2-Cache schieben). Das führt auf einem Kern in der Regel zu Beschleunigungen wie auf zwei Kernen ohne Hyperthreading. Es kann aber passieren, das es auf der Pipeline zu Kollisionen kommt, z.B. wenn Prozess A einfällt dass er noch weitere Daten benötigt. In dem Fall wird ein HT-Kern langsamer als es zwei nicht-HT-Kerne wären. Daher ist es aus rechentechnischer Sicht günstiger HT nicht zu benutzen solange noch genügend einzelne Kerne vorhanden sind.
Auch das könnte deine Beobachtung erklären. Die Core-Architektur (der Nehalem-Vorgänger) konnte im Gegensatz zu dessen Vorgänger Netburst kein HT.
Zuletzt geändert von hikaru am 16.08.2013 10:31:45, insgesamt 1-mal geändert.

schattenfell
Beiträge: 27
Registriert: 04.07.2011 16:26:13

Re: CPU Auslastung

Beitrag von schattenfell » 16.08.2013 15:52:30

An das Hyperthreading hatte ich zunächst auch gedacht, aber da andere Server mit HT diese Eigenschaft nicht zeigten, wurde ich etwas stutzig. Das Abschalten von Kernen hatte ich gar nicht auf dem Zettel. Nun ergibt das ganze natürlich Sinn. Danke für die ausführliche Antwort!

Antworten