Warum die Verwendung von Hyper-Threading zu Leistungseinbußen führen kann


10

Ich habe an verschiedenen Stellen wie dieser gelesen , dass Hyper-Threading zu Leistungseinbußen führt.

Ich kann nicht verstehen, warum oder wie Hyper-Threading zu einer Verschlechterung führt.

Warum es so ist, dass selbst wenn das Betriebssystem durch Hyper-Threading freie Ressourcen nutzen kann, die Verschlechterung auftritt.

Obwohl Benchmarks Hyper-Threading als Schuldigen anzeigen, kann mir jemand den Grund dafür erklären.

Vielen Dank

Antworten:


8

Es scheint, dass die Antwort wie üblich etwas mit Caches zu tun hat. Da Hyper-Threads dieselben L1- und L2-Caches verwenden, kann ein Hyper-Thread die Caches eines anderen in den Papierkorb werfen. Im schlimmsten Fall werfen die Threads abwechselnd den Cache des anderen in den Papierkorb und die Leistung nimmt ab, da die Caches neu gefüllt werden, um dann erneut in den Papierkorb verschoben zu werden.

Dies ist wahrscheinlich sehr arbeitslastspezifisch, was erklären würde, warum das Problem hauptsächlich auf Servern auftritt.

Es ist auch erwähnenswert, dass die Antwort teilweise davon abhängt, was Sie unter "Leistung" verstehen. In Echtzeitsystemen ist Ihre Leistungsmetrik beispielsweise Vorhersagbarkeit anstelle von Durchsatz, was sich durch die Einführung unvorhersehbarer Verzögerungen negativ auf das Hyper-Threading auswirkt.

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.