• Home
  • Help
  • Register
  • Login
  • Home
  • Help

 
  • 0 Bewertung(en) - 0 im Durchschnitt

Wie wirkt sich Virtualisierung auf CPU-Benchmark-Tests aus?

#1
24-06-2024, 08:10
Wenn es um die CPU-Benchmark-Tests geht, werdet ihr feststellen, dass die Umgebung, in der die Tests durchgeführt werden, einen großen Einfluss auf die Ergebnisse haben kann. Ich habe an genügend Leistungsbewertungen teilgenommen, um zu wissen, dass es beim Arbeiten mit virtuellen Instanzen knifflig werden kann. Es geht nicht mehr nur um die technischen Daten der CPUs; wie ihr diese Umgebungen einrichtet, kann wirklich beeinflussen, was ihr in den Benchmarks seht.

Stellt euch Folgendes vor: Ihr testet einen Ryzen 9 5900X von AMD, der in Bezug auf Multithreading und Gaming-Leistung eine absolute Bestie ist. Wenn ihr diesen leistungsstarken Chip auf einem Bare-Metal-Server betreibt, wird er wahrscheinlich glänzen und tolle Einzelkern-Ergebnisse sowie unglaubliche Multi-Core-Leistungen liefern. Wenn ihr nun denselben Prozessor in eine virtuelle Instanz steckt - sagen wir, auf VMware oder Hyper-V - habt ihr plötzlich eine ganze Reihe von Variablen eingeführt, die eure Ergebnisse erheblich beeinflussen können.

Wenn ihr einen Arbeitslast in einer virtuellen Umgebung ausführt, arbeitet ihr mit verschiedenen Abstraktionsschichten. Bei Hypervisoren etwa läuft die CPU nicht einfach so, wie ihr es auf einer einzelnen Maschine tun würdet. Der Hypervisor verwaltet die Ressourcenzuteilung, was bedeutet, dass er diese CPU-Ressourcen auf potenziell viele verschiedene virtuelle Maschinen verteilt. An diesem Punkt habt ihr einen Konflikt eingeführt, der eure Leistungsergebnisse verzerren kann.

Nehmt an, ihr richtet eine virtuelle Umgebung mit dem Ryzen 9 ein. Wenn sie richtig konfiguriert ist, könntet ihr denken: "Hey, das ist immer noch ziemlich leistungsstark", aber ich habe Fälle gesehen, in denen ihr durch die Anzahl der zugewiesenen Kerne oder Threads eingeschränkt werden könnt. Wenn eurer virtuellen Maschine nur wenige Kerne zugewiesen sind, obwohl die zugrunde liegende CPU viel mehr bieten kann, wird euer Benchmark diese Einschränkung widerspiegeln. Und das ist frustrierend, weil ihr die Hardware im Grunde begrenzt, ohne es zu merken.

Jetzt denkt an die Testwerkzeuge, die ihr verwendet. Viele Benchmark-Programme wie Cinebench oder Geekbench sind darauf ausgelegt, CPUs an ihre Grenzen zu bringen. Wenn ich Tests durchführe, achte ich auf konsistente Ergebnisse, die die tatsächliche Leistung widerspiegeln, und in einer virtuellen Umgebung können diese Ergebnisse stark variieren, je nachdem, wie die Arbeitslast verwaltet wird. Wenn ihr beispielsweise Cinebench auf einer virtuellen Maschine ausführt, die um Ressourcen kämpft, könnten eure Ergebnisse das widerspiegeln und euch ein falsches Gefühl dafür geben, wie gut eine CPU tatsächlich funktioniert.

Ich habe oft Leistungskennzahlen überwacht, während ich Benchmarks sowohl auf Bare-Metal- als auch auf virtuellen Systemen durchführe. Die Abweichungen können manchmal sogar über 20 % betragen, was verrückt ist! Wenn ihr Ergebnisse über verschiedene Konfigurationen hinweg vergleicht, müsst ihr euch dieser potenziellen Diskrepanzen bewusst sein, insbesondere wenn ihr Entscheidungen für Implementierungen oder Upgrades trefft. Wenn ihr und ich ein neues Server-Setup basierend auf Benchmark-Ergebnissen erstellen würden, würden wir einen großen Fehler machen, wenn wir nicht berücksichtigen, wie die Virtualisierung diese Zahlen verändert.

Die Netzwerkverbindung kann auch zusätzliche Faktoren einführen. Wenn eine CPU Aufgaben isoliert bearbeitet, ohne den Overhead, den der Netzwerkverkehr in einer virtuellen Umgebung mit sich bringt, läuft sie in der Regel besser. Sobald ihr jedoch Netzwerk-I/O hinzufügt, könnt ihr erhebliche Verzögerungen feststellen. Ich erinnere mich an ein Projekt, bei dem ich einen Intel Core i9-10900K in einer VM zur Diagnose genutzt habe. Die Benchmarking-Tools zeigten an, dass die Leistung im Vergleich zu den erwarteten Ergebnissen unterdurchschnittlich war, weil die VM um Bandbreite mit anderen Arbeitslasten kämpfte.

Ihr fragt euch vielleicht, wie der Speicher in diese ganze Situation hineinspielt. Die Speicherzuweisung in einer virtuellen Umgebung kann zu einem weiteren Flaschenhals führen. Mit Intels Speicherarchitektur kann es einen gewissen Overhead geben, wenn Speicher zwischen verschiedenen VMs geteilt werden muss. Wenn ihr nicht vorsichtig seid, könntet ihr mit suboptimalen Speicherkonfigurationen enden, die die CPU-Leistung beeinflussen. Dies kann oft unbemerkt bleiben, wenn ihr euch ausschließlich auf die CPU-Spezifikationen konzentriert und ignoriert, wie die Ressourcen verwaltet werden.

Der Zeitpunkt der Benchmarks kann auch eine andere Geschichte erzählen. Wenn ich die Leistung teste, achte ich normalerweise genau auf die Tageszeit und darauf, ob andere Prozesse die Benchmarks beeinflussen könnten. In einer virtualisierten Umgebung könnten andere Benutzer potenziell CPU-Ressourcen in Anspruch nehmen, was zu schwankenden Leistungszahlen führt. Ich hatte einmal einen Fall, in dem ich einen AMD EPYC-Server in einer Produktionsumgebung benchmarkte und die Ergebnisse erheblich beeinflusst wurden, nur weil andere Benutzer ihre Arbeitslasten während meines Testzeitraums ausführten. Diese Variablen können die gesamte Test-Erfahrung stören.

Außerdem lasst uns über einige der Werkzeuge sprechen, die für das Benchmarking verwendet werden. Einige Werkzeuge eignen sich besser für Tests in einer virtuellen Umgebung, während andere die tatsächliche Leistung möglicherweise nicht angemessen widerspiegeln. Zum Beispiel kann das Ausführen einer schweren Anwendung wie Blender für Renderaufgaben in einer VM aufgrund des Umwelt-Overheads schlechtere Ergebnisse liefern. Wenn ihr jedoch weniger anspruchsvolle Aufgaben ausführt, vielleicht etwas wie Prime95, könntet ihr Ergebnisse erhalten, die näher an der tatsächlichen Leistung liegen, die ihr von der CPU erwarten würdet, obwohl sie aufgrund des zugrunde liegenden Ressourcenmanagements dennoch nicht voll repräsentativ sind.

Ein weiterer Faktor, der Benchmarks beeinflusst, ist die Hyper-Threading-Funktion, die viele CPUs bieten. Auf physischen Maschinen kann Hyper-Threading die Multi-Thread-Leistung verbessern, indem es euch mehr Threads zur Verfügung stellt. In einer VM kann Hyper-Threading jedoch manchmal zu Leistungseinbußen führen, je nachdem, wie die Arbeitslasten über die virtuellen Kerne verteilt sind. Ich erinnere mich, dass ich ein Dual-Xeon-Setup für eine Unternehmensanwendung optimiert habe, und während Hyper-Threading in den meisten Anwendungsfällen erhebliche Verbesserungen brachte, war es großartig, ein paar ehrliche Bewertungen zu haben, wie es die Leistung unter schwerem Last in einer VM-Umgebung beeinflusste.

Es ist auch definitiv erwähnenswert, dass es zu einer thermischen Drosselung kommen kann. In einer virtuellen Umgebung könntet ihr aufgrund von eingeschränktem Luftstrom, abhängig von der Konfiguration der physischen Maschine, höhere Temperaturen feststellen. Ich habe Fälle gesehen, in denen die thermische Drosselung die Arbeitslasten, die auf einem Hypervisor liefen, beeinträchtigte, was zu Inkonsistenzen in den Benchmarks führte. Wenn ihr die Temperaturen während des Testens nicht überwacht, verpasst ihr möglicherweise diesen kritischen Aspekt, der eure gesamte Benchmarking-Session beeinträchtigen kann.

Wenn ihr all diese Faktoren abwägt, ist es wichtig zu erinnern, dass die Virtualisierung Flexibilität und Ressourcenauslastung ermöglichen kann, aber auch die Leistungsbewertung beeinträchtigen kann, es sei denn, ihr geht sie durchdacht an. Es ist leicht, sich von den Konfigurationen mitreißen zu lassen und zu vergessen, wie sie die Endergebnisse beeinflussen. Ich wünschte, jemand hätte mir das erklärt, als ich anfing, da meine anfänglichen Benchmarks oft irreführend waren, weil ich die Feinheiten der Virtualisierung übersehen habe.

Wenn ich euch einen Ratschlag geben dürfte, wäre es, immer mehrere Schichten eurer Architektur zu berücksichtigen, wenn ihr die CPU-Leistung in diesen Umgebungen messt. Dokumentiert immer eure Ressourcenzuteilung, testet verschiedene Konfigurationen gründlich und versucht euer Bestes, um die Variablen zu isolieren. Und wenn ihr Zweifel habt, führt Benchmarks in beide Richtungen durch - sowohl auf physischer Hardware als auch in einem Hypervisor -, um eine umfassendere Perspektive auf die Leistung zu erhalten.

Letztendlich wird das Verständnis, wie die Virtualisierung CPU-Benchmarks beeinflusst, euch besser für zukünftige Entscheidungen positionieren. Während ihr weiterhin die Landschaft erkundet, haltet ein Auge darauf, wie ihr eure Tests einrichtet, denn das kann einen riesigen Unterschied in der Interpretation der Ergebnisse und der Optimierung eurer IT-Infrastruktur machen.
Markus
Offline
Registriert seit: Jun 2018
« Ein Thema zurück | Ein Thema vor »

Benutzer, die gerade dieses Thema anschauen:



  • Thema abonnieren
Gehe zu:

Backup Sichern Allgemein CPU v
« Zurück 1 2 3 4 Weiter »
Wie wirkt sich Virtualisierung auf CPU-Benchmark-Tests aus?

© by FastNeuron

Linearer Modus
Baumstrukturmodus