Name

vfs_aio_ratelimit — Samba用の非同期I/Oレートリミットの実装

Synopsis

vfs objects = aio_ratelimit

説明

この VFS モジュールは samba(7) システムの一部である。

aio_ratelimit VFSモジュールは、非同期 I/O 操作に 上限を適用することで、特定の共有に対する実行時のレート制限を有効にする。 管理者は、この制限を 1 秒あたりの操作数または 1 秒あたりのバイト数と して定義できる。これらの制限の 1 つを超えると、現在の I/O 負荷に基づいて 遅延値(マイクロ秒)が計算され、非同期 I/O 操作に追加され、 暗黙のスループット上限が生成される。

設定可能なバースト許容値は、バースト乗数を介してサポートされ、 長期的な上限を実施しながら、定常状態のレートを超える短期バーストを 可能にする。レートリミッタの状態は定期的にローカル TDB に保持されるため、 クライアントの再接続と smbd の再起動にわたって一貫して制限を適用できる。

このモジュールは非同期 VFS READ/WRITE 操作のみで動作する。

このモジュールはスタック可能である。

設定

そのままの使用法:

	[share]
	path = /path/to/share
	vfs objects = aio_ratelimit

オプション

aio_ratelimit:read_iops_limit = count

遅延を挿入するまでの 1 秒当たりのREAD操作の上限。 0 は制限がないことを意味する。

既定値: 0, Max: 1000000

例: aio_ratelimit:read_iops_limit = 1000

aio_ratelimit:read_bw_limit = count

遅延を挿入する前のREAD帯域幅の上限(バイト/秒)。 0 は制限がないことを意味する。サイズ接尾辞(K, M, G, T)が サポートされる。

既定値: 0, Max: 1T

例: aio_ratelimit:read_bw_limit = 2M

aio_ratelimit:read_burst_mult = value

READ操作のバースト乗数。10 分の 1 で表現する(例:15=1.5x)。 トークンバケット容量をレート制限の倍数として定義し、 定常状態のレートを超える短期間のバーストを許可する。

既定値: 15 (1.5x), Max: 100 (10x)

例: aio_ratelimit:read_burst_mult = 20

aio_ratelimit:write_iops_limit = count

遅延を挿入するまでの1秒当たりの書込み操作の上限。 0 は制限がないことを意味する。

既定値: 0, Max: 1000000

例: aio_ratelimit:write_iops_limit = 1000

aio_ratelimit:write_bw_limit = count

遅延を挿入する前のWRITE帯域幅の上限(バイト/秒)。 0 は制限がないことを意味する。サイズ接尾辞(K, M, G, T)が サポートされる。

既定値: 0, Max: 1T

例: aio_ratelimit:write_bw_limit = 1M

aio_ratelimit:write_burst_mult = value

10分の1で表される書き込み操作のバースト乗数(例:15=1.5x)。 トークンバケット容量をレート制限の倍数として定義し、 定常状態のレートを超える短期間のバーストを許可する。

既定値: 15 (1.5x), Max: 100 (10x)

例: aio_ratelimit:write_burst_mult = 15

バースト時の動作

read_burst_multおよびwrite_burst_mult パラメータは、設定されたレート制限に関連するレートリミッタの最大 バーストキャパシティを制御する。有効バーストキャパシティは、 次のように計算される。rate_limit * (burst_mult / 10)

たとえば、read_iops_limit = 1000read_burst_mult = 15では、バースト容量は 1000*1.5=1500 IOPSである。

これにより、設定された長期的な制限を適用しながら、定常状態のレートを 超える短期的なI/Oバーストが可能になる。

適切なバースト乗数は、ワークロードの特性によって異なる。非同期 I/O リクエストが大きいワークロードや変化しやすいワークロードでは、 早すぎるスロットリングを回避するために、より高いバースト値が必要に なる場合がある。一方、より小さいワークロードや待機時間の影響を 受けやすいワークロードでは、より低い値が有効な場合がある。

Note

read_burst_multwrite_burst_multの パラメータは、長期的な平均スループットを変化させず、それぞれ read_iops_limit/read_bw_limitwrite_iops_limit/write_bw_limit によって制限されたままである。より高いバースト値は、初期の加速と アイドル期間からの回復にのみ影響する。

バージョン

このマニュアルページは Samba バージョン 4.24.0 用である。

著者

オリジナルの Samba ソフトウェアと関連するユーティリティは、Andrew Tridgell によって作成された。現在 Samba は Samba Team に よって、Linuxカーネルの開発と同様のオープンソースプロジェクト として開発が行なわれている。

日本語訳

このドキュメントは、Samba 4.24.0 - 4.24.0 に対応する。

このドキュメントの翻訳は

  • 太田俊哉 (ribbon@samba.gr.jp)

によって行なわれた。