不安定な(ひどい)ディスク パフォーマンス I/O(Debian/Proxmox)

不安定な(ひどい)ディスク パフォーマンス I/O(Debian/Proxmox)

まとめ

Proxmox VE 7 (Bullseye) の ZFS SSD ミラーで、I/O パフォーマンスが劇的に変動しているのがわかります。私は初心者すぎて、自分で原因を突き止めることができません。

詳細

これは現実世界のタスクでは非常に顕著にパフォーマンスが低いため、単なる人工的なベンチマークではありません。しかし、これを診断するために、以下を実行しています。

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

VM をアクティブにせずに Proxmox ターミナルから「ベアメタル」を実行しています。結果は大きく異なります。次の 2 つの例を示します。

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 コントローラーに移動しました。何も結果は変わりません。

2 台目のサーバーも同様の構成になっていますが、ミラーには古い (そして一致しない) SSD が使用されています。この問題は発生していません。ただし、サーバーのハードウェアは異なります。悪い結果は、以下に説明するシステムから得られています。「正常」に見える結果は、E3-1275v2 を搭載した古い改造 PC から得られています。

私が期待しているのは、この問題の診断に役立つヒントです。問題はレイテンシーにあるようです。原因は何でしょうか? 次に何をすべきでしょうか?

前もって感謝します!

システム (役に立つなら)

  • MB: スーパーマイクロ X9DRi-F
  • CPU: デュアル Xeon E5-2650 v2
  • RAM: 128 GB (8 x 16GB)
  • SATA コントローラ: オンボード SATA 3 (別途 SATA 2 もテスト済み)
  • SSD: 2x 1GB TeamGroup SATA (安いですが、問題ないはずです)
  • PCIe カード:
    • メラノックス MCX312B
    • LSI SAS9207-8i (8 つのマウントされていないディスクに接続された HBA...VM にパススルー)
    • Nvidia GTX 750 (VM にパススルー)

答え1

昨日、私の新しいセットアップでも同じようなことが起こりました。32 GB の RAM と 2 台の SSD Crucial BX500 (これらは消費者向けグレード) を搭載した Intel 11500 上の Proxmox VE 7 を ZFS ミラーとして構成しました。

ddを使用してSSD に 1GB のゼロを書き込むベンチマークを実行したところ、5 MB/秒で実行されました (ddベンチマークには適していないことは承知していますが、それでも...)。ベンチマーク中、iostatは 100% の使用率でした。私の場合は、SSD をトリミングすることでパフォーマンスの問題を解決しました。 を使用して強制的に実行することもzpool trim rpool、 を使用して自動トリミングを有効にすることもできますzpool set autotrim=on rpool。ディスクをトリミングした後、ベンチマークを再度実行したところ、7 秒 (153 MB/秒) で実行されました。

パフォーマンスを向上させる方法を見つける過程で、私は推奨されているように設定しxattrました。saプロクスモックスウィキzfs_arc_minそして、 /とその他のカーネルパラメータを調整しましたzfs_arc_max

これがあなたにも役立つことを願っています。

答え2

SSD の 4096 セクターに合わせるには、ashift=12 で SSD 上に zfs プールを作成する必要があります。

現在の値を確認する

zpool get all pool_name | grep ashift

また、パーティションのアラインメントを1MB(2048 512バイトセクター)にチェックします。

答え3

zfs はコピーオンライト ファイルシステムです。安価な SSD には非常に不向きです。この SSD を Windows マシンで直接テストするには、セキュア消去して完全な書き込みテストを実行します (HD チューンで実行できると思います)。すると、SLC \ RAM が不足しているときのこの SSD のパフォーマンスがわかります... 非常に低くなります... SATA の 500 mb/s 以上ではなく、50-70 mb/s 程度です。また、一部の安価な SSD は、独自の RAM モジュールまたは SLC キャッシュではなくシステム RAM を使用しますが、これも zfs には不向きです。この情報が、SSD を 980 pro に変更することで解決した同様の問題 (ただし、コストの関係でサイズが小さい) に役立つことを願っています。

関連情報