PowerEdge: Prestandaproblem på Linux-värdar när PERC- eller HBA-styrenheter använder NVMe eller SSD
Summary: Linux-värden rapporterar minskad lagringsprestanda vid användning av PERC- eller HBA-styrenheter med anslutna SSD- eller NVMe-enheter.
Symptoms
System som kör Linux uppvisar prestanda som är lägre än förväntat på SSD- eller NVMe-enheter som är anslutna via PERC- eller HBA-styrenheter. Symptomen omfattar minskad IOPS, förhöjd svarstid eller icke-optimalt dataflöde i förhållande till förväntade enhets- eller plattformsfunktioner.
Cause
Moderna PERC RAID- och HBA-styrenheter levererar anslutna lagringsenheter till operativsystemet via en SCSI-enhetsmodell, även om det underliggande mediet är NVMe. Eftersom dessa enheter visas som SCSI SAS-mål tillämpar de flesta Linux-distributioner automatiskt äldre block-I/O-schemaläggningspolicyer som är optimerade för roterande hårddiskar. När SSD- eller NVMe-enheter tvingas igenom dessa HDD-orienterade schemaläggare kan resultatet bli minskat dataflöde och högre latens jämfört med deras inbyggda prestanda.
Relevanta styrenhetsmodeller
- PERC: H740P, H840, H745 och H345
- PERC: H750, H755, H350, H355
- PERC: H965, H365
- PERC: H975
- HBA345
- HBA355
- HBA465
Resolution
Se optimeringsmanualen för operativsystemets lagring. Linux OS ställer vanligtvis in schemaläggaren för inbyggda NVMe-konfigurationer på "none".
Red Hat Enterprise Linux 8 och 9 "Ställa in diskschemaläggaren"-guider:
- Ställa in diskschemaläggaren v8(Extern länk)
- Ställa in diskschemaläggaren v9(Extern länk)
SLES 15-SP6 "Finjustering av I/O-prestanda"-manual:
- Finjustera I/O-prestanda(Extern länk)
För SSD- och NVMe-anslutna PERC- och HBA-konfigurationer kan förbättrade prestanda visas om du ändrar blockschemaläggaren till "none".
Så här kontrollerar du den aktuella schemaläggaren:
Som superanvändare kör du cat /sys/block/{SD}/queue/scheduler där {SD} är enhetsblockposten under /dev (exempel sda)
Skärmdump som visar en schemaläggare inställd på mq-deadline i Red Hat Enterprise Linux 9 för sda

Ställ in schemaläggaren på ingen:
Som superanvändare, kör, echo "none" > /sys/block/{SD}/queue/scheduler där {SD} är enhetsblockposten under /dev (exempel sda)
Skärmbild som visar hur schemaläggaren uppdateras till "none" för sda

/dev Blockera ändringar av enhetsnamn. A UDEV regel kan läggas till för enhetens WWID för att permanent ändra schemaläggaren till "none". I användarhandboken till operativsystemet finns anvisningar om hur du skapar UDEV regler eller liknande mekanismer för att ställa in parametrar för blockanordningar.
Ytterligare justeringar av OS-inställningar och ändringar av energiprofiler kan krävas för att uppnå maximal prestanda för styrenheten och enheten. Se eventuell dokumentation om justering av OS-prestanda och BIOS-strömprofil.