Hyper-Threading und virtuelle Maschinen?

15

Ich habe mir diesen Thread bereits angesehen: Hyper-V und Hyper-Threading: Ein oder aus? , aber die einzige Antwort ist Windows-spezifisch ....

Ich baue einen VM-Server auf (mit Proxmox VE, wenn das einen Unterschied macht) und frage mich, wie sich Hyper-Threading auf virtuelle Maschinen auswirken kann ...

Würde Hyper-Threading helfen oder die Leistung beeinträchtigen, wenn ich die Anzahl der virtuellen Maschinen maximiere?

Die größten virtuellen Maschinen sind außerdem ein Terminalserver mit ca. 30 Clients (4 Kerne / 8 GB RAM) und ein Dateiserver, falls dies hilfreich ist.

Update: Der Server ist ein Dell R410 mit 1 TB RAID 10, 32 GB RAM und Dual Intel Xeon E5530.

Update: Die meisten VMs werden auf KVM ausgeführt.

Soviero
quelle
Bitte geben Sie die Spezifikationen des Servers an, den Sie verwenden möchten.
Ewwhite
Auch neugierig. Warum Promox VE gegen ESXi?
Ewwhite
Wahrscheinlich aufgrund des ESXI-Limits von 16 GB RAM für die kostenlose Lizenz
Tacticus
3
Ich entscheide mich für Proxmox gegenüber ESXi, da Proxmox einige zusätzliche Funktionen bietet, z. B. die vollständige Verwaltung über eine Web-GUI, Clustering, die Serverspezifikationen werden nicht durch Lizenzen künstlich eingeschränkt, und einige andere, an die ich mich nicht ganz erinnern kann. Plus, 2.0 wird AD-Authentifizierung enthalten, die für uns sehr nützlich ist, nicht sicher, ob es ESXi tut ...
Soviero
1
Hast du dir oVirt angesehen?
Dyasny

Antworten:

12

Im Allgemeinen lasse ich HyperThreading ON für VM Host - Servern (VMWare ESXi, KVM, HyperV, etc.). Dies gilt für Intel Nehalem und neuere CPUs (5500-Serie und höher). Zusätzliche Threads zum Planen mehrerer VMs verfügbar.

Möglicherweise möchten Sie auch die Größe Ihrer Gastsysteme neu bewerten. Normalerweise ist es am besten, bei der CPU-Zuweisung mit virtuellen Maschinen klein anzufangen. Da es sich um einen Terminalserver handelt, würde ich das eigentlich auf 2 virtuelle CPUs anstatt auf 4 vCPUs verschieben. Für den Hypervisor ist es einfacher, die CPU-Zeit für VMs mit einer geringeren Anzahl von Kernen zu planen . Der Arbeitsspeicher ist jedoch nach wie vor von entscheidender Bedeutung. Stellen Sie daher sicher, dass genügend Arbeitsspeicher zur Verfügung steht.

Siehe: http://omtconcepts.com/wp/?p=14

ewwhite
quelle
Wie genau sind zwei Threads schneller als vier?
Soviero
3
Nicht schneller ... Einfacher zu planen. Siehe meine Bearbeitung. Der von Ihnen erwähnte Computer verfügt über insgesamt 8 Kerne (16 mit HyperThreading). Der Versuch, die Ressourcen für die Planung eines 4-vCPU-Gasts zu finden, ist schwieriger als bei 2-vCPUs. Sie werden mehr Konflikte haben (und damit weniger Leistung). Wenn Sie andere virtuelle Gäste auf diesem Server ausführen möchten, ist es sinnvoll, 1 und 2 vCPU-Gäste zu verwenden.
Ewwhite
3
Ihr Planungsaspekt gilt nur für Hypervisoren, die eine "Gruppenplanung" durchführen, bei der versucht wird, "alle oder keine" virtuellen Prozessoren gleichzeitig zu approximieren. Für Hypervisoren, die dies tun, wird das Hinzufügen weiterer virtueller Prozessoren die Planung der VM erschweren. Ich verstehe, dass Kevin seine Frage aktualisiert hat, um festzulegen, dass er hauptsächlich KVM verwenden möchte. Aber ich möchte darauf hinweisen, dass Hyper-V keine Gangplanung durchführt. Es basiert auf der Paravirtualisierung des Gastbetriebssystems, um die Notwendigkeit einer Gangplanung zu vermeiden.
Jake Oshins
Ich wusste das nicht über Hyper-V, aber das gilt für die anderen großen Hypervisoren.
Ewwhite
1
KVM gruppiert sich nicht nach Zeitplan. Tatsächlich tut dies nur VMWare, und sogar sie haben einige Mechanismen hinzugefügt, um den Gang-Scheduling-Wahnsinn in v5
dyasny
4

Es kommt wirklich darauf an. Wenn Sie, wie Sie bereits sagten, die maximale CPU-Auslastung erreichen, was meiner Meinung nach bedeutet, dass die CPU insgesamt ausgelastet ist (weisen Sie mehr virtuelle CPU-Kerne zu, als Sie zur Verfügung haben, oder genau so viele, wie Sie zur Verfügung haben), dann sollte HT dies auf jeden Fall sein auf.

Wenn Sie nicht überlastet sind, ist es normalerweise besser, unter Ihren spezifischen Belastungen zu testen - manchmal kann HT die Leistung tatsächlich beeinträchtigen.

dyasny
quelle
Ich plane, genau so viele Kerne / Threads zuzuweisen, wie verfügbar sind, aber ich plane nicht, zu viel zuzuweisen.
Soviero
Glauben Sie, dass das Host-Betriebssystem überhaupt keine CPU-Zeit benötigt? Und wenn Sie so viele V-Cores zuweisen, wie Threads mit aktivierter HT-Funktion vorhanden sind, wird die Gesamtzuweisung um mindestens 70-80% ausgeführt, da HT in der Regel um 20-30% höher ist als die Leistung 100%, wie man es von der Fadenzahl annehmen könnte.
Dyasny
Ok, also nicht mehr als 12 "Kerne" (75% von 16) zugeteilt?
Soviero
1
Ich glaube, ich war nicht klar genug. Sie KÖNNEN insgesamt zuordnen, und je nach Auslastung der VMs wird die CPU möglicherweise überhaupt nicht zum Engpass. Darüber hinaus sollten Sie einer VM niemals mehr CPUs zuweisen, als sie unbedingt benötigt, da es umso schwieriger ist, einen Zeitplan zu erstellen, je mehr CPUs die VM hat, so dass viele v-cpus die Leistung tatsächlich beeinträchtigen können. Was den 20-prozentigen Leistungszuwachs durch Hyperthreading betrifft - dies ist kein absoluter Wert -, so kann der Wert je nach VM-Auslastung geringfügig höher, niedriger, null oder sogar negativ sein.
Dyasny
Oh ok. Vielen Dank.
Soviero
3

Es gibt viele Variablen, die sich auf die VM-Leistung auswirken. HT ist nur eine der Variablen, hängt aber auch von der Konfiguration der VM ab.

Eine der Variablen, die sich auf HT auswirkt, hängt vom Typ des verwendeten Hypervisors ab.

Wenn Sie schlanke virtuelle Maschinen wie VZ, VServer usw. verwenden, ist es ziemlich offensichtlich, dass HT geeignete Vorteile bietet, da diese VMs nicht wirklich isoliert sind und eher der Ausführung von Multithread-Software ähneln.

Wenn Sie schwere virtuelle Maschinen wie KVM, Xen HVM usw. verwenden, kann es vorkommen, dass HT zu Beeinträchtigungen führt, z. B. wenn einer VM zwei CPUs zugewiesen werden, jedoch jeweils eine HT auf verschiedenen Kernen verwendet wird.

Am besten testen Sie Ihr Setup, um zu sehen, was zu Ihnen passt.

Sybreon
quelle