Interruptmodus
Ab Version 1.10.0 unterstützt SUSE Storage den SPDK-Interruptmodus für V2-Daten-Engine-Volumes. Der Interruptmodus bietet eine Alternative zum Standard-Polling-Modus und verbessert die CPU-Effizienz in bestimmten Umgebungen.
Der Interruptmodus ist besonders geeignet für Cluster mit begrenzten CPU-Ressourcen und einer relativ geringen Anzahl von Volumes. Während der Polling-Modus die Leistung maximiert, indem er die CPU-Auslastung nahe 100 % auf den zugewiesenen Kernen hält, reduziert der Interruptmodus die CPU-Nutzung, indem er dem SPDK-Reaktor ermöglicht, seine Nutzung dynamisch anzupassen, anstatt kontinuierlich zu pollieren.
Übersicht
Polling-Modus vs. Interruptmodus
-
Polling-Modus (Standard):
-
Er pollt kontinuierlich nach I/O-Operationen.
-
Er bietet die niedrigste Latenz.
-
Er verbraucht jederzeit ~100 % des zugewiesenen CPU-Kerns.
-
Er ist am besten geeignet für hochleistungsfähige Workloads mit häufigen I/O-Operationen.
-
-
Interruptmodus:
-
Er verwendet interruptgesteuertes I/O-Handling.
-
Der CPU-Verbrauch skaliert mit der Anzahl der angeschlossenen Volumes.
-
Er ist besser geeignet für ressourcenbeschränkte Umgebungen.
-
Voraussetzungen
-
SUSE Storage v1.10.0 oder höher
-
V2-Daten-Engine aktiviert
-
Keine angeschlossenen v2-Volumes beim Ändern der Einstellung
-
Für NVMe-Laufwerke muss IOMMU aktiviert sein. Um zu überprüfen:
find /sys/kernel/iommu_groups/ -type lBeispielausgabe (IOMMU aktiviert):
/sys/kernel/iommu_groups/0/devices/0000:e6:0b.1 /sys/kernel/iommu_groups/1/devices/0000:34:0a.6 /sys/kernel/iommu_groups/2/devices/0000:a0:00.0Wenn der Befehl keine Ausgabe zurückgibt, ist IOMMU nicht aktiviert.
IOMMU-Unterstützung ist möglicherweise nicht auf virtualisierten Instanzen verfügbar. Wenn Sie sich unsicher sind, ziehen Sie in Betracht, eine Bare-Metal-Instanz zu verwenden, oder konsultieren Sie die Dokumentation oder das Support-Team Ihres Cloud-Anbieters.
Für weitere Informationen beziehen Sie sich bitte auf die offizielle SPDK-Dokumentation.
Konfiguration
Globale Einstellung
Um den Interruptmodus global zu aktivieren, aktualisieren Sie die data-engine-interrupt-mode-enabled Einstellung.
Leistungsmerkmale
Empfohlene Anwendungsfälle
Aktivieren Sie den Interruptmodus für diese Fälle:
-
Sie arbeiten in ressourcenbeschränkten Clustern.
-
Sie verwalten eine kleine Anzahl von Volumes.
-
CPU-Ressourcen sind begrenzt oder werden mit anderen Arbeitslasten geteilt.
-
I/O-Muster sind sporadisch und nicht kontinuierlich.
-
Energieeffizienz hat Priorität.
Nutzungsbeschränkungen
Hybride Implementierung
Der aktuelle V2-Volumen-Interruptmodus verwendet einen hybriden Ansatz für den NVMe/TCP-Transport:
-
Admin-Queue-Operationen: Es basiert weiterhin auf periodischem Polling für Keepalive und Controller-Wiederherstellung.
-
I/O-Queue-Abschluss: Es verwendet Polling für den Abschluss von Befehlen.
-
Restliche CPU-Nutzung: Es führt zu einer kleinen, aber konstanten CPU-Auslastung, selbst wenn die angeschlossenen Volumen im Leerlauf sind.