PowerEdge: Problemy z wydajnością na hostach z systemem Linux, gdy kontrolery PERC lub HBA używają dysku NVMe lub SSD
Summary: Host z systemem Linux zgłasza zmniejszoną wydajność pamięci masowej w przypadku korzystania z kontrolerów PERC lub HBA z podłączonymi dyskami SSD lub NVMe.
Symptoms
Systemy z systemem Linux wykazują niższą niż oczekiwano wydajność na dyskach SSD lub NVMe podłączonych za pośrednictwem kontrolerów PERC lub HBA. Objawy obejmują zmniejszoną liczbę operacji we/wy na sekundę, zwiększone opóźnienie lub nieoptymalną przepływność w stosunku do oczekiwanych możliwości urządzenia lub platformy.
Cause
Nowoczesne kontrolery RAID i HBA PERC prezentują podłączone urządzenia pamięci masowej do systemu operacyjnego za pośrednictwem modelu urządzenia SCSI, nawet jeśli nośnikiem bazowym jest NVMe. Ponieważ urządzenia te są wyświetlane jako obiekty docelowe SCSI SAS, większość dystrybucji systemu Linux automatycznie stosuje starsze zasady planowania blokowych operacji we/wy zoptymalizowane pod kątem rotacji dysków twardych. Gdy urządzenia SSD lub NVMe są wymuszane przez te harmonogramy zorientowane na dyski twarde, rezultatem może być zmniejszona przepustowość i większe opóźnienia w porównaniu z ich natywną wydajnością.
Odpowiednie modele kontrolerów
- PERC: H740P, H840, H745, H345
- PERC: H750, H755, H350, H355
- PERC: H965, H365
- PERC: H975 powiedział:
- HBA345
- HBA355
- HBA465
Resolution
Zapoznaj się z przewodnikiem optymalizacji pamięci masowej systemu operacyjnego. System operacyjny Linux zazwyczaj ustawia harmonogram dla natywnych konfiguracji NVMe na wartość "none".
Instrukcje dotyczące "Ustawiania harmonogramu dysków" w systemie Red Hat Enterprise Linux 8 i 9:
- Ustawianie harmonogramu dysków v8(łącze zewnętrzne)
- Ustawianie harmonogramu dysków v9(łącze zewnętrzne)
Podręcznik SLES 15-SP6 "Tuning I/O performance":
- Dostrajanie wydajności we/wy(łącze zewnętrzne)
W przypadku konfiguracji PERC i HBA podłączonych do dysków SSD i NVMe zmiana harmonogramu bloków na "none" może wykazać poprawę wydajności.
Aby sprawdzić bieżący harmonogram:
Jako superużytkownik uruchom cat /sys/block/{SD}/queue/scheduler gdzie {SD} jest wpisem bloku urządzenia w obszarze /dev (przykład sda)
Zrzut ekranu przedstawiający harmonogram ustawiony na mq-deadline w systemie Red Hat Enterprise Linux 9 dla sda

Ustaw harmonogram na brak:
Jako superużytkownik uruchom, echo "none" > /sys/block/{SD}/queue/scheduler gdzie {SD} jest wpisem bloku urządzenia w obszarze /dev (przykład sda)
Zrzut ekranu pokazujący, że harmonogram jest aktualizowany do "none" dla sda

/dev Blokuj zmiany nazw urządzeń. A UDEV można dodać regułę dla identyfikatora WWID urządzenia, aby trwale zmienić harmonogram na "none". Instrukcje dotyczące tworzenia można znaleźć w podręczniku użytkownika systemu operacyjnego UDEV reguły lub podobne mechanizmy ustawiania parametrów urządzenia blokowego.
W celu uzyskania maksymalnej wydajności kontrolera i dysku mogą być wymagane dodatkowe poprawki ustawień systemu operacyjnego i zmiany profili zasilania. Zapoznaj się z dokumentacją dotyczącą dostrajania wydajności systemu operacyjnego i profilu zasilania systemu BIOS.