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

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

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.

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.