2010-11-26 4 views

Antwort

10

Das sys-Dateisystem kennt alle dazu:

$ ls /sys/devices/system/cpu 
cpu0 cpu2 cpuidle possible sched_mc_power_savings 
cpu1 cpu3 online present 

$ ls /sys/devices/system/cpu/cpu0/topology/ 
core_id  core_siblings_list thread_siblings 
core_siblings physical_package_id thread_siblings_list 

Hier ist die documentation

dieses Dateisystem verwenden, können Sie herausfinden, wie viele CPUs Sie haben, wie viele Threads sie haben, welche CPUs sind neben welchen anderen CPUs, und welche CPUs teilen Caches mit welchen anderen.

Zum Beispiel - Q: Welche CPUs teilt CPU L2 mit seinem L2-Cache?

$ cat /sys/devices/system/cpu/cpu0/cache/index2/{type,level,shared_cpu_list} 
Unified 
2 
0-1 

A: Es teilt seinen vereinigten L2-Cache mit cpu1 (und sich selbst).

Weiteres Beispiel: Q: die CPUs in der gleichen physikalischen Paket als CPU0 sind (auf eine größere Maschine):

cat /sys/devices/system/cpu/cpu0/topology/core_siblings 
00000000,00000000,00000000,00000000,00000000,00000000,00000000,00000055 

A: Kerne 0, 2, 4 und 6 (von dem Bitmuster genommen oben, haben lsb = cpu0)


nicht alle linux-Systeme die sys-Dateisystem in, und es ist nicht immer in root. (möglicherweise in proc/sys?). Das Formular thread_siblings_list ist nicht immer verfügbar, aber thread_siblings (Bitmuster) ist eins.

-2

Um die niedrigsten Details über den Prozessor zu erhalten, könnte ein Systemingenieur das Äquivalent zu CPUZ ausführen und die niedrigsten Ebenen erreichen, wenn dies für die Privat- oder Büroadresse zulässig ist, wo der Prozessor installiert und verwendet werden soll. Softwareingenieuren und -entwicklern ist es normalerweise nicht gestattet, diese Detailgenauigkeit zu kennen, aber ich kann Ihnen sagen, dass die Architektur von dem Typ sein kann, bei dem ein Prozessor einen virtuellen zweiten Prozessor erzeugt oder in der Nähe von x1.75 verarbeitet physische Mehrfachkerne auf demselben Chip unter Verwendung von Technologie und Steuerungsmethoden als Verbesserungen von früheren Implementierungen des Entwurfs. Der Core-Prozessor verfügt über eine Schnittstelle für Systemprogrammierer, Anwendungsentwickler und diese Art des Zugriffs wäre die Erwartung von Intel, Details, die von ihnen verfügbar sind.

2

Ich fand lstopo der hwloc project ziemlich nützlich. Dies gibt Ihnen eine grafische Ausgabe (basierend auf Informationen in /proc und /sys als Alex Brown beschrieben) der Topologie Ihres Systems (siehe ihre Webseite für ein Beispiel).Von der grafischen Ausgabe, die Sie leicht

  • wenn Hyperthreaded Kerne vorhanden sind
  • die CPU-Nummern entsprechen, sind verschiedene Hyper-Threads auf dem gleichen physischen Kern
  • wie viele CPU-Sockel verwendet werden
  • sehen
  • die Kerne teilen die L3-Cache
  • wenn der Hauptspeicher zwischen CPU-Sockel oder ob Sie auf einem NUMA-System
üblich ist

usw.

Wenn Sie programmgesteuert auf diese Informationen zugreifen müssen, gibt es einige Dokumentationen, wie hwloc als Bibliothek verwendet werden kann.

Verwandte Themen