PowerEdge: Optimice el rendimiento de I/O pequeñas para las unidades NVMe detrás de controladoras PERC en Linux

Summary: En Linux, las unidades NVMe conectadas detrás de una controladora RAID PowerEdge (PERC) pueden presentar un rendimiento menor que el esperado durante las pruebas de cargas de trabajo de I/O pequeñas. Esto ocurre porque el sistema operativo identifica estas unidades como dispositivos de bloques SCSI estándar (/dev/sdX) en lugar de dispositivos NVMe nativos (/dev/nvmeXnX). Esta identidad conduce a la aplicación de programadores de I/O predeterminados subóptimos. ...

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

La causa raíz

  • NVMe nativo: Las unidades NVMe conectadas directamente utilizan colas de comandos profundas administradas por hardware. Linux configura su programador de manera predeterminada en ninguno para evitar los cuellos de botella en el nivel del sistema operativo.
NVMe mq-deadline
  • NVMe detrás de PERC: La unidad se presenta como un dispositivo SCSI cuando se administra mediante una controladora PERC. La mayoría de las distribuciones de Linux configuran de manera predeterminada el programador para dispositivos SCSI a fin de mq-deadline.
  • El conflicto: La variable mq-deadline Scheduler se diseñó para unidades mecánicas heredadas a fin de optimizar el tiempo de búsqueda y minimizar el movimiento del cabezal. Para las unidades NVMe de alta velocidad, este programador agrega latencia y sobrecarga de CPU innecesarias, lo que limita el total de IOPS.

Verificación y ajuste inmediato

El programador se debe configurar en ninguno para lograr el máximo de IOPS para cargas de trabajo de I/O pequeñas.

  • Compruebe el programador actual:
  1. Ejecute el siguiente comando como superusuario (reemplace <sdX> con el nombre de su dispositivo, como <sda>):
cat /sys/block/{sdX}/queue/scheduler
Ejemplo del mensaje de salida: (Los corchetes indican el programador activo).
Programador de NVMe
  1. Cambie el programador a ninguno (tiempo de ejecución) mediante el siguiente comando para aplicar el cambio inmediatamente:
echo "none" > /sys/block/{sdX}/queue/scheduler

Garantizar la persistencia

El cambio manual anterior no es persistente y se revierte después de un reinicio. Además /dev/sdX Los identificadores pueden cambiar si se agregan o eliminan unidades. Para que este cambio sea permanente, se recomienda crear una regla de UDEV basada en el WWID del dispositivo.
 

Nota: Un gran rendimiento de I/O también puede verse afectado. Para las unidades NVMe detrás de una controladora PERC, se recomienda configurar el programador de cola de Linux en ninguno.

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.