
Mein Prozessor hat 4 physische Kerne. Maximal 8 virtuelle Kerne pro Kern. Gilt folgendes:
Wenn Hyperthreading aktiviert ist, dann 4 x 2 = 8 logische Kerne. Das bedeutet 8 x 8 = 64 maximale virtuelle Kerne
Wenn Hyper-Threading nicht aktiviert ist, sind es maximal 4 x 8 = 32 virtuelle Kerne. Oder sind es immer 4x8=32 virtuelle Kerne?
Antwort1
Hallo, hier sind ein paar Grundlagen, die Ihnen beim Verständnis helfen:
1. Je mehr physische Kerne Sie haben, desto besser ist die Leistung
. 2. Logische Kerne in einem einzelnen physischen Prozessor helfen dem Prozessor beim Multitasking, aber nicht besser als ein dedizierter physischer Prozessor.
3. Hyper-Threading ist ein Prozess, um Multi-Core-Leistung in einem einzelnen physischen Kern zu erreichen
. 4. Hyper-Threading multipliziert keine logischen Kerne, ihre Implementierung ist bereits vom Hersteller festgelegt.
5. Hyper-Threading ermöglicht die Verteilung der CPU-Last auf die Kerne. Wenn eine stärkere Verteilung erforderlich ist, kann die Last innerhalb eines physischen Kerns mit verschiedenen Technologien wie Time Slicing, Round Robin usw. aufgeteilt werden.
Wenn Ihre CPU also 4 physische Kerne mit maximal 8 logischen/virtuellen Kernen pro Kern hat, dann sind es immer 4 x 8 = 32 Kerne.
Ich hoffe, das hilft Ihnen. :-)
Antwort2
Nein. In diesem Zusammenhang sind logische Prozessoren und „virtuelle Kerne“ dasselbe. Wenn Sie Hyperthreading aktivieren, haben Sie zwei logische Prozessoren pro physischem Kern. Insgesamt haben Sie also acht logische Prozessoren oder acht virtuelle Kerne, je nachdem, welchen Begriff Sie verwenden möchten.
Ohne Hyperthreading haben Sie nur ein LP pro physischem Kern.
Antwort3
Im Kontext von VMs/Hypervisoren (unter Berücksichtigung von Azure-VMs):
Der Hypervisor ist die Software, die für die Zuweisung von Rechenleistung an VMs zuständig ist. Nehmen wir an, wir haben zwei Arten von Hostprozessoren:
- Compute A: Hyperthread-Prozessor mit 4 physischen Kernen
- Compute B: Kein Hyperthread-Prozessor mit 4 physischen Kernen
Nehmen wir an, wir erstellen zwei VMs, eine, die weniger Rechenleistung benötigt (VM X), und eine, die mehr Rechenleistung benötigt (VM Y).
Berechnen Sie A:
- Der Hypervisor weist der VM X 1 physischen Kern als 1 virtuellen Kern zu.
- VM X erhält dann 2 logische Kerne, also 2 vCPUs
- Für VM X sind also 2 vCPUs, 2 logische Kerne, 1 virtueller Kern und 1 physischer Kern beteiligt.
- Der Hypervisor weist der VM Y 2 physische Kerne als 2 virtuelle Kerne zu
- VM Y erhält dann 4 logische Kerne, also 4 vCPUs
- Für VM Y sind also 4 vCPUs, 4 logische Kerne, 2 virtuelle Kerne und 2 physische Kerne beteiligt.
Berechnung B:
- Der Hypervisor weist der VM X 1 physischen Kern als 1 virtuellen Kern zu.
- VM X erhält dann 1 logischen Kern, also 1 vCPU
- Für VM X sind also 1 vCPU, 1 logischer Kern, 1 virtueller Kern und 1 physischer Kern beteiligt.
- Der Hypervisor weist der VM Y 2 physische Kerne als 2 virtuelle Kerne zu
- VM Y erhält dann 2 logische Kerne, also 2 vCPUs
- Für VM Y sind also 2 vCPUs, 2 logische Kerne, 2 virtuelle Kerne und 2 physische Kerne beteiligt.
Für eine VM gibt es keinen physischen Kern, sondern einen virtuellen Kern (der so gestaltet wird, dass er wie ein physischer Kern aussieht, genau wie die virtuelle Maschine selbst wie eine physische Maschine aussieht). Beachten Sie, dass wir hier davon ausgehen, dass 1 physischer Kern als 1 virtueller Kern für die VM dargestellt wird. Der Hypervisor kann jedoch entscheiden, 2 physische Kerne zusammenzulegen undabstraktsie als 1 virtuellen Kern für eine VM (oder allgemein können M physische Kerne in N virtuelle Kerne abstrahiert werden). Die logischen Kerne würden dann basierend auf dem Hyperthreading-Faktor folgen.
Die Anzahl der vCPUs entspricht der Anzahl der logischen Kerne, die ein virtueller Kern (und damit die zugrunde liegende Anzahl der physischen Kerne) unterstützt. [Quellen:Alan, Azur,VMWare]
Quelltext (falls Quell-Hyperlinks nicht funktionieren):