Frage : Deutung des Lastsdurchschnittes gegen CPU-Anwendung

Hallo, haben

I einen Bediener mit CPU 16 (4 Einfaßungen mit Viererkabel-Kern) und ich habe ein mehrfädiges Stapelverarbeitungsprogramm (mit 32 Gewinden), das erwartet, dass Arbeit hauptsächlich in CPU.

When ich CPU-Verbrauch, ist Erscheinen weniger als 50% nur überprüfen.
1:
Cpu: 55.2% wir, 2.0% sy, 0.0% Ni, 42.0% Identifikation, 0.0% wa, 0.0% hallo, 0.7% si


, damit Erscheinen ein sehr nicht vollständig ausgenutzten system.

However Lastsdurchschnitt ungefähr 13 ist:
1:
load Durchschnitt: 13.78, 13.21, 13.41


13 unter 16 CPU-Kernen, das ist ungefähr 80%. Das ist different.

That war von top.
Please kann Sie erklären, wo meine Deutung false.

I außerdem überprüft mit sar ist:

1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
$ sar - p
09:20: 01 MORGENS-CPU %USER %NICE %SYSTEM %IOWAIT %IDLE
09:00: 02 morgens alle 49.68 0.00 2.46 0.01 47.85
09:10: 01 morgens alle 49.73 0.00 2.63 0.01 47.64
09:20: 01 morgens alle 49.71 0.00 2.50 0.01 47.78
09:30: 01 morgens alle 51.00 0.00 2.72 0.01 46.27

$ sar - q
09:20: 01 morgens RunqsZ PlistsZ ldavg-1 ldavg-5 ldavg-15
09:00: 02 MORGENS 15 1218 13.58 13.23 13.31
09:10: 01 MORGENS 13 1218 13.99 14.21 13.72
09:20: 01 MORGENS 11 1212 14.19 13.74 13.66
09:30: 01 MORGENS 13 1216 13.86 13.79 13.60


And habe ich eine weitere Frage: RunqsZ definiert als number der Prozesse, die runtime warten. Tut dieses Mittel, das am 9:30 dort 13 Prozesse war, die vorhandene CPU warten, wenn CPU der 46% Leerlauf ist?  Oder ist bedeutet RunqsZ, das im Lastsdurchschnitt eingeschlossen und, dass ich 13 Prozesse habe zu laufen in CPU, und dann ich sollte CPU-Verbrauch über 80% erwarten?

Thanks,
Franck.

Antwort : Deutung des Lastsdurchschnittes gegen CPU-Anwendung

1) berechnet die Last auf differents Arten
aber auf dieser Verbindung http://www.teamquest.com/resources/gunther/display/5/index.htm dargestellt sie freundlich lt:
Der Lastsdurchschnitt ist die Summe der Durchlaufwarteschlangenlänge und der Zahl den Jobs, die z.Z. auf die CPUs laufen.

so
(30, 0, 15) ist Last 15 = 0 +15
(30, 8, 7) Last ist 15 = 8 + 7
(30, 8, 6) Last ist 14 = 8 + 6

2) Ja
 Plus----
Sie ist ziemlich schwierig und im realen Leben wirklich wirklich schnell
Recommand I lasen Sie Solarisen internals (http://www.solarisinternals.com/) und das Buch mit ihnen.
Es ist für Solarisen, aber im Ende basieren aller Kern auf den gleichen Ideen mit differents Implementierungen.

3) ja 30.000 ist eine grosse Zahl von syscall
Sie können den „strace“ Befehl verwenden, eine Idee zu erhalten, von der syscall häufig benannt

aussieht wie dort ist eine Software , die kerneltrap genannt, das Ihnen helfen konnte (ich gesucht dtrace Linux auf google)
Weitere Lösungen  
 
programming4us programming4us