PowerEdge: Optimierung der kleinen I/O-Leistung für NVMe-Laufwerke hinter PERC-Controllern unter Linux

Summary: Unter Linux zeigen NVMe-Laufwerke, die hinter einem PowerEdge RAID-Controller (PERC) angeschlossen sind, bei Tests kleiner I/O-Workloads möglicherweise eine geringere Leistung als erwartet. Dies geschieht, weil das Betriebssystem diese Laufwerke als Standard-SCSI-Blockgeräte (/dev/sdX) und nicht als native NVMe-Geräte (/dev/nvmeXnX) identifiziert. Diese Identität führt zur Anwendung suboptimaler Standard-I/O-Scheduler. ...

This article applies to This article does not apply to This article is not tied to any specific product. Not all product versions are identified in this article.

Instructions

Die Grundursache

  • Natives NVMe: Direkt angeschlossene NVMe-Laufwerke verwenden tiefe, hardwareverwaltete Befehlswarteschlangen. Linux legt den Scheduler standardmäßig auf none fest, um Engpässe auf Betriebssystemebene zu umgehen.
NVMe mq-deadline
  • NVMe hinter PERC: Das Laufwerk wird als SCSI-Gerät dargestellt, wenn es von einem PERC-Controller verwaltet wird. Die meisten Linux-Distributionen verwenden standardmäßig den Scheduler für SCSI-Geräte, um mq-deadline.
  • Der Konflikt: Bei der mq-deadline Scheduler wurde für mechanische Legacy-Laufwerke entwickelt, um die Suchzeit zu optimieren und Kopfbewegungen zu minimieren. Bei NVMe-Hochgeschwindigkeitslaufwerken fügt dieser Scheduler unnötige Latenz und CPU-Overhead hinzu und drosselt die Gesamt-IOPS.

Überprüfung und sofortige Anpassung

Der Scheduler sollte auf none festgelegt werden, um maximale IOPS für kleine I/O-Workloads zu erreichen.

  • Überprüfen Sie den aktuellen Scheduler:
  1. Führen Sie den folgenden Befehl als Superuser aus (ersetzen Sie <sdX> durch Ihren Gerätenamen, z. B<. sda>):
cat /sys/block/{sdX}/queue/scheduler
Beispiel Ausgabe: (Die eckigen Klammern zeigen den aktiven Planer an.)
NVMe-Scheduler
  1. Ändern Sie den Planer zu none (Runtime), indem Sie den folgenden Befehl verwenden, um die Änderung sofort anzuwenden:
echo "none" > /sys/block/{sdX}/queue/scheduler

Sicherstellen von Persistenz

Die oben genannte manuelle Änderung ist nicht dauerhaft und wird nach einem Neustart zurückgesetzt. Auch /dev/sdX Kennungen können sich ändern, wenn Laufwerke hinzugefügt oder entfernt werden. Um diese Änderung dauerhaft zu machen, wird empfohlen, eine UDEV-Regel basierend auf der WWID des Geräts zu erstellen.
 

Hinweis: Die Leistung großer I/O-Vorgänge kann ebenfalls beeinträchtigt sein. Für NVMe-Laufwerke hinter einem PERC-Controller wird empfohlen, den Linux-Warteschlangenplaner auf "keine" festzulegen.

Affected Products

PowerEdge R470, PowerEdge R570, PowerEdge R670, PowerEdge R6715, PowerEdge R6725, PowerEdge R770, PowerEdge R770AP, PowerEdge R7715, PowerEdge R7725, PowerEdge R7725xd
Article Properties
Article Number: 000443257
Article Type: How To
Last Modified: 10 أبريل 2026
Version:  2
Find answers to your questions from other Dell users
Support Services
Check if your device is covered by Support Services.