Swapan - Fotolia

F

Wann sollten Administratoren auf Hyper-Threading verzichten?

Mit Hyper-Threading können brachliegende CPU-Ressourcen zur Performance-Optimierung genutzt werden. Wann sollte man trotzdem lieber darauf verzichten?

Einer der größten Fehler, den unerfahrene Administratoren oft machen, ist die Annahme, dass ein zweiter Thread innerhalb eines CPU-Kerns effektiv dasselbe bewirkt, wie das Hinzufügen eines neuen CPU-Kerns. Diese Annahme ist aber schlicht falsch.

Das sogenannte Hyper-Threading fügt dem Prozessorkern nicht etwa neue Ressourcen hinzu, sondern ermöglicht lediglich, dass sich zwei Aufgaben die bestehenden Ressourcen teilen. Bei Prozessoren, die wenig ausgelastet sind, kann das tatsächlich einen merklichen Leistungsschub bewirken. Ein zweiter Thread kann so die Leerlaufzeit des Prozessors mit einer zusätzlichen Aufgabe füllen, wodurch in kürzerer Zeit mehr Berechnungen durchgeführt werden.

Und doch bietet Hyper-Threading keine automatische Erfolgsgarantie. Zum Beispiel benötigt ein erfolgreiches Hyper-Threading ein fähiges Scheduling-System, das in zeitgemäßen Betriebssystemen wie Windows Server 2016 normalerweise auch vorhanden ist. Betriebssysteme wie etwa Windows Server 2003, die von Hyper-Threading gar nichts verstehen, können mit der Technologie entsprechend auch nichts anfangen, selbst wenn der darunterliegende Prozessor Hyper-Threading unterstützt und diese Unterstützung auch im System-BIOS aktiviert ist.

In vergleichbarer Weise sinken die Leistungsvorteile von Hyper-Threading rein statistisch betrachtet ab, je mehr Kerne verfügbar sind. Zum Beispiel kann ein Einzel-Sockel-Prozessor durch Hyper-Threading von bis zu 30 Prozent Leistungszuwachs profitieren, während ein Zwei-Sockel-System in der Regel einen Zuwachs von nur 15 Prozent verzeichnen kann. Ein Vier-Sockel-System wiederum sollte vorab erst getestet werden, um die tatsächlichen Leistungsvorteile mit und ohne Hyper-Threading zu ermitteln. Auf Systemen mit vielen Kernen kann es sich als günstiger erweisen, einem Workload mehrere Kerne zuzuordnen, anstatt Hyper-Threading einzusetzen.

Gleichzeitig sollte man auch eher zurückhaltend mit Affinitäts-Regeln in Hypervisoren sein. Normalerweise bietet ein Hypervisor gutes Thread-Scheduling und die automatische Lastverteilung über alle physischen und logischen (wenn Hyper-Threading aktiviert ist) CPU-Kerne hinweg. Die Einrichtung der CPU-Affinität virtueller Maschinen stört diese Hypervisor-Funktionen, was die Performance der Workloads beeinträchtigt.

Einzelne CPU-Affinitätseinstellungen können sogar die Fähigkeit des Hypervisors ausbremsen, benötigte Ressourcenreservierungen für einzelne virtuelle Maschinen vorzunehmen. In Fällen, in denen die CPU-Affinität erfolgreich eingesetzt wird, kann eine Migration der virtuellen Maschine auf andere Server mit einer abweichenden Anzahl an Prozessoren die CPU-Affinitätseinstellungen brechen. Es ist daher meist am besten, dem Hypervisor oder Betriebssystem die Aufgabe zu überlassen, solche Konfigurationen automatisch durchzuführen.

Zu guter Letzt sollte man aber auch nie die Rolle des Workloads ignorieren. Eine Applikation, die nicht für Hyper-Threading optimiert ist, wird zum Beispiel nie besonders viel von mehreren logischen Prozessoren profitieren. Über Hyper-Threading lässt sich die Performance einer solchen Applikation also kaum verbessern.

Auch Arbeitslasten, die die Ausführungsressourcen füllen oder signifikante Datenübertragungen aus dem und in den Arbeitsspeicher verlangen (Memory I/O), profitieren nicht sonderlich vom Hyper-Threading. Man sollte sich also zunächst darüber im Klaren sein, um welche Art Workload es geht, bevor man zu Hyper-Threading greift oder diese Applikationen auf Systeme migriert, auf denen Hyper-Threading aktiv ist.

Hyper-Threading kann dafür sorgen, dass eine zweite Aufgabe brachliegende Prozessorressourcen effizienter ausnutzt. Es ist ein bewährtes Mittel, um mit bestehenden Prozessoren mehr Arbeit zu erledigen, ohne neue Server kaufen oder Prozessoren hinzufügen oder aktualisieren zu müssen. Hyper-Threading eignet sich aber ganz klar nicht pauschal für jeden beliebigen Workload.

Folgen Sie SearchDataCenter.de auch auf Twitter, Google+ und Facebook!

Artikel wurde zuletzt im November 2016 aktualisiert

Erfahren Sie mehr über Containervirtualisierung

- GOOGLE-ANZEIGEN

ComputerWeekly.de

Close