PowerEdge:PERC 或 HBA 控制器使用 NVMe 或 SSD 時,Linux 主機上的效能問題
Summary: Linux 主機回報在使用 PERC 或 HBA 控制器連接 SSD 或 NVMe 裝置時,儲存裝置效能降低。
Symptoms
執行 Linux 的系統在透過 PERC 或 HBA 控制器連接的 SSD 或 NVMe 磁碟機上的效能低於預期。症狀包括 IOPS 降低、延遲增加,或相對於預期的裝置或平台功能輸送量欠佳。
Cause
現代的 PERC RAID 和 HBA 控制器透過 SCSI 裝置模型提供連接儲存裝置至作業系統,即使底層媒體是 NVMe。由於這些裝置顯示為 SCSI SAS 目標,因此大多數 Linux 版本會自動套用針對旋轉硬碟最佳化的傳統區塊 I/O 排程原則。當 SSD 或 NVMe 裝置強制透過這些以 HDD 為導向的排程器時,與其原生效能相比,其結果可能會降低輸送量並增加延遲。
相關控制器型號
- PERC:H740P、H840、H745、H345
- PERC:H750、H755、H350、H355
- PERC:H965、H365
- PERC:H975型
- HBA345
- HBA355
- HBA465
Resolution
請參閱您的作業系統儲存裝置最佳化指南。Linux 作業系統通常會將原生 NVMe 組態的排程器設為「無」。
Red Hat Enterprise Linux 8 和 9「設定磁碟排程器」指南:
- 設定磁碟排程器 v8(外部連結)
- 設定磁碟排程器 v9(外部連結)
SLES 15-SP6「調整 I/O 效能」指南:
- 調整 I/O 效能(外部連結)
若為連接 SSD 和 NVMe 的 PERC 和 HBA 組態,將區塊排程器變更為「無」可能會顯示效能改善。
若要檢查目前的排程器:
以超級使用者身份執行 cat /sys/block/{SD}/queue/scheduler 其中 {SD} 是下方的裝置區塊項目 /dev (範例 sda)
螢幕截圖顯示計劃程式設定為 mq-deadline 在 Red Hat Enterprise Linux 9 中 sda

將排程器設定為 none:
作為超級使用者,運行, echo "none" > /sys/block/{SD}/queue/scheduler 其中 {SD} 是下方的裝置區塊項目 /dev (範例 sda)
螢幕擷取畫面顯示排程器正在更新為「無」 sda

/dev 區塊裝置名稱變更。A UDEV 可以為設備 WWID 添加規則,以將調度程式永久更改為“無”。如需有關建立的指示,請參閱您的作業系統使用者指南 UDEV 用於設置塊設備參數的規則或類似機制。
可能需要進行額外的作業系統設定調整和電源設定檔變更,才能發揮最大的控制器和磁碟機效能。請參閱任何作業系統效能調整和 BIOS 電源設定檔說明文件。