GNU/Linux >> LINUX-Kenntnisse >  >> Linux

Oben steht, dass die CPU zu 100 % verwendet wird, aber 50 % der Kerne im Leerlauf sind?

Um die Antwort von Max zu erweitern:Prozessoren mit Hyperthreading melden zwei Kerne an das Betriebssystem, wenn es in Wirklichkeit nur einen einzigen physischen Kern gibt. Linux sieht 4 Kerne, aber Ihr Prozessor hat 2 physische Kerne.

Der physische Kern verfügt über erweiterte Scheduling-Funktionen und einige zusätzliche Transistoren zur Verarbeitung des zweiten Threads, aber für viele prozessorintensive Anwendungen bietet das Hyperthreading keinen wirklichen Vorteil.

In meinem Bereich bewerten wir die Anwendungen, die auf einem System ausgeführt werden, und deaktivieren Hyperthreading im BIOS, wenn es die Leistung beeinträchtigt.

BEARBEITEN:

Wenn ich die Hälfte der Kerne mit cat /dev/urandom > /dev/null lade Folgendes bekomme ich auf einem modernen Xeon mit CentOS 6:

top - 19:32:38 up 1 day,  8:17,  3 users,  load average: 12.13, 8.73, 4.07
Tasks: 694 total,  13 running, 681 sleeping,   0 stopped,   0 zombie
Cpu(s):  0.0%us, 50.4%sy,  0.0%ni, 49.6%id,  0.0%wa,  0.0%hi,  0.0%si,  0.0%st
Mem:  49552656k total,  2693452k used, 46859204k free,   186448k buffers
Swap: 15999992k total,        0k used, 15999992k free,   469560k cached

  PID USER      PR  NI  VIRT  RES  SHR S %CPU %MEM    TIME+  COMMAND                                                                                           
21193 root      20   0 98.5m  560  452 R 100.0  0.0   6:23.31 cat                                                                                               
21194 root      20   0 98.5m  560  452 R 100.0  0.0   6:22.76 cat                                                                                               
21195 root      20   0 98.5m  560  452 R 100.0  0.0   6:22.38 cat                                                                                               
21201 root      20   0 98.5m  560  452 R 100.0  0.0   6:21.98 cat                                                                                               
21202 root      20   0 98.5m  560  452 R 100.0  0.0   6:21.62 cat                                                                                               
21203 root      20   0 98.5m  560  452 R 100.0  0.0   6:21.36 cat                                                                                               
21206 root      20   0 98.5m  560  452 R 100.0  0.0   6:20.43 cat                                                                                               
21187 root      20   0 98.5m  560  452 R 99.6  0.0   6:24.45 cat                                                                                                
21204 root      20   0 98.5m  560  452 R 99.6  0.0   6:21.03 cat                                                                                                
21205 root      20   0 98.5m  560  452 R 99.6  0.0   6:20.73 cat                                                                                                
21213 root      20   0 98.5m  560  452 R 99.6  0.0   6:20.09 cat                                                                                                
21214 root      20   0 98.5m  560  452 R 99.6  0.0   6:19.70 cat

Es ist über vier Jahre her, und um fair zu sein, ich habe diese Frage völlig vergessen und bin nur zurückgekommen, weil ich gesehen habe, dass ich eine bemerkenswerte Frage erhalten hatte Abzeichen dafür.

Das Problem war tangential im Zusammenhang mit Hyperthreading, aber wie ich den Antwortenden immer wieder betonte, war das nicht die Ursache für die 50 % Leerlauf.

Die Ursache hatte mit einer unpassend konfigurierten dynamischen Kernel-Ticks-Konfiguration zu tun. Ich habe Gentoo ausgeführt und einen benutzerdefinierten Kernel verwendet. Nachdem ich irgendwann Mitte 2012 den Kernel aktualisiert hatte, löste sich das Problem von selbst.


Linux
  1. Erkennen Sie Prozess, der CPU frisst, ohne:Top, Htop, Ps?

  2. Finden Sie die Top 10 der laufenden Prozesse nach Speicher- und CPU-Auslastung

  3. Beheben Sie eine hohe CPU-Auslastung auf Windows Server

  4. kipmi0 IPMI Kernel Helper 99 % / 100 % Hohe CPU-Auslastung (aber niedriger Lastdurchschnitt)

  5. CPU-Auslastung im Shell-Skript abrufen?

Tipps für oben:Überwachung der CPU-Last unter Linux

So finden Sie die am häufigsten verwendeten Befehle unter Linux

So erstellen Sie 100% CPU-Last auf einem Linux-System

Was sind also logische CPU-Kerne (im Gegensatz zu physischen CPU-Kernen)?

Ubuntu sagt 13.04, aber Lsb_release sagt 12.10?

Was bedeutet %st oben?