Ich habe hier einen Intel i7 2700k und möchte wissen, wie ich feststellen kann, welche Prozessoren physisch und welche virtuell sind (dh Hyperthreading). Ich führe derzeit ein Conky-Skript aus, um meine CPU-Temperaturen, Frequenzen und Lasten anzuzeigen, bin mir aber nicht sicher, ob ich es richtig gemacht habe:
Ich habe mein eigenes Skript geschrieben, um Temperaturen und Frequenzen zu ermitteln i7z
, aber diese beziehen sich nur auf physische Kerne. Ich zeige momentan jeden Kern so an:
${cpu cpu1} ${lua display_temp 0} ${lua display_load 0}
${cpu cpu2}
${cpu cpu3} ${lua display_temp 1} ${lua display_load 1}
${cpu cpu4}
# ...
Ich bin nicht sicher, ob das richtig ist, wegen der Belastungen und Temperaturen, die ich manchmal sehe. In /proc/cpuinfo
, wie werden die Kerne sortiert? Erst alles physisch, dann alles virtuell? Jeder physische Kern dann seine virtuellen Kerne? Wie werden sie sortiert?
ht
Flag zeigt nur an, dass Multi-Threading (HTT) von der CPU unterstützt wird - nicht, ob es aktiviert ist oder nicht. Selbst dann kann man sich nicht immer darauf verlassen, dass beispielsweise ein i5 i5-6500 fälschlicherweise HTT unterstützt: ark.intel.com/content/www/us/en/ark/products/88184/…Die vorherige Antwort ist sehr interessant.
Nach einigem googeln habe ich einige verwandte Themen gefunden:
/server/235825/disable-hyperthreading-von-mit-linux-nicht-zugriff-auf-bios
/programming/7274585/linux-find-out-hyper-threaded-core-id
Prüfen, ob HyperThreading aktiviert ist oder nicht?
Bei der letzten Verknüpfung funktioniert das Python-Skript nicht, wenn Ihr Host über viele physische IDs verfügt. Ich habe versucht, es mit einer anderen Bedingung am Ende zu ändern:
Ändern:
zu
Aber es funktioniert nicht wie erwartet, basierend auf der vorherigen Nachricht. Übrigens können Sie etwas umfassenderes tun als:
mit:
[...]
Was bei einem Host mit vielen Kernen mit aktivierter Hyperthreading-Funktion interessant ist, ist die Verteilung der logischen Kerne auf der Hardware.
Zum Beispiel auf einem meiner Computer (48 logische Kerne, 2 physische Prozessoren, 24 (12 * 2) "reale Kerne" (also auch 24 virtuelle Kerne)):
Dies bedeutet, dass cpu0 und cpu24 dieselbe physikalische Hardware- "Adresse" haben. Gleiches gilt für cpu1 und cpu25 ...
Wenn ich also Hyperthreading unter meinem Linux-Betriebssystem deaktivieren möchte, sollte ich '0' in CPU {24..47} / online mit setzen
Sie werden feststellen, wie interessant mein System die Kerne nummeriert.
quelle
Sie können auch lscpu verwenden:
Hier gehen die logischen Kerne 0 und 4 zu Kern 0
quelle