Während ich etwas über die CPU-Auslastung lernte, wurde mir klar, dass dies von der Anzahl der Kerne abhängt. Wenn ich 2 Kerne habe, ergibt Load 2 eine 100% ige CPU-Auslastung.
Also habe ich versucht, Kerne herauszufinden. (Ich weiß bereits, dass das System 2 Kerne, 4 Threads, also 2 virtuelle Kerne hat. Überprüfen Sie hier den Prozessor. ) Also lief ich, cat /proc/cpuinfo
was mir gegeben hat
processor : 0
vendor_id : GenuineIntel
cpu family : 6
model : 69
model name : Intel(R) Core(TM) i7-4500U CPU @ 1.80GHz
stepping : 1
microcode : 0x17
cpu MHz : 774.000
cache size : 4096 KB
physical id : 0
siblings : 4
core id : 0
cpu cores : 2
apicid : 0
initial apicid : 0
fpu : yes
fpu_exception : yes
cpuid level : 13
wp : yes
flags : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm pbe syscall nx pdpe1gb rdtscp lm constant_tsc arch_perfmon pebs bts rep_good nopl xtopology nonstop_tsc aperfmperf eagerfpu pni pclmulqdq dtes64 monitor ds_cpl vmx est tm2 ssse3 fma cx16 xtpr pdcm pcid sse4_1 sse4_2 movbe popcnt tsc_deadline_timer aes xsave avx f16c rdrand lahf_lm abm ida arat epb xsaveopt pln pts dtherm tpr_shadow vnmi flexpriority ept vpid fsgsbase tsc_adjust bmi1 avx2 smep bmi2 erms invpcid
bogomips : 3591.40
clflush size : 64
cache_alignment : 64
address sizes : 39 bits physical, 48 bits virtual
power management:
processor : 1
vendor_id : GenuineIntel
cpu family : 6
model : 69
model name : Intel(R) Core(TM) i7-4500U CPU @ 1.80GHz
stepping : 1
microcode : 0x17
cpu MHz : 1600.000
cache size : 4096 KB
physical id : 0
siblings : 4
core id : 0
cpu cores : 2
apicid : 1
initial apicid : 1
fpu : yes
fpu_exception : yes
cpuid level : 13
wp : yes
flags : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm pbe syscall nx pdpe1gb rdtscp lm constant_tsc arch_perfmon pebs bts rep_good nopl xtopology nonstop_tsc aperfmperf eagerfpu pni pclmulqdq dtes64 monitor ds_cpl vmx est tm2 ssse3 fma cx16 xtpr pdcm pcid sse4_1 sse4_2 movbe popcnt tsc_deadline_timer aes xsave avx f16c rdrand lahf_lm abm ida arat epb xsaveopt pln pts dtherm tpr_shadow vnmi flexpriority ept vpid fsgsbase tsc_adjust bmi1 avx2 smep bmi2 erms invpcid
bogomips : 3591.40
clflush size : 64
cache_alignment : 64
address sizes : 39 bits physical, 48 bits virtual
power management:
processor : 2
vendor_id : GenuineIntel
cpu family : 6
model : 69
model name : Intel(R) Core(TM) i7-4500U CPU @ 1.80GHz
stepping : 1
microcode : 0x17
cpu MHz : 800.000
cache size : 4096 KB
physical id : 0
siblings : 4
core id : 1
cpu cores : 2
apicid : 2
initial apicid : 2
fpu : yes
fpu_exception : yes
cpuid level : 13
wp : yes
flags : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm pbe syscall nx pdpe1gb rdtscp lm constant_tsc arch_perfmon pebs bts rep_good nopl xtopology nonstop_tsc aperfmperf eagerfpu pni pclmulqdq dtes64 monitor ds_cpl vmx est tm2 ssse3 fma cx16 xtpr pdcm pcid sse4_1 sse4_2 movbe popcnt tsc_deadline_timer aes xsave avx f16c rdrand lahf_lm abm ida arat epb xsaveopt pln pts dtherm tpr_shadow vnmi flexpriority ept vpid fsgsbase tsc_adjust bmi1 avx2 smep bmi2 erms invpcid
bogomips : 3591.40
clflush size : 64
cache_alignment : 64
address sizes : 39 bits physical, 48 bits virtual
power management:
processor : 3
vendor_id : GenuineIntel
cpu family : 6
model : 69
model name : Intel(R) Core(TM) i7-4500U CPU @ 1.80GHz
stepping : 1
microcode : 0x17
cpu MHz : 774.000
cache size : 4096 KB
physical id : 0
siblings : 4
core id : 1
cpu cores : 2
apicid : 3
initial apicid : 3
fpu : yes
fpu_exception : yes
cpuid level : 13
wp : yes
flags : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm pbe syscall nx pdpe1gb rdtscp lm constant_tsc arch_perfmon pebs bts rep_good nopl xtopology nonstop_tsc aperfmperf eagerfpu pni pclmulqdq dtes64 monitor ds_cpl vmx est tm2 ssse3 fma cx16 xtpr pdcm pcid sse4_1 sse4_2 movbe popcnt tsc_deadline_timer aes xsave avx f16c rdrand lahf_lm abm ida arat epb xsaveopt pln pts dtherm tpr_shadow vnmi flexpriority ept vpid fsgsbase tsc_adjust bmi1 avx2 smep bmi2 erms invpcid
bogomips : 3591.40
clflush size : 64
cache_alignment : 64
address sizes : 39 bits physical, 48 bits virtual
power management:
Jetzt bin ich total verwirrt. Es zeigt 4 Prozessoren mit 2 CPU-Kernen. Kann jemand diese Ausgabe erklären?
Sobald meine CPU-Auslastung 3,70 betrug, ist dies die maximale Auslastung? Noch zu diesem Zeitpunkt lag die CPU bei <50%.
Was ist mit Turbo-Boost? Sind alle Kerne turbogeladen oder nur physisch?
Gibt es eine Methode in Ubuntu, um die aktuelle CPU-Frequenz zu ermitteln, um festzustellen, ob der Prozessor auf Turbo-Boost geschaltet ist oder nicht?
Die Auslastung betrug bis 3,70 ca. 100%. Die CPU-Auslastung war jedoch aufgrund der IO-Antwortzeit nicht 100%. Dies bedeutet nicht, dass das E / A-Gerät die maximale Geschwindigkeit erreicht, das E / A-Gerät jedoch zu 100% ausgelastet ist. Dies wirkt sich unter Umständen auf Anwendungen aus, die E / A verwenden.
core id
). Dasphysical id
gibt dir den Chip (nehme ich an). Hier ist es 0 für alle Prozessoren, so dass Sie nur einen Chip haben.Antworten:
Die Wörter "CPU", "Prozessor" und "Kern" werden auf etwas verwirrende Weise verwendet. Sie beziehen sich auf die Prozessorarchitektur. Ein Core ist die kleinste unabhängige Einheit, die einen Universalprozessor implementiert. Ein Prozessor ist eine Zusammenstellung von Kernen (bei einigen ARM-Systemen ist ein Prozessor eine Zusammenstellung von Clustern, die selbst Zusammenstellungen von Kernen sind). Ein Chip kann einen oder mehrere Prozessoren enthalten (x86-Chips enthalten in diesem Sinne einen einzelnen Prozessor ).
Hyperthreading bedeutet, dass einige Teile eines Kerns dupliziert werden. Ein Kern mit Hyperthreading wird manchmal als Zusammenstellung von zwei „virtuellen Kernen“ dargestellt. Dies bedeutet nicht, dass jeder Kern virtuell ist, sondern dass der Plural virtuell ist, da es sich nicht wirklich um separate Kerne handelt und sie manchmal warten müssen, während sich der andere Kern befindet Verwenden eines gemeinsam genutzten Teils.
In Bezug auf Software gibt es nur ein Konzept, das fast überall nützlich ist: den Begriff der parallelen Ausführungsthreads. In den meisten Softwarehandbüchern werden die Begriffe " CPU" und " Prozessor" für alle Hardwarekomponenten verwendet, die Programmcode ausführen. In Bezug auf die Hardware bedeutet dies einen Kern oder einen virtuellen Kern mit Hyperthreading.
Somit
top
werden Ihnen 4 CPUs angezeigt, da Sie 4 Threads gleichzeitig ausführen können./proc/cpuinfo
hat 4 Einträge, einen für jede CPU (in diesem Sinne). Dieprocessor
Zahlen (die die Anzahl der Einträge in sind ) entsprechen diesen 4 Threads.cpuNUMBER
/sys/devices/system/cpu
/proc/cpuinfo
Dies ist eine der wenigen Stellen, an denen Sie Informationen darüber erhalten, welche Hardware diese Ausführungsthreads implementiert:cpu0
Dies bedeutet, dass einer von 4 Threads in der physischen Komponente (Prozessor) Nummer 0 ist und dass sich dieser in Core 0 unter 2 in diesem Prozessor befindet.quelle
Once my cpu load was 3.70, Is this maximum load? Still at that time cpu was at <50%.
,What about turbo boost ? Are all cores are turbo boosted or only physical ?
&How to check frequency.
uptime
Mit CPU meine ich CPU-Nutzung. Ich habe verstanden, warum. Aber wie überprüfe ich die Frequenz oder ob die CPU Turbo Boosted ist?top
,uptime
). Welche Hardwareeinheit sich mit Prozessen befasst, ist letztendlich eine Frage der Low-Level-Software (Kompilierung, Betriebssystem). Der cpuinfo-Bericht fasst die Tatsache zusammen, dass jeder physische Prozessor (einer von mehreren CPUs auf einem Chip) seine Rechenleistung durch technische Meisterleistungen wie Multithreading erweitern kann. Es wird "alles" als Prozessor betrachten, was sich jeweils um einen Prozess kümmern kann. Aus derBeantworten Sie einfach Ihre erste Frage. In der Ausgabe von sehen
cat /proc/cpuinfo
Sie folgende Informationen: -Sie können die Anzahl von
siblings is 4
und sehencpu cores is 2
.cpu cores
2 ist die Gesamtzahl der Kerne im Prozessor, die anhand der in der von Ihnen angegebenen Intel-URL angegebenen Spezifikation überprüft werden kann. Ähnlichsiblings
ist es mit der Anzahl der Threads, die von Intel HTT bereitgestellt wird.In ähnlicher Weise können Sie für die physische ID,
0
die angibt, dass es nur einen Prozessorchip gibt, und für die Kern-IDs sehen,0 and 1
dass sich 2 Kerne im Prozessor befinden.Update: Antworten zu den anderen Fragen hinzufügen.
Nun, ich sage, alle aktiven Kerne sind turboaufgeladen. Hey Kumpel, du hättest dir die Beispiele unserer geliebten Wikipedia ansehen sollen . Auch mit Berechnungen erklärt.
Turbo Boost oder nicht können Sie die Frequenzdetails in der Ausgabe von
lscpu
. Und für eine verfeinerte Ausgabe:quelle
lscpu
Befehl.Sie können dies im Terminal versuchen:
sudo lscpu
Auf diese Weise erhalten Sie einen Überblick über die physischen Eigenschaften Ihrer CPU. Was den Turbo-Boost betrifft oder nicht, so ist dies eine reine Hardwaresteuerung als das Betriebssystem selbst. Sofern Intel keine speziellen Treiber für Linux besitzt, mit denen die Prozessorgeschwindigkeit eingestellt werden kann, gibt es keinen soliden Anhaltspunkt für die Überprüfung des Turbo-Boost-Status (es sei denn, es gibt einen Befehlscode für Überprüfen Sie in anderen Foren, ob Hinweise auf Ihre Frage vorliegen.
Das erhalte ich, wenn ich den obigen Befehl eingebe. Mein AMD hat angegeben, dass es sich um einen Quad-Core handelt, aber mein physischer Core, der hier aufgeführt ist, ist nur 2 mit 2 Threads pro Core (das sind bis zu 4 Cores). Ich verwende AMD A10 APU-Prozessor 5750m.
quelle
Systemlast und CPU% sind zwei verschiedene Methoden, um zu messen, wie die CPU-Leistung verwendet wird.
Beide Maßnahmen sind miteinander verbunden, aber keineswegs identisch.
quelle