Warning
Hinweis: Dieser Inhalt wurde durch automatische Übersetzung erstellt und kann Ungenauigkeiten enthalten. Für die genauesten und aktuellsten Informationen lesen Sie bitte die englische Originalversion.
Dieser Artikel ist Teil einer technischen Artikelserie zum Thema VMware-Alternativen und beleuchtet die Technologien moderner Virtualisierungsplattformen. Im vorherigen Artikel haben wir untersucht, wie Sangfor intelligente Mikrosegmentierung zum Schutz des Ost-West-Datenverkehrs zwischen virtuellen Maschinen einsetzt. In diesem Artikel konzentrieren wir uns auf NUMA-basiertes Scheduling und dessen Auswirkungen auf die Virtualisierungsleistung.

Da immer mehr Unternehmen geschäftskritische Workloads auf virtualisierte, hyperkonvergente und Cloud-Infrastrukturen verlagern, hat die Performance bei hoher Parallelität höchste Priorität. Für Teams, die einen VMware-Ersatz evaluieren, geht es nicht nur darum, ob eine andere Plattform ähnliche Funktionalitäten bietet, sondern auch darum, ob sie die von zentralen Geschäftssystemen geforderte Latenz, den Durchsatz und die Stabilität gewährleisten kann.

Diese Herausforderung zeigt sich besonders deutlich bei speicherintensiven Anwendungen, darunter Hochfrequenzhandel und Risikomanagement im Finanzdienstleistungssektor, elektronische Patientenaktensysteme im Gesundheitswesen und Lagerverwaltungssysteme in der Logistik. Deren steigende Anforderungen an den Speicherzugriff hängen eng mit Backend-Komponenten wie Redis, Apache Spark, SAP HANA und KI-Engines bzw. -Modellen zusammen. Redis beispielsweise ist eine In-Memory-Datenbank, deren Performance direkt von der Speicherzugriffsgeschwindigkeit abhängt.

NUMA ist mittlerweile eine gängige Server-CPU-Architektur. Die Verbesserung der Speicherzugriffseffizienz unter NUMA ist daher ein wichtiger Aspekt der Virtualisierungs-Leistungsoptimierung. Dieser Artikel erläutert die NUMA-Optimierungstechnologien von Sangfor und wie sie Virtualisierungsplattformen dabei unterstützen, hochgradig parallele, geschäftskritische Workloads während des VMware- Ablösungsprozesses zu bewältigen.

TEIL 1. NUMA-Architektur – Hintergrund

Frühe Computersysteme nutzten typischerweise einen einzigen Prozessor für alle Rechenaufgaben. Da die Anwendungen immer komplexer und anspruchsvoller wurden, konnte ein einzelner Prozessor den Anforderungen an Hochleistungsrechnen nicht mehr gerecht werden, und die Systeme entwickelten sich schrittweise hin zu Mehrkernarchitekturen.

Herkömmliche Mehrkernsysteme nutzten üblicherweise symmetrisches Multiprocessing (SMP). Bei SMP haben alle Prozessoren den gleichen Status und die gleichen Zugriffsrechte auf den Speicher. Jeder Thread kann auf jedem Prozessor ausgeführt werden, was eine effektive Lastverteilung ermöglicht und die Gesamtleistung sowie den Durchsatz verbessert. Da jedoch mehrere Kerne denselben Bus für den Speicherzugriff nutzen, kann dieser mit zunehmender Kernanzahl zum Flaschenhals werden und Skalierbarkeit und Leistung einschränken.

Abbildung 1: Engpass beim Zugriff auf den gemeinsam genutzten Busspeicher in traditionellen SMP-Architekturen.

Abbildung 1: Engpass beim Zugriff auf den gemeinsam genutzten Busspeicher in traditionellen SMP-Architekturen.

NUMA behebt den Speicherzugriffsengpass von SMP-Systemen. In einer NUMA-Architektur ist das System in mehrere Knoten unterteilt, von denen jeder einen oder mehrere Prozessoren, lokalen Speicher und E/A-Geräte enthält. Die Knoten kommunizieren über Hochgeschwindigkeitsverbindungen wie AMD HyperTransport oder Intel QuickPath Interconnect (QPI). Dadurch können die Prozessoren zuerst auf den lokalen Speicher zugreifen, was die Speicherzugriffslatenz reduziert und die Leistung des Mehrprozessorsystems verbessert.

Abbildung 2: Multi-Node-NUMA-Architektur mit knotenlokaler CPU- und Speicherzuweisung.

Abbildung 2: Multi-Node-NUMA-Architektur mit knotenlokaler CPU- und Speicherzuweisung.

Ein NUMA-System enthält drei Knotentypen:

  • Lokaler Knoten: Für die CPUs innerhalb eines bestimmten Knotens ist dieser Knoten der lokale Knoten.
  • Nachbarknoten: Ein Knoten, der an den lokalen Knoten angrenzt.
  • Remote-Knoten: Ein Knoten, der weder lokal noch benachbart ist.

Die CPU-Zugriffsgeschwindigkeit variiert je nach Knotentyp. Lokaler Speicher ist am schnellsten zugänglich, entfernter Speicher am langsamsten. Im Allgemeinen verlangsamt sich der Speicherzugriff mit zunehmender topologischer Distanz.

In „NUMA: Ein Überblick“ stellte Dr. Christoph Lameter fest, dass auf einem High-End-Zwei-Knoten-Server im Jahr 2013 die Latenz beim zufälligen Zugriff auf den lokalen Speicher etwa 100 ns betrug, während der Zugriff auf den entfernten Speicher die Latenz um etwa 50 % erhöhte.

TEIL 2. Herausforderungen durch NUMA

In Linux ist ein Thread die Grundeinheit der CPU-Planung und entspricht einem Task in der CPU-Warteschlange. Der Kernel wählt für jeden Task eine relativ freie CPU aus. Da die CPU-Auslastung dynamisch schwankt, nutzt der Kernel Load Balancing, um Tasks auf weniger ausgelastete CPUs zu verteilen. Standardmäßig kann ein Task daher zwischen verschiedenen CPUs wechseln.

Unter NUMA kann ein Prozess von einer CPU auf Knoten 1 zu einer CPU auf Knoten 2 verschoben werden, während er weiterhin auf den auf Knoten 1 zugewiesenen Speicher zugreift, was zu knotenübergreifenden Zugriffen führt. Der Linux-NUMA-Speicherausgleich migriert Prozesse oder Speicherseiten regelmäßig zum lokalen Knoten, kann aber nicht alle Zugriffe auf entfernten Speicher unterbinden.

In einer virtualisierten Umgebung entspricht jede virtuelle CPU (vCPU) eines Threads des Host-Betriebssystems. Wenn mehrere vCPU-Threads auf verschiedenen NUMA-Knoten ausgeführt werden und sich dabei den Speicher teilen oder zwischen Knoten migrieren, kann die VM auf Speicher über NUMA-Knoten hinweg zugreifen und dadurch höhere Latenzzeiten aufweisen.

Abbildung 3: Knotenübergreifende Ausführung kann den Remote-Speicherzugriff für eine virtuelle Maschine erhöhen.

Abbildung 3: Knotenübergreifende Ausführung kann den Remote-Speicherzugriff für eine virtuelle Maschine erhöhen.

TEIL 3. Gängige NUMA-Planungsansätze

In der Branche werden üblicherweise folgende Ansätze verwendet:

Ansatz 1: vCPUs an physische Kerne binden

Administratoren konfigurieren die vCPU-Zuordnung manuell, sodass VM-Ressourcen bevorzugt auf demselben physischen NUMA-Knoten ausgeführt werden.

Ansatz 2: Die Anzahl der einer VM zugewiesenen NUMA-Knoten festlegen

Administratoren konfigurieren die Anzahl der NUMA-Knoten manuell und verteilen die vCPU- und Speicherressourcen gleichmäßig auf diese.

Ansatz 3: Adaptive Zuweisung von NUMA-Knoten

Der Scheduler weist einer VM automatisch geeignete NUMA-Knoten zu. Die VM-CPUs sind auf diese Knoten beschränkt und nutzen bevorzugt lokalen Speicher, um die Datenlokalität zu verbessern. Verfügt die VM über mehr vCPUs, als ein einzelner NUMA-Knoten aufnehmen kann, wird sie auf mehrere Knoten verteilt. Die NUMA-Topologie kann dem Gastbetriebssystem für topologiebasierte Entscheidungen zugänglich gemacht werden, während VMs zwischen Knoten migriert werden können, um die Lastverteilung aufrechtzuerhalten.

Die Ansätze 1 und 2 bringen mehr Einschränkungen mit sich, erfordern eine sorgfältige Dimensionierung der VM-CPUs und können aufgrund statischer Bindung zu einem Ungleichgewicht zwischen den NUMA-Knoten führen. Adaptive Zuweisung ist daher für dynamische Produktionsumgebungen praktikabler.

TEIL 4. Sangfor NUMA-Planung im Detail

Sangfor HCI nutzt primär adaptives NUMA-Scheduling. Es gleicht die Auslastung der NUMA-Knoten aus und reduziert gleichzeitig den Remote-Speicherzugriff durch VM-vCPUs, wodurch die Gesamtleistung verbessert wird.

Adaptives NUMA-Scheduling bietet deutliche Optimierungsvorteile für verschiedene Anwendungstypen, insbesondere für Middleware mit häufigen Speicherzugriffen. Sangfor setzte DM8, Redis und Memcached in virtuellen Maschinen ein und führte Benchmarks mit aktiviertem und deaktiviertem NUMA-Scheduling durch. Die Ergebnisse zeigten deutliche Leistungsverbesserungen der Middleware mit aktiviertem NUMA-Scheduling.

Leistungsverbesserungen der Middleware durch aktivierte NUMA-Planung

Datenbank-Workloads: Dameng DB (DM8) mit BenchmarkSQL

BenchmarkSQL ist ein Benchmark für relationale Datenbanken, der einen TPC-C-ähnlichen Transaktionsmix ausführt, der Neubestellungen, Zahlungen, Bestellstatusabfragen, Lieferungen und Lagerbestandsabfragen umfasst. Die resultierende Metrik tpmC gibt die Anzahl der pro Minute verarbeiteten Neubestellungstransaktionen an; ein höherer Wert bedeutet eine bessere Performance. BenchmarkSQL 5.0 wurde zum Testen der DM8-Datenbank verwendet. Die folgende Grafik zeigt die relative Performance, wobei das tpmC-Ergebnis ohne NUMA auf 100 % normiert wurde.

Abbildung 4: Relativer DM8-Transaktionsdurchsatz bei aktiviertem bzw. deaktiviertem NUMA-Scheduling.

Abbildung 4: Relativer DM8-Transaktionsdurchsatz bei aktiviertem bzw. deaktiviertem NUMA-Scheduling.

In-Memory-Caching: Redis 7.2.5

redis-benchmark ist das offizielle Redis-Performance-Testtool. Sangfor nutzte es, um die GET- und SET-QPS für 1-KB-Werte mit deaktiviertem und aktiviertem NUMA-Scheduling zu testen. QPS steht für die Anzahl der Lese- oder Schreibvorgänge pro Sekunde.

redis-benchmark -t get -d 16 -c 100 -n 6000000 -r 60000000
redis-benchmark -t set -d 16 -c 100 -n 6000000 -r 60000000

Die folgende Grafik zeigt die relative Leistung, wobei das QPS-Ergebnis ohne NUMA auf 100 % normiert wurde.

Abbildung 5: Relative Redis-Lese-/Schreib-QPS-Leistungssteigerungen bei aktiviertem NUMA-Scheduling.

Abbildung 5: Relative Redis-Lese-/Schreib-QPS-Leistungssteigerungen bei aktiviertem NUMA-Scheduling.

Key-Value-Caching: Memcached 6.27

memaslap ist ein in Memcached integriertes Tool für Leistungstests. Sangfor nutzte es, um die Transaktionsrate (TPS) für 1-KB-Werte mit deaktiviertem und aktiviertem NUMA-Scheduling zu testen.

memaslap -s 127.0.0.1:11211 -t 300s -T 8

Die folgende Grafik zeigt die relative Leistung, wobei das TPS-Ergebnis ohne NUMA auf 100 % normiert wurde.

Abbildung 6: Relative Steigerung des Transaktionsdurchsatzes von Memcached bei aktiviertem NUMA-Scheduling.

Abbildung 6: Relative Steigerung des Transaktionsdurchsatzes von Memcached bei aktiviertem NUMA-Scheduling.

Die obigen Ergebnisse zeigen deutliche Vorteile für speicherintensive Anwendungen. In den folgenden Abschnitten wird die Funktionsweise der Optimierung erläutert.

1. Adaptive NUMA-Knotenzuweisung

Sangfor partitioniert VM-vCPUs adaptiv und plant sie auf geeigneten NUMA-Knoten ein, um den Zugriff auf den Remote-Speicher zu reduzieren. Ist die Anzahl der VM-vCPUs geringer als die Kernanzahl eines NUMA-Knotens, wird die VM auf einem einzelnen Knoten ausgeführt. Benötigt die VM mehr Kerne, als ein Knoten bereitstellen kann, wird sie auf mehrere Knoten verteilt, und die vNUMA-Topologie wird dem Gastbetriebssystem zur Verfügung gestellt, damit dieses topologiebasierte Entscheidungen treffen kann.

Abbildung 7: Intelligente vCPU-Partitionierung und vNUMA-Topologieabbildung von Sangfor.

Abbildung 7: Intelligente vCPU-Partitionierung und vNUMA-Topologieabbildung von Sangfor.

Um eine gleichmäßige Auslastung zu gewährleisten, berücksichtigt die VM-Platzierung die aktuelle Last der NUMA-Knoten und wählt einen weniger ausgelasteten Knoten aus. Während der Laufzeit können VMs je nach Auslastung zwischen Knoten migriert werden. Prioritäre VMs werden bevorzugt auf weniger ausgelasteten Knoten platziert, um die Konkurrenz um CPU-, Speicherbandbreite und Cache-Ressourcen zu reduzieren.

2. Optimierung für heterogene Serverplattformen

Manche Serverplattformen enthalten viele NUMA-Knoten, unterschiedliche Abstände zwischen den Knoten und relativ wenige Kerne pro Knoten.

Abbildung 8. Topologiebewusste vNUMA-Platzierung auf einem Multi-Node-Server.

Abbildung 8. Topologiebewusste vNUMA-Platzierung auf einem Multi-Node-Server.

Sangfor ermittelt den Abstand zwischen NUMA-Knoten und platziert bevorzugt mehrere vNUMA-Knoten derselben VM auf nahegelegenen physischen NUMA-Knoten.

Um die Leistung der Datenweiterleitung weiter zu verbessern, entwickelte Sangfor die NUMA-Affinität zwischen virtuellen Maschinen (VMs) und Datenprozessen. Die VM und ihr Datenweiterleitungsprozess werden auf demselben NUMA-Knoten ausgeführt, wodurch der lokale Speicherzugriff erhöht wird. In der folgenden Abbildung bezeichnet DP den Datenprozess.

Abbildung 9. Die Affinität zwischen virtueller Maschine und Datenebene sorgt dafür, dass die Verarbeitung nahe am lokalen Speicher stattfindet.

Abbildung 9. Die Affinität zwischen virtueller Maschine und Datenebene sorgt dafür, dass die Verarbeitung nahe am lokalen Speicher stattfindet.

Um die Vorteile von NUMA im gesamten Speicherbereich optimal zu nutzen, platziert Sangfor die vCPU, QEMU, libnfs, aSAN und andere Prozesse, die an einem vollständigen E/A-Pfad beteiligt sind, auf demselben NUMA-Knoten. Dadurch wird der Zugriff auf entfernte Speicher vermieden. Große Speicherseiten verbessern zudem die Speicherzugriffsleistung, reduzieren den Verarbeitungsaufwand und erhöhen die Effizienz des E/A-Flusses.

Abbildung 10. Koordinierte NUMA-Platzierung entlang des virtuellen Speicher-E/A-Pfads.

Abbildung 10. Koordinierte NUMA-Platzierung entlang des virtuellen Speicher-E/A-Pfads.

Daten, die von einem NIC-Puffer in den virtuellen Speicher übertragen werden, müssen von CPU-Threads verarbeitet werden. Mit steigender Netzwerkleistung kann die Effizienz des Pufferkopierens auf einem einzelnen Kern zum Flaschenhals werden, während der Zugriff über NUMA-Kerne die Effizienz zusätzlich verringert. Sangfor ermöglicht die Verarbeitung des NIC-Datenverkehrs durch mehrere CPU-Kerne und wendet NUMA-Affinität an. Dadurch wird der Flaschenhals auf einem einzelnen Kern beseitigt, die Übertragungslatenz reduziert und die Parallelverarbeitung verbessert. Interne Tests führten zu einer Verbesserung der Schreibleistung von VMs mit hoher Warteschlangenlänge und großen Blöcken um mehr als 20 %.

Abbildung 11. Multi-Core, NUMA-affine Verarbeitung zwischen NIC-Puffer und virtuellem Speicher.

Abbildung 11. Multi-Core, NUMA-affine Verarbeitung zwischen NIC-Puffer und virtuellem Speicher.

3. Vergleich mit anderen Branchenansätzen

Die Unterstützung durch die Branche ist unterschiedlich. Ein Anbieter erlaubt Administratoren die Konfiguration des NUMA-Knotens, auf dem jede VM-vCPU ausgeführt wird, ein anderer unterstützt diese Funktion nicht, und VMware unterstützt adaptives NUMA-Scheduling.

Sangfor partitioniert und platziert VM-vCPUs automatisch auf NUMA-Knoten, um den Zugriff auf den Remote-Speicher zu reduzieren. Im Vergleich zur manuellen Konfiguration des Standorts jeder vCPU automatisiert die adaptive NUMA-Planung von Sangfor die vCPU-Partitionierung und -Platzierung, gleicht die Auslastung der Knoten aus und verbessert die Gesamtleistung.

Im Vergleich zu einer einfachen adaptiven NUMA-Implementierung erweitert Sangfor die Optimierung auf die Speicherdienstplanung, die Priorisierung von VMs, heterogene Serverplattformen und die VM-Netzwerkaffinität. Diese Erweiterungen sind das Ergebnis gemeinsamer Entwicklungsarbeit der Forschungs- und Cloud-Produktteams von Sangfor und basieren auf dem realen Verhalten von Plattform und Dienst.

TEIL 5. Zusammenfassung

Sangfor Adaptive NUMA Scheduling ist für verschiedene Infrastrukturszenarien optimiert, um die Effizienz des Anwendungsspeicherzugriffs zu verbessern:

  • Um den Zugriff auf den Remote-Speicher zu reduzieren, werden die VM-vCPUs adaptiv partitioniert und auf NUMA-Knoten platziert.
  • Migrieren Sie VMs zwischen NUMA-Knoten, um eine ausgewogene Auslastung zu gewährleisten.
  • Prioritäre VMs identifizieren und auf weniger ausgelasteten Knoten platzieren, um die Konkurrenz um CPU, Speicherbandbreite und Cache zu verringern.
  • Bei Servern mit vielen NUMA-Knoten und unterschiedlichen Abständen zwischen den Knoten wird der topologische Abstand ermittelt und zugehörige vNUMA-Ressourcen bevorzugt auf nahegelegenen physischen NUMA-Knoten platziert.
  • Bieten Sie eine VM-Netzwerkaffinitätsoption an, die eine VM auf demselben NUMA-Knoten wie die Netzwerkdatenebene platziert, um die Weiterleitungsleistung zu verbessern.
  • Wenden Sie NUMA-fähiges Scheduling nicht nur auf VMs, sondern auch auf Speicherdienste an.

UnixBench-Testbeispiel

UnixBench ist ein weit verbreiteter Benchmark für Unix-ähnliche Systeme, einschließlich UNIX, BSD und Linux. Er misst verschiedene Systemleistungsdimensionen, darunter CPU-, Dateisystem-, Speicher- und Prozessleistung.

Abbildung 12. Konfiguration der virtuellen Maschine für UnixBench-Tests.

Abbildung 12. Konfiguration der virtuellen Maschine für UnixBench-Tests.

Abbildung 13. Hardwarekonfiguration des HCI-Servers für UnixBench-Tests.

Abbildung 13. Hardwarekonfiguration des HCI-Servers für UnixBench-Tests.

Testergebnisse: In Sangfor HCI 6.9.0 mit aktiviertem NUMA war der aggregierte UnixBench-Score für 6 gleichzeitig auf demselben Host laufende VMs um 20,2 % höher als auf der anonymisierten Vergleichsplattform. Bei 8 gleichzeitig laufenden VMs lag der aggregierte Score um 34,17 % höher.

Abbildung 14. Vergleich der UnixBench-Benchmark-Ergebnisse unter gleichzeitiger virtueller Maschinenlast.

Abbildung 14. Vergleich der UnixBench-Benchmark-Ergebnisse unter gleichzeitiger virtueller Maschinenlast.

Die in diesem Artikel dargestellten Benchmark-Ergebnisse basieren auf spezifischen internen Testumgebungen von Sangfor und dienen der technischen Veranschaulichung. Die tatsächlichen Ergebnisse können je nach Hardware, Softwareversion, Konfiguration und Arbeitslast variieren. Kunden sollten repräsentative Anwendungen anhand ihrer eigenen Service-Level-Ziele validieren.

Search

Related Articles

Cloud and Infrastructure

Ensuring Enterprise High Availability: Running Windows Server Failover Cluster on Sangfor HCI

Date : 23 Oct 2026
Read Now
Cloud and Infrastructure

Cloud-Backup im Jahr 2026: Der Leitfaden für Unternehmen zum Schutz von Daten in hybriden und Multi-Cloud-Umgebungen

Date : 14 Oct 2026
Read Now
Cloud and Infrastructure

Wie lässt sich eine Speicherverschlechterung in HCI erkennen, bevor sie den Geschäftsbetrieb beeinträchtigt?

Date : 10 Oct 2026
Read Now

See Other Product

Sangfor Application Delivery (AD) Product Series
VMware-Ersetzung
Sangfor Kubernetes Engine (SKE)
Sangfor Database Management Platform (DMP)
aStor
Sangfor HCI - Hyperconverged Infrastructure