PowerEdge: Ottimizzazione delle prestazioni di I/O di piccole dimensioni per le unità NVMe dietro i controller PERC in Linux

Summary: In Linux, le unità NVMe collegate dietro un controller RAID PowerEdge (PERC) possono presentare prestazioni inferiori al previsto durante i test dei carichi di lavoro di I/O di piccole dimensioni. Ciò si verifica perché il sistema operativo identifica queste unità come dispositivi a blocchi SCSI standard (/dev/sdX) anziché come dispositivi NVMe nativi (/dev/nvmeXnX). Questa identità comporta l'applicazione di utilità di pianificazione I/O predefinite non ottimali. ...

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 root cause

  • NVMe nativa: Le unità NVMe connesse direttamente utilizzano code di comandi profonde gestite dall'hardware. Linux imposta l'utilità di pianificazione su none per evitare colli di bottiglia a livello di sistema operativo.
NVMe mq-scadenza
  • NVMe dietro PERC: L'unità viene presentata come dispositivo SCSI quando è gestita da un controller PERC. La maggior parte delle distribuzioni Linux utilizza per impostazione predefinita l'utilità di pianificazione affinché i dispositivi SCSI mq-deadline.
  • Il conflitto: La colonna mq-deadline Scheduler è stato progettato per le unità meccaniche legacy per ottimizzare il tempo di ricerca e ridurre al minimo il movimento della testina. Per le unità NVMe ad alta velocità, questo scheduler aggiunge latenza e overhead della CPU non necessari, limitando gli IOPS totali.

Verifica e regolazione immediata

L'utilità di pianificazione deve essere impostata su none per ottenere il numero massimo di IOPS per carichi di lavoro di I/O di piccole dimensioni.

  • Controllare l'utilità di pianificazione corrente:
  1. Eseguire il seguente comando come super-user (sostituire <sdX> con il nome del dispositivo, ad esempio <sda>):
cat /sys/block/{sdX}/queue/scheduler
Esempio di output: (le parentesi indicano l'utilità di pianificazione attiva).
Utilità di pianificazione NVMe
  1. Impostare l'utilità di pianificazione su none (Runtime) utilizzando il seguente comando per applicare immediatamente la modifica:
echo "none" > /sys/block/{sdX}/queue/scheduler

Garantire la persistenza

La modifica manuale di cui sopra non è persistente e si ripristina dopo un riavvio. Anche /dev/sdX Gli identificatori possono cambiare se le unità vengono aggiunte o rimosse. Per rendere permanente questa modifica, si consiglia di creare una regola UDEV basata sul WWID del dispositivo.
 

Nota: Anche le prestazioni di I/O di grandi dimensioni possono essere influenzate. Per le unità NVMe dietro un controller PERC, si consiglia di impostare l'utilità di pianificazione delle code Linux su 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.