PowerEdge: How to 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), leading to the application of suboptimal default I/O schedulers. ...

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

1. 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: When managed by a PERC controller, the drive is presented as a SCSI device. 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.

 

2. Verification and Immediate Adjustment

To achieve maximum IOPS for small I/O workloads, the scheduler should be set to none.

  1. 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  

B. Change the scheduler to 'none' (Runtime): Run the following command to apply the change immediately:

echo "none" > /sys/block/{sdX}/queue/scheduler

3. Ensuring Persistence

The manual change above is not persistent and will revert 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.

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: 24 آذار 2026
Version:  1
Find answers to your questions from other Dell users
Support Services
Check if your device is covered by Support Services.