14.3.24 compaction(キャッシュデータファイルのコンパクション)
この項の内容は,ディスクキャッシュ,および2Wayキャッシュを使用する場合にお読みください。
- 〈この項の構成〉
(1) 機能
サブコマンドを実行したEADsサーバのキャッシュデータファイルをコンパクションします。
(2) 規則
-
このサブコマンドは,クラスタの状態に関係なく,EADsサーバが次の状態のときに実行できます。
-
初期化状態(initialized)
-
稼働状態(running)
-
閉塞状態(closed)
-
縮退状態(isolated)
-
-
このサブコマンドを実行したEADsサーバの中で,コンパクションの効果が最も大きいキャッシュデータファイルが実行対象に選ばれます。対象が複数ファイルになる場合は,コンパクションの効果が大きい順に処理されます。
(3) 形式
eztool compaction [--cache <キャッシュ名> [--range <レンジID>]] [--limit <実行回数>|--unused_fc <未使用ファイル数>] [--threshold <しきい値>]
eztool compaction [--break]
(4) オプションおよび引数
(a) --cache <キャッシュ名>
コンパクションを実行するキャッシュの名称を指定します。
キャッシュ名には,半角32文字までの半角英数字(0〜9,A〜Z,およびa〜z)が指定できます。
このオプションを指定しない場合は,すべてのキャッシュが対象となります。
(b) --range <レンジID>
レンジIDは,キャッシュ内のレンジを識別するための番号(1〜96の整数)です。データのコピー元EADsサーバのサーバIDと一致します。
コンパクションを実行するレンジを指定します。指定されたレンジIDのレンジに所属している各EADsサーバで,それぞれコンパクションします。
このオプションを指定しない場合は,指定されたキャッシュのすべてのレンジが対象となります。
(c) --limit <実行回数>
コンパクションの実行回数の上限(1度のコマンド実行でコンパクションするキャッシュデータファイル数の上限)を指定します。実行対象のファイルがない場合は,指定した値より少ない回数であっても終了します。
実行回数には,1から20971520までの整数が指定できます。
このオプションを指定しない場合,デフォルトは20971520です。
(d) --unused_fc <未使用ファイル数>
未使用のキャッシュデータファイルが,指定した数になるまでコンパクションを実行したい場合に指定します。すべてのレンジの未使用ファイル数が指定値以上の場合は,コンパクションは実行されません。実行対象のファイルがない場合や,コンパクションの実行回数が20,971,520回に達した場合は,指定した値よりも未使用ファイル数が少ない状態でも,警告を出して終了します。
未使用ファイル数には,1から32766までの整数が指定できます。
(e) --threshold <しきい値>
しきい値(単位:%)以上の効果があるキャッシュデータファイルを対象に,コンパクションを実行したい場合に指定します。しきい値以上の効果があるキャッシュデータファイルがない場合は,コンパクションは実行されません。
しきい値には,1から100までの整数が指定できます。
このオプションを指定しない場合は,コマンド定義のeads.management.compaction.effect.thresholdパラメタに指定した値(デフォルトは50)がしきい値になります。
(f) --break
コンパクションを中断したいときに指定します。
コンパクションの中断は,ファイル単位で実行します。コンパクションを実行しているファイルの途中で中断することはできません。
(5) リターンコード
0:成功
1:実行対象のファイルが存在しなかったため,コンパクションを実行しませんでした。
2:未使用ファイル数が--unused_fcオプションに指定した値以上に存在するため,コンパクションを実行しませんでした。
3:未使用ファイル数が--unused_fcオプションに指定した値に達する前に,実行対象のファイルがなくなりました。コンパクションは実行済みです。
10:--breakオプションが指定されましたが,コンパクションは実行されていません。
11:--breakオプションが指定されましたが,すでにコンパクションの中断が予約されています。
101:失敗
(6) 注意事項
-
このサブコマンドは,EADsサーバが稼働状態(running)でも実行できますが,性能に影響が出るおそれがあるため,注意してください。
-
コンパクションの中断を予約している場合に,このサブコマンドがタイムアウトしたり,プロセスが停止したりしたときは,中断待ちプロセスは完了しません。プロセスがタイムアウトするまで待つか,プロセスを停止してください。
-
あるファイルのコンパクションが終わってから,次のファイルのコンパクションが始まるまでの時間は,コンパクションの実行中ではありません。このため,--breakオプションを指定してコンパクションを中断しようとしても,コンパクションが実行されていないというメッセージが出力され,中断できない場合があります。その場合は,コンパクションが中断できるまで,eztool compaction --breakコマンドを繰り返し実行してください。