Hitachi

インメモリデータグリッド uCosminexus Elastic Application Data store ユーザーズガイド


7.7.4 キャッシュの運用に依存するパラメタ

キャッシュの運用に依存するパラメタの一覧を次の表に示します。

なお,必ず指定するパラメタを太字で表記しています。

表7‒10 キャッシュの運用に依存するパラメタ一覧

項番

定義ファイル

パラメタ名

指定する値

デフォルト値

1

サーバ定義ファイル

eads.cache.disk.getError.isolate.enable

  • ture

  • false

true

2

キャッシュ定義ファイル

eads.cache.type

  • Memory

  • Disk

  • 2Way

なし

3

eads.cache.disk.info.dir

パス名

<運用ディレクトリ>/store

4

eads.cache.disk.<n>.dir

パス名

なし

5

eads.cache.disk.filesize

ファイルサイズ(16メガバイト〜128メガバイト)

なし

6

eads.cache.disk.filenum

ファイル数(8〜32768)

なし

7

eads.cache.disk.blocksize

データサイズ
  • 1キロバイト

  • 2キロバイト

  • 4キロバイト

  • 8キロバイト

  • 16キロバイト

  • 32キロバイト

  • 64キロバイト

  • 128キロバイト

1キロバイト

8

eads.cache.restore.dataSender.sendInterval

0〜60000(ミリ秒)

1000ミリ秒

9

eads.cache.restore.dataSender.sendSize

10240バイト〜2147483647バイト

102400バイト

注意事項

キャッシュ定義ファイルの次のパラメタの定義内容は,クラスタを構成する全EADsサーバで同じになるようにしてください。同じでないとキャッシュを作成できません。

〈この項の構成〉

(1) サーバ定義ファイル

(a) eads.cache.disk.getError.isolate.enable

ディスクキャッシュおよび2WayキャッシュでディスクI/Oエラーが発生した場合に,EADsサーバを縮退させるかどうかを指定します。

true:

ディスクI/Oエラーが発生した場合に,EADsサーバを縮退させます。

false:

ディスクI/Oエラーが発生しても,次に示すデータの整合性に影響を与えないAPIでのディスクI/Oエラーの場合は,EADsサーバを縮退させません。

  • API(get)

  • Groupインタフェースの次に示すメソッド

    ・getLastUpdateTime()

    ・getValueUsageSize()

  • eztool getコマンド

APIには,ユーザファンクション内で実行されるAPIを含みます。

このパラメタにfalseを指定すると,一時的なディスク障害によるディスクI/Oエラーがget処理などで発生してもEADsサーバが縮退しません。このため,可用性の向上が期待できます。

しかし,get処理だけが長時間続くようなAPの場合は,恒久的なディスク障害が発生しても縮退処理が行われないため,get処理のエラーが長時間にわたって発生してしまうおそれがあります。

なお,ディスクキャッシュおよび2Wayキャッシュを使用しない場合は,このパラメタの指定値は無視されます。

(2) キャッシュ定義ファイル

(a) eads.cache.type

キャッシュのキャッシュタイプを指定します。

Memory:

メモリキャッシュを使用します。

Disk:

ディスクキャッシュを使用します。

2Way:

2Wayキャッシュを使用します。

(b) eads.cache.disk.info.dir

キャッシュ情報ファイル,およびキャッシュインデックスファイルの格納先を指定します。

格納先ディレクトリのパスには,最大200文字の半角英数字(0〜9,A〜Z,a〜z),アンダースコア(_),コロン(:),およびセパレータ(Linuxの場合はスラッシュ(/),Windowsの場合は円符号(¥))が指定できます。

このパラメタに指定したディレクトリ下に格納されるファイルのファイル名については,「7.7.2(2) キャッシュファイルの格納先の設定」を参照してください。

注意事項

同一EADsサーバ内で,このパラメタの指定値の絶対パスとeads.cache.disk.<n>.dirパラメタの指定値の絶対パスが同じにならないようにしてください。

(c) eads.cache.disk.<n>.dir

キャッシュデータファイルの格納先を指定します。

<n>には,1〜データの多重度(eads.replication.factorパラメタの指定値)の整数を指定します。

データを多重化している場合は,データの多重度の数だけ,このパラメタを指定します。

格納先ディレクトリのパスには,最大1,024文字の半角英数字(0〜9,A〜Z,a〜z),アンダースコア(_),コロン(:),およびセパレータ(Linuxの場合はスラッシュ(/),Windowsの場合は円符号(¥))が指定できます。

このパラメタに指定したディレクトリ下に格納されるファイルのファイル名については,「7.7.2(2) キャッシュファイルの格納先の設定」を参照してください。

注意事項
  • 同一EADsサーバ内で,このパラメタの指定値の絶対パスとeads.cache.disk.info.dirパラメタの指定値の絶対パスが同じにならないようにしてください。

  • eads.cache.disk.info.dirパラメタに指定したディレクトリ直下のディレクトリを指定する場合,キャッシュ名と同じ名前のディレクトリを指定しないでください。

  • クラスタを構成するEADsサーバ間で,キャッシュデータファイルの格納先にSSDとHDDを混在させるなど,極端に速度差が発生するようなディスク構成にすることはできません。

  • 1台の物理マシン上で複数のEADsサーバを動作させる場合,EADsサーバごとに異なる格納先を指定してください。

(d) eads.cache.disk.filesize

1レンジ当たりのキャッシュデータファイルのサイズ(単位:メガバイト)を指定します。

(e) eads.cache.disk.filenum

1レンジ当たりのキャッシュデータファイルの面数を指定します。

(f) eads.cache.disk.blocksize

キャッシュデータファイルに1回で書き込むデータサイズ(単位:キロバイト)を指定します。

キャッシュデータファイルの格納先の媒体がHDDの場合は,このパラメタには1キロバイト(デフォルト)を指定してください。SSDの場合は,SSDのページサイズを指定してください。

(g) eads.cache.restore.dataSender.sendInterval

ディスクキャッシュ,および2Wayキャッシュの復旧処理でのデータ送信間隔(単位:ミリ秒)を指定します。

このパラメタの指定値とキャッシュ定義のeads.cache.restore.dataSender.sendSizeパラメタの指定値は,次の式を満たすように設定してください。

復旧処理のデータ送信に使用できる帯域(単位:bps)≧

 MAX(各キャッシュの復旧処理のデータ送信に使用できる帯域(単位:bps))

MAX:

計算結果の最も大きい値を選ぶことを示しています。

(例)MAX(3×6,4+7)の計算結果は18となります。

各キャッシュの復旧処理のデータ送信に使用できる帯域(単位:bps):

キャッシュごとに,次の式で求めます。

  • メモリキャッシュの場合

    復旧処理のデータ送信に使用できる帯域(単位:bps)≧

     (復旧処理で送信するデータサイズ(単位:バイト)×8)

     ÷{(復旧処理でのデータ送信間隔(単位:ミリ秒)

     +データ送信に掛かる時間(単位:ミリ秒))÷1,000}

復旧処理で送信するデータサイズ(単位:バイト):

サーバ定義のeads.restore.dataSender.sendSizeの指定値

復旧処理でのデータ送信間隔(単位:ミリ秒):

サーバ定義のeads.restore.dataSender.sendIntervalパラメタの指定値

データ送信に掛かる時間(単位:ミリ秒):

サーバ定義のeads.restore.dataSender.sendSizeパラメタに指定したサイズのデータ送信に掛かる時間(単位:ミリ秒)

  • ディスクキャッシュおよび2Wayキャッシュの場合

    復旧処理のデータ送信に使用できる帯域(単位:bps)≧

     (復旧処理で送信するデータサイズ(単位:バイト)×8)

     ÷{(復旧処理でのデータ送信間隔(単位:ミリ秒)

     +データ送信に掛かる時間(単位:ミリ秒))÷1,000}

復旧処理で送信するデータサイズ(単位:バイト):

キャッシュ定義のeads.cache.restore.dataSender.sendSizeの指定値

復旧処理でのデータ送信間隔(単位:ミリ秒):

キャッシュ定義のeads.cache.restore.dataSender.sendIntervalパラメタの指定値

データ送信に掛かる時間(単位:ミリ秒):

キャッシュ定義のeads.cache.restore.dataSender.sendSizeパラメタに指定したサイズのデータ送信に掛かる時間(単位:ミリ秒)

9.3.2(5) クラスタの復旧処理」の図中の「復旧処理(データ送信)」に掛かる時間を示します。この時間は環境によって異なります。

復旧処理に掛かる時間を短くすると,復旧処理の通信負荷が高くなります。逆に,復旧処理の通信負荷を低くすると,復旧処理に掛かる時間が長くなります。

メモリキャッシュを使用する場合,このパラメタの指定は無効になり,サーバ定義のeads.restore.dataSender.sendIntervalパラメタの指定値が有効となります。

復旧処理については,「9.3.2(5) クラスタの復旧処理」を参照してください。

注意事項

ディスクの書き込み性能を超えないように,このパラメタの指定値を決定してください。

(h) eads.cache.restore.dataSender.sendSize

ディスクキャッシュ,および2Wayキャッシュの復旧処理で送信するデータサイズ(単位:バイト)を指定します。

復旧処理では,データの整合性を回復するために,稼働中のEADsサーバが復旧対象のEADsサーバにデータを送信します。eads.cache.restore.dataSender.sendIntervalパラメタに指定した間隔で,このパラメタの指定値を超えるまで,10キロバイト単位でデータを連続して送信します。

メモリキャッシュを使用する場合,このパラメタの指定は無効になり,サーバ定義のeads.restore.dataSender.sendSizeパラメタの指定値が有効となります。

注意事項
  • 復旧処理では最低1個のデータを送信します。そのため,送信データのサイズが,このパラメタの指定値を超えることがあります。なお,このパラメタにEADsサーバに格納しているデータのサイズよりも小さい値を指定しても,送信量を制限することはできません。

  • 復旧データの転送速度がディスクの書き込み速度を超えないように,このパラメタの指定値を決定してください。