PowerEdge: Optimize Small I/O Performance for NVMe Drives Behind PERC Controllers in Linux
Summary: In Linux, NVMe drives connected behind a PowerEdge RAID Controller (PERC) may exhibit lower performance than expected during small I/O workload testing. This occurs because the OS identifies these drives as standard SCSI block devices (/dev/sdX) rather than native NVMe devices (/dev/nvmeXnX). This identity leads to the application of suboptimal default I/O schedulers. ...
Acest articol se aplică pentru
Acest articol nu se aplică pentru
Acest articol nu este legat de un produs specific.
Acest articol nu acoperă toate versiunile de produs existente.
Instructions
The Root Cause
- Native NVMe: Directly connected NVMe drives use deep, hardware-managed command queues. Linux defaults their scheduler to none to bypass OS-level bottlenecking.
- NVMe behind PERC: The drive is presented as a SCSI device when managed by a PERC controller. Most Linux distributions default to the scheduler for SCSI devices to
mq-deadline. - The Conflict: The
mq-deadlinescheduler was designed for legacy mechanical drives to optimize seek time and minimize head movement. For high-speed NVMe drives, this scheduler adds unnecessary latency and CPU overhead, throttling total IOPS.
Verification and Immediate Adjustment
The scheduler should be set to none to achieve maximum IOPS for small I/O workloads.
- Check the current scheduler:
- Run the following command as a superuser (replace
<sdX>with your device name, such as<sda>):
cat /sys/block/{sdX}/queue/scheduler
Example output: (The brackets indicate the active scheduler.)
- Change the scheduler to none (Runtime) using the following command to apply the change immediately:
echo "none" > /sys/block/{sdX}/queue/scheduler
Ensuring Persistence
The manual change above is not persistent and reverts after a reboot. Also, /dev/sdX identifiers may change if drives are added or removed. To make this change permanent, it is recommended to create a UDEV rule based on the device's WWID.
Note: Large I/O performance may also be affected. For NVMe drives behind a PERC controller, it is recommended to set the Linux queue scheduler to none.
Produse afectate
PowerEdge R470, PowerEdge R570, PowerEdge R670, PowerEdge R6715, PowerEdge R6725, PowerEdge R770, PowerEdge R770AP, PowerEdge R7715, PowerEdge R7725, PowerEdge R7725xdProprietăți articol
Article Number: 000443257
Article Type: How To
Ultima modificare: 09 iul. 2026
Version: 3
Găsiți răspunsuri la întrebările dvs. de la alți utilizatori Dell
Servicii de asistență
Verificați dacă dispozitivul dvs. este acoperit de serviciile de asistență.