14.3.30 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.command.compaction.effect.thresholdパラメタに指定した値(デフォルトは50)がしきい値になります。
(f) --break
コンパクションを中断したいときに指定します。
コンパクションの中断は,ファイル単位で実行します。コンパクションを実行しているファイルの途中で中断することはできません。
(5) リターンコード
次の表に示すリターンコードが返却されます。
項番 |
リターンコード |
リターンコードの説明 |
|
---|---|---|---|
コマンド定義のeads.command.compatパラメタを指定していない場合 |
コマンド定義のeads.command.compatパラメタに0300を指定した場合 |
||
1 |
0 |
0 |
コマンドの実行に成功しました。 |
2 |
1 |
1 |
実行対象のファイルが存在しなかったため,コンパクションを実行しませんでした。 |
3 |
2 |
2 |
未使用ファイル数が--unused_fcオプションに指定した値以上に存在するため,コンパクションを実行しませんでした。 |
4 |
3 |
3 |
未使用ファイル数が--unused_fcオプションに指定した値に達する前に,実行対象のファイルがなくなりました。コンパクションは実行済みです。 |
5 |
10 |
10 |
--breakオプションが指定されましたが,コンパクションは実行されていません。 |
6 |
11 |
11 |
--breakオプションが指定されましたが,すでにコンパクションの中断が予約されています。 |
7 |
101 |
101 |
コマンドの初期化に失敗しました。 |
8 |
110 |
接続に失敗しました。 |
|
9 |
111 |
通信タイムアウトで失敗しました。 |
|
10 |
120 |
構文不正で失敗しました。 |
|
11 |
130 |
コマンドを実行できない状態のため失敗しました。 |
|
12 |
131 |
ほかのコマンドが実行中のため失敗しました。 |
|
13 |
150 |
コマンド実行中に失敗しました。 |
|
14 |
200 |
コマンドタイムアウトで失敗しました。 |
(6) 注意事項
-
このサブコマンドは,EADSサーバが稼働状態(running)でも実行できますが,性能に影響が出るおそれがあるため,注意してください。
-
eztool compaction --breakコマンドの実行中に,eztool compactionコマンドがタイムアウトまたは停止した場合は,eztool compaction --breakコマンドは正常終了しません。eztool compaction --breakコマンドがタイムアウトするまで待つか,またはeztool compaction --breakコマンドを停止してください。
-
あるファイルのコンパクションが終わってから,次のファイルのコンパクションが始まるまでの時間は,コンパクションの実行中ではありません。このため,eztool compaction --breakコマンドを実行しても,コンパクションが実行されていないというメッセージが出力され,中断できない場合があります。その場合は,eztool compaction --breakコマンドが実行できるまで,繰り返し実行してください。