不穩定(糟糕)的磁碟效能 I/O (Debian/Proxmox)

不穩定(糟糕)的磁碟效能 I/O (Debian/Proxmox)

概括

我發現 Proxmox VE 7 (Bullseye) 中的 ZFS SSD 鏡像的 I/O 性能大幅波動。我只是一個新手,無法獨自找到它。

細節

這在現實任務中表現非常差,所以這不僅僅是人為基準。但為了幫助診斷它,我正在運行:

sysbench fileio --file-test-mode=rndrw run

它從 Proxmox 終端機「裸機」運行,沒有任何虛擬機器處於活動狀態。結果差異很大。下面是兩個例子:

File operations:
    reads/s:                      2316.07
    writes/s:                     1544.08
    fsyncs/s:                     4949.70

Throughput:
    read, MiB/s:                  36.19
    written, MiB/s:               24.13

General statistics:
    total time:                          10.0062s
    total number of events:              88040

Latency (ms):
         min:                                    0.00
         avg:                                    0.11
         max:                                   35.66
         95th percentile:                        0.65
         sum:                                 9947.54

Threads fairness:
    events (avg/stddev):           88040.0000/0.00
    execution time (avg/stddev):   9.9475/0.00

File operations:
    reads/s:                      22.60
    writes/s:                     15.07
    fsyncs/s:                     56.98

Throughput:
    read, MiB/s:                  0.35
    written, MiB/s:               0.24

General statistics:
    total time:                          10.6162s
    total number of events:              877

Latency (ms):
         min:                                    0.00
         avg:                                   11.43
         max:                                  340.62
         95th percentile:                       77.19
         sum:                                10020.19

Threads fairness:
    events (avg/stddev):           877.0000/0.00
    execution time (avg/stddev):   10.0202/0.00

如您所見,事件總數增加了 10,000 倍,並且延遲大幅增加。這些波動不是「一次性的」。它不斷地在這些極端之間波動。

我已盡力縮小簡單硬體問題的範圍。兩款 SSD 都是全新的,smartctl 中的值均為 100。我已經更換了 SATA 電纜。我已經在鏡像降級的情況下運行它,以嘗試隔離單個驅動器問題。我已將磁碟機移至單獨的 SATA 控制器。沒有什麼能給我不同的結果。

我有第二台伺服器以類似的方式配置,儘管鏡像中使用的是較舊的(且不匹配的)SSD。沒看到這個問題。但伺服器硬體有所不同。糟糕的結果來自於下面所描述的系統。 「正常」的結果來自一台帶有 E3-1275v2 的舊改裝 PC。

我希望得到有助於診斷此問題的提示。問題似乎出在延遲。什麼會導致這種情況?接下來我該採取什麼步驟?

先致謝!

系統 (如果有幫助的話)

  • MB:超微 X9DRi-F
  • CPU:雙至強 E5-2650 v2
  • 記憶體:128 GB(8 x 16 GB)
  • SATA 控制器:板載 SATA 3(也測試了單獨的 SATA 2)
  • SSD:2x 1GB TeamGroup SATA(是的,便宜,但應該沒問題)
  • PCIe 卡:
    • Mellanox MCX312B
    • LSI SAS9207-8i(HBA 連接到 8 個未安裝的磁碟...傳遞到 VM)
    • Nvidia GTX 750(傳遞到虛擬機器)

答案1

昨天我的新設定也發生了類似的事情:Proxmox VE 7 位於 Intel 11500 上,具有 32 GB RAM 和 2 個 SSD Crucial BX500(這些是消費級),配置為 ZFS 鏡像。

dd我使用向 SSD 寫入 1GB 的零進行了基準測試,它以 5 MB/s 的速度運行(我知道dd這不利於基準測試,但仍然...)。在基準測試期間,iostat利用率為 100%。就我而言,我透過調整 SSD 解決了效能問題。您可以使用強制它zpool trim rpool,並且可以使用啟用自動修剪zpool set autotrim=on rpool。調整磁碟後,我再次執行基準測試,運行時間為 7 秒(153 MB/秒)。

在尋找如何提高效能的過程中,我將其設定xattrsa維基百科我調整了zfs_arc_min/zfs_arc_max和其他核心參數。

我希望這也適合你。

答案2

您應該在 SSD 上使用 ashift=12 建立 zfs 池,以與 SSD 的 4096 個磁區保持一致。

檢查當前值

zpool get all pool_name | grep ashift

也要檢查分割區是否對齊到 1MB(2048 512 位元組磁區)

答案3

zfs 是寫入時複製 fs。這對於廉價 SSD 來說非常非常糟糕。你可以直接用Windows機器測試這個SSD,透過安全擦除它並做一個完整的寫入測試(我認為hd調整可以做到),你會看到這個SSD在SLC \ RAM耗盡時有什麼性能. .....它將非常糟糕...例如 50-70 mb/s,而不是 SATA 的 500+。還有一些便宜的SSD使用系統RAM而不是自己的RAM模組或SLC緩存,這對ZFS來說是不好的。我希望這個幫助有類似的問題,可以透過將 SSD 更改為 980 Pro 來解決(但由於成本原因,尺寸較小)

相關內容