11.7.3. 正しい BlueStore スロットル値の決定
このセクションはオプションであり、正しい BlueStore スロットル値を決定するための手順を詳しく説明しています。この手順では、デフォルトのシャードを使用します。
テストを実行する前に、正確な測定値を取得するためにキャッシュをクリアします。次のコマンドを使用して、各ベンチマーク実行の間に OSD キャッシュをクリアします。
構文
ceph tell osd.OSD_ID cache drop
例
[ceph: root@host01 /]# ceph tell osd.0 cache drop
前提条件
- 稼働中の Red Hat Ceph Storage クラスターがある。
- ベンチマークする OSD をホストする Ceph Monitor ノードへのルートレベルのアクセス。
手順
Cephadm シェルにログインします。
例
[root@host01 ~]# cephadm shellOSD で単純な 4KiB ランダム書き込みワークロードを実行します。
構文
ceph tell osd.OSD_ID bench 12288000 4096 4194304 100例
[ceph: root@host01 /]# ceph tell osd.0 bench 12288000 4096 4194304 100 { "bytes_written": 12288000, "blocksize": 4096, "elapsed_sec": 1.3718913019999999, "bytes_per_sec": 8956977.8466311768, "iops": 2186.76216958768961 }- 1
osd benchコマンドの出力から得た全体的なスループット。この値は、デフォルトの BlueStore スロットルオプションが有効な場合のベースラインスループットです。
- 前のコマンドの出力から得た全体的なスループット (つまり IOPS) をメモします。
お使いの環境の BlueStore スロットル値を決定することが目的の場合は、
bluestore_throttle_bytesおよびbluestore_throttle_deferred_bytesオプションを 32 KiB (32768 バイト) に設定します。構文
ceph config set osd.OSD_ID bluestore_throttle_bytes 32768 ceph config set osd.OSD_ID bluestore_throttle_deferred_bytes 32768例
[ceph: root@host01 /]# ceph config set osd.0 bluestore_throttle_bytes 32768 [ceph: root@host01 /]# ceph config set osd.0 bluestore_throttle_deferred_bytes 32768それ以外の場合は、次のセクション (最大 OSD 容量の指定) に進みます。
OSD ベンチコマンドを使用して、前と同じように 4KiB ランダム書き込みテストを実行します。
例
[ceph: root@host01 /]# ceph tell osd.0 bench 12288000 4096 4194304 100- 出力からの全体的なスループットに注目し、その値を前の手順でメモしたベースラインスループットと比較します。
- スループットがベースラインと一致しない場合は、BlueStore スロットルオプションを 2 倍の値に増加させます。
- 得られたスループットがベースライン値に非常に近くなるまで、4KiB のランダム書き込みテストを実行し、値をベースラインスループットと比較して BlueStore スロットルオプションを 2 倍の値に増加させる手順を繰り返します。
たとえば、NVMe SSD を搭載したマシンでのベンチマーク実行時に、mClock の影響を最大化するために、BlueStore スロットルと遅延バイトの両方の値が 256 KiB に決定されました。HDD の場合、全体的なスループットがベースラインスループットとほぼ同じになる値は 40 MiB でした。
通常、HDD の場合、BlueStore スロットル値は SSD と比較して高くなることが予想されます。