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 mq-deadline
  • 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-deadline scheduler 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:
  1. 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.)
NVMe scheduler
  1. 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 R7725xd
Proprietăț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ță.