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 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.
Affected Products
PowerEdge R470, PowerEdge R570, PowerEdge R670, PowerEdge R6715, PowerEdge R6725, PowerEdge R770, PowerEdge R770AP, PowerEdge R7715, PowerEdge R7725, PowerEdge R7725xdArticle 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.