PowerEdge:优化 Linux 中 PERC 控制器后面的 NVMe 驱动器的小型 I/O 性能
Summary: 在 Linux 中,在小型 I/O 工作负载测试期间,连接在 PowerEdge RAID 控制器 (PERC) 后面的 NVMe 驱动器的性能可能会低于预期。 发生这种情况是因为操作系统将这些驱动器标识为标准 SCSI 块设备 (/dev/sdX),而不是本机 NVMe 设备 (/dev/nvmeXnX)。此标识会导致应用次优默认 I/O 调度程序。
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
根本原因
- 本机 NVMe:直接连接的 NVMe 驱动器使用深层的硬件管理命令队列。Linux 将其调度程序默认为 none,以绕过操作系统级别的瓶颈。
- PERC 背后的 NVMe:当由 PERC 控制器管理时,驱动器显示为 SCSI 设备。大多数 Linux 分发版默认使用 SCSI 设备的调度程序
mq-deadline。 - 冲突:而
mq-deadlineScheduler 专为传统机械驱动器而设计,以优化寻道时间并最大限度地减少磁头移动。对于高速 NVMe 驱动器,此调度程序会增加不必要的延迟和 CPU 开销,从而限制总 IOPS。
验证和即时调整
计划程序应设置为 无 ,以实现小型 I/O 工作负载的最大 IOPS。
- 检查当前调度程序:
- 以超级用户身份运行以下命令(将 sdX> 替换为<您的设备名称,例如 <sda>):
cat /sys/block/{sdX}/queue/scheduler
示例输出:(括号表示活动调度程序。)
- 使用以下命令将计划程序更改为无(运行时),以立即应用更改:
echo "none" > /sys/block/{sdX}/queue/scheduler
确保持久性
上面的手动更改 不是永久性 的,会在重新启动后恢复。也 /dev/sdX 如果添加或移除驱动器,标识符可能会更改。要使此更改永久生效,建议根据设备的 WWID 创建 UDEV 规则 。
提醒:大型 I/O 性能也可能受到影响。对于 PERC 控制器后面的 NVMe 驱动器,建议将 Linux 队列计划程序设置为 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: 09 يوليو 2026
Version: 3
Find answers to your questions from other Dell users
Support Services
Check if your device is covered by Support Services.