-
メモリとディスク要件の決定 メモリ要件、スワップ領域、ディスク要件、最大バッファ数、最大ユーザ数、最大データベース・サイズを計算します。
-
Caché の最善のパフォーマンスを得るには、特定の Caché システム・パラメータに適切な値を計算する必要があります。これらの値から、ユーザは一定のシステム・レベル・パラメータを調整する必要があるかどうかを決定できます。ディスク・アクセスが必要なスワッピングやページングを最小限に抑える値を選択することにより、システムのパフォーマンスが向上します。
このセクションの内容をよく読んで、ご使用のオペレーティング・システムと Caché の両方に最適な値を計算してください。ここに記載されている表を使用して、現在のシステムから計算された値をシステム・レベル・パラメータとして記録してください。Caché のインストール時にこの表を参照できます。最適のパフォーマンスを得るためには、システムの稼動後、必要に応じて値を修正します。
ご使用のオペレーティング・システム・レベルのメモリ組織に精通していない場合は、適切なシステム・ドキュメントを参照してください。
このセクションでは、多くのシステムで必要となる基本的システム要件の概要を説明します。これらの要件はプラットフォームによって異なるため、詳細は使用しているプラットフォームのマニュアルを参照してください。
以下の表に記載されているメモリ使用状況の内訳から、Caché に必要なメモリ量を計算します。以下は、(Windows クライアント・システムから) Caché 構成マネージャを使用して、パラメータを変更することを想定しています。
メモリ要件
コンポーネント |
メモリ要件 |
オペレーティング・システム |
1800 KB (オペレーティング・システムに依存) |
Caché |
842 KB |
グローバル・データベース・キャッシュ |
2 KB ブロック・サイズを使用している場合は 2.2 KB、8 KB ブロック・サイズを使用している場合は 8 KB |
ルーチン・キャッシュ |
32 KB |
ユーザ・オーバーヘッド |
プロセスごとに 1024 KB。ユーザ・パーティション・サイズは、ユーザ・オーバーヘッドの一部を構成しているものですが、Caché 構成マネージャで調整できます。パーティションは、16 MB まで設定できます。 |
ネットワーク (存在する場合) |
各ネットワーク・システム・プロセス (DMNNET、DCP、RECEIVE) のポートごとに 300 KB。Caché ポートには、1 ポートにつき 2 つの DMNNET システム・プロセスがあります。さらに、ネットワークが共有するメモリ要件があります。 この値は、ポート数および構成されているリモート・ホスト数によって異なります。標準のシステムにおけるメモリ要件は約 304 KB です。 |
共有メモリ、グローバル・バッファまたはルーチン・バッファのスワップ領域に対し、Caché は既定で 7 MB を割り当てます。これは、Caché を初めてインストールする際に必要な容量です。大容量のアプリケーションや大規模なユーザをサポートする計画がある場合、以下の公式に従ってシステムを調整します。
(ルーチン・バッファ数) * 32 KB + (グローバル・バッファ数) *8 KB + 4 MB ___________________________________ = 必要な共有メモリ
ユーザのシステムで利用できるスワップ領域の容量は、実際のメモリに 256 KB を加算した値以下にならないようにしてください。
インターシステムズは、この最小値を考慮した上で、Caché に最低限必要なスワップ領域として以下の値をお勧めします。
(プロセス数 + 4)† * (1024 KB)‡ + 全グローバル・バッファ領域 + 全ルーチン・バッファ領域_____________________________________ = 最小のスワップ領域
† Caché コントロール・プロセス、ライト・デーモン、ガーベッジ・コレクタ、およびジャーナル・デーモンについては、プロセス数に 4 を追加します。また、各スレーブのライト・デーモンに 1 を加算します。プロセス数には、同時に実行する可能性があるすべてのユーザ・プロセスおよびジョブ・プロセスを含む必要があります。ネットワーク接続の場合、ユーザが実行している DMNNET デーモン数 (ポートごとに 2 つ) と RECEIVE システム・プロセス数に 1 を加算します。ご使用のシステムがサーバの場合、すべてのクライアントがサーバにアクセスしたときに生成される DCP プロセス数を追加します。
‡ 1024 KB という数字は概算です。これは、Caché の実行プログラムの現在のサイズから計算しているため、Caché の各プロセスに構成マネージャから割り当てられるパーティション・サイズによって変更します。多くのシステムでは、ユーザは必要な量だけのスワップ領域を割り当てようとしますが、システムによっては、最悪のケースに備えてスワップ領域を割り当てるように要求する場合もあります。このような場合、ユーザが指定するパーティション・サイズによっては、この数字を 1.5 MB まで上げる必要があります。
ご使用の UNIX システムで、必要なスワップ領域が使用可能かどうかを必ず確認してください。システムのスワップ領域に関する詳細情報については、使用している UNIX オペレーティング・システムのマニュアルを参照してください。
Solaris 8、および 9 プラットフォームのスワップ領域を計算する方法は、以下の通りです。
>swap –l
swapfile dev swaplo blocks free
/dev/dsk/c0t2d0s0 136,0 16 526304 526304
/dev/dsk/c0t2d0s1 136,1 16 2101184 2101184
Tru64 UNIX のスワップ領域を表示する方法は以下の通りです。
各スワップ・パーティションに関する情報は、以下の例のように表示されます。
Swap partition /dev/disk/dsk1b (default swap):
Allocated space: 16384 pages (128MB)
In-use space: 10452 pages ( 63%)
Free space: 5932 pages ( 36%)
Swap partition /dev/disk/dsk4c:
Allocated space: 128178 pages (1001MB)
In-use space: 10242 pages ( 7%)
Free space: 117936 pages ( 92%)
Total swap allocation:
Allocated space: 144562 pages (1.10GB)
Reserved space: 34253 pages ( 23%)
In-use space: 20694 pages ( 14%)
Available space: 110309 pages ( 76%)
AIX のスワップ領域を表示する方法は以下の通りです。
lsps –a
Page Space Physical Volume Volume Group Size %Used
Active Auto Type
hd6 hdisk2 rootvg 512MB 72
yes yes lv
HP-UX のスワップ領域を表示する方法は以下の通りです。
swapinfo (3M)
# /usr/sbin/swapinfo
Kb Kb Kb PCT START/ Kb
TYPE AVAIL USED FREE USED LIMIT RESERVE PRI NAME
dev 524288 138260 386028 26% 0 - 1 /dev/vg00/lvol2
reserve - 78472 -78472
memory 195132 191668 3464 98%
計算したスワップ領域以外に、以下の項目にもディスク容量が必要です。
-
-
CSP (Caché Server Pages) 用に 3 MB
-
-
-
Caché エンジン・リンク・ライブラリ用に 6.6 MB
-
-
Caché アプリケーション・データベースの必要量
-
ライト・イメージ・ジャーナル・ファイルの初期サイズ用に、バッファ・プール・サイズの約 12.5 %。ユーザのディスクにライト・イメージ・ジャーナル・ファイル用に十分な容量がない場合、Caché を起動したときに、システムが起動しなかったことを示すメッセージが表示されます。
-
インストール・プロシージャの完了後、インストール・ファイルを削除する必要はありませんが、ディスク容量が不足しているときには削除できます。インストール・プログラムは、ユーザに残りのディスク容量を示し、インストール・ファイルを削除するかどうかを尋ねます。
Caché は、以下の最大グローバル・バッファ数をサポートします。
-
32 ビットのプラットフォーム - 以下の条件にあてはまる 2 KB と 8 KB バッファの組み合わせ
-
-
32 ビットのプラットフォームでは 2 GB 以下
2 GB という値は、オペレーティング・システムがプロセス・データに割り当てる全体のアドレス領域で、共有メモリ、および Caché とオペレーティング・システムのデータが含まれます。したがって、実際には達成できない上限値を示しています。
-
64 ビットのプラットホーム - Tru64 UNIX、Solaris/UltraSPARC、HP-UX/HP-PA64、AIX/PowerPC64
グローバル・バッファ数はオペレーティング・システムと有効なメモリによってのみ制限されます。
Note:
2 KB のデータベースのみを使用するように構成している場合も、
CACHESYS と
CACHETEMP の Caché データベースは 8 KB になります。ユーザの指定にかかわらず、システムは常に、少なくとも 8 KB のバッファを 200 設定します。通常、特に Caché SQL を頻繁に使用する場合などは、この値を増やして設定します。
Caché は、以下の最大ルーチン・バッファ数をサポートします。
Caché が認める最大ユーザ数は、以下の内で
最も小さい値 です。
UNIX の
ulimit パラメータにより、プロセスで利用できる最大ファイル・サイズが決まります。Caché 管理者グループでは、
ulimit の値を無制限、あるいはユーザが持つ最大のデータベースと同じ大きさに指定する必要があります。
以下のセクションでは、さまざまな UNIX プラットフォームでの調節やパフォーマンスについて説明します。
Caché は、ユーザがサイズを定義したセットに、構造化可能なセマフォ数を使用します。パラメータ
SEMMNI、
SEMMNS、
SEMMSL は、セットごとのセマフォ数と Caché が使用するセマフォ総数を示します。共有メモリの割り当てを決定する UNIX のパラメータと Linux のパラメータは、
SHMMAX、
SHMMNI、
SHMSEG、および
SHMALL です。Caché は共有メモリを使用し、共有メモリのセグメントを 1 つ割り当てます。 このセグメントのサイズは、グローバル・バッファとルーチン・バッファに設定された領域によって異なります。以下の数式を使用して、セグメントの最小サイズを決定します。
ルーチン・バッファに必要な領域 + グローバル・バッファに必要な領域 + 4 MB _____________________________________ = 共有メモリ・セグメントのサイズ
データを複数のコンピュータに分散する場合、Caché は 2 次セグメントを割り当てます。既定では、2 次セグメントにはメモリを割り当てません 。(分散型データを使用する予定がある場合、構成のガイドラインについて、販売代理店もしくはインターシステムズ ジャパンのサポート窓口までお問い合わせください)。その他のシステム要件に従って、
NBUF と
NHBUF を変更できます。Caché は自身のディスクのすべてをバッファリングするため、
NBUF と
NHBUF を小さく設定しておく必要があります。以下の表は、UNIX パラメータの最も一般的な名前 (変更が必要になる場合もあります)、インターシステムズが推薦する各パラメータの値、それらの概要の一覧です。ユーザのパラメータ値が、少なくともこの最小値以上に設定されていることを確認してください。プラットフォームによっては、実装されないパラメータや異なる形で参照されるパラメータもあるため、詳細は、プラットフォーム固有の調節の注意を参照してください。
調節可能な UNIX パラメータ
カーネル・パラメータ |
最小推奨値 |
定義 |
CDLIMIT |
最大仮想ボリュームでのバイト数 |
最大ファイル・サイズ |
MSGMAX |
2 |
最大メッセージ・サイズ (単位はバイト) |
MSGMNI |
2 |
同時に存在する可能性がある、一意に識別できる最少メッセージ列数 |
NOFILES |
35 |
プロセスごとのオープン・ファイル数 |
SEMMNI |
SEMMNI と SEMMSL との積は、ユーザ・プロセス数に 4 加算した数よりも大きくなければなりません。 |
カーネル内のセモフォ識別子の数 (いつでも有効にできる一意のセマフォ設定の数) |
SEMMNS |
128 または ... |
システム内の総セマフォ数。ユーザ・プロセスには、ジョブ起動プロセスおよび他のソフトウェアに必要な、他のすべてのセマフォが含まれています。 |
実行される予定のプロセス数。プロセス テーブルが拡大する可能性がある場合、大きめの数値を使用します。 |
SEMMSL |
SEMMNI 参照 |
識別子リストごとの最大セマフォ数 |
SHMALL |
60 または ... |
システム全体の共有メモリの最大総数値 (単位は KB)。1000 は MCOMMON 共有域を示します。 |
1000 + 全グローバル・バッファ領域 + 全ルーチン・バッファ領域 * |
SHMMNI |
3 |
システム全体の最大共有メモリ識別子数 |
SHMSEG |
3 |
プロセスごとに付随する共有メモリ・セグメント数 |
SHMMAX |
60 または ... |
共有メモリ・セグメントの最大サイズ (KB)。 |
1000 + 全グローバル・バッファ領域 + 全ルーチン・バッファ領域 |
* これは、Caché UNIX で必要とされる
SHMALL の最小値です。システムの共有メモリを使用する他のすべてのアプリケーションについても考慮する必要があります。共有メモリの使用量が不確かな場合、
SHMSEG と
SHMMAX の積から
SHMALL を計算します。単位はページです。どのような場合でも、この大きい方の値を適用すれば十分です。
Important:
オペレーティング・システム・ドキュメントが明示していない限りは、割り当てられたメモリをサポートするため、十分なスワップ領域が必要です。 特定のオペレーティング・システム (Solaris など) では、Caché はページング不可能な
ロックされた共有メモリ・セグメント を作成します。しかし、オペレーティング・システム・ドキュメントが明示していない限り、これらのメモリ・セグメントはスワップ領域が必要です。
以下のセクションは、個別のプラットフォームに対する構成の問題を含みます。詳細は、使用しているプラットフォームのシステム・マニュアルを参照してください。
Tru64 UNIX サポート対象のリリースでは、以下のカーネル・パラメータを、割り当てるすべての共有メモリ・サイズに設定することをお勧めします (バッファ・プールやルーチン・バッファ、他のデータ構造に割り当てられた領域を含む)。
>sysconfig -q ipc
msg_max = 8192
msg_mnb = 16384
msg_mni = 64
msg_tql = 40
shm_max = 268435456
shm_min = 1
shm_mni = 128
shm_seg = 32
sem_mni = 16
sem_msl = 1000
sem_opm = 10
sem_ume = 10
sem_vmx = 32767
sem_aem = 16384
max_kernel_ports = 56864
ssm_threshold = 8388608
ssm_enable_core_dump = 1
shm_allocate_striped = 1
shm_enable_core_dump = 1
ipc:
shm_max = 268435456
sem_msl = 1000
新規の永続値を使用するには、システムを再起動するか、属性を実行時に調整することができる場合は、
sysconfig -r コマンドを使用して現在の値を変更します (詳細は、Tru64 UNIX System Configuration and Tuning guide の
Section 3.6.4 を参照してください)。
以下は、SUN Solaris バージョン 8 と 9 プラットフォームで Caché を構成し、調整するときに必要な説明です。
-
-
-
set shmsys:shminfo_shmmax=value
set shmsys:shminfo_shmmin=value
set shmsys:shminfo_shmmni=value
set shmsys:shminfo_shmseg=value
set semsys:seminfo_semmap=value
set semsys:seminfo_semmni=value
set semsys:seminfo_semmns=value
set semsys:seminfo_semmsl=value
set semsys:seminfo_semmnu=value
set semsys:seminfo_semume=value
共有メモリ変数
変数 |
概要 |
shmsys:shminfo_shmmax |
共有メモリ・セグメントの最大サイズ |
shmsys:shminfo_shmmin |
共有メモリ・セグメントの最小サイズ |
shmsys:shminfo_shmmni |
共有メモリ識別子の数 |
shmsys:shminfo_shmseg |
プロセスごとのセグメント数 |
semsys:seminfo_semmap |
セマフォ・マップでのエントリ数 |
semsys:seminfo_semmni |
セマフォ識別子数 |
semsys:seminfo_semmns |
システム内のセマフォ数 |
semsys:seminfo_semmsl |
ID ごとの最大セマフォ数 |
semsys:seminfo_semmnu |
undo 機能を使用したプロセス数 |
semsys:seminfo_semume |
プロセスごとの undo 構造数 |
-
# grep shmsys /etc/system
-
以下の共有メモリ値のサンプルは、大規模なデータベース・アプリケーションを実行している大規模なメモリ (128 MB) のシステムを割り当てます。
set shmsys:shminfo_shmmax=268435456
set shmsys:shminfo_shmmin=200
set shmsys:shminfo_shmmni=200
set shmsys:shminfo_shmseg=200
set semsys:seminfo_semmap=250
set semsys:seminfo_semmni=500
set semsys:seminfo_semmns=500
set semsys:seminfo_semmsl=500
set semsys:seminfo_semmnu=500
set semsys:seminfo_semume=100
以下の表は、IBM pSeries AIX 5.2 オペレーティング・システムに対して調整可能なパラメータの一覧です。
AIX プロセス間通信の調整可能なパラメータ
パラメータ |
目的 |
動的値 |
msgmax |
最大メッセージ・サイズを指定します |
最大値 4 MB |
msgmnb |
キューでの最大バイト数を指定します |
最大値 4 MB |
msgmni |
メッセージ・キュー ID の最大数を指定します |
最大値 4096 |
msgmnm |
キューごとの最大メッセージ数を指定します |
最大値 524288 |
semaem |
終了の調整最大値を指定します |
最大値 16384 |
semmni |
セマフォ ID の最大数を指定します |
最大値 4096 |
semmsl |
ID ごとの最大セマフォ数を指定します |
最大値 65535 |
semopm |
semop() 呼び出しごとの最大オペレーション数を指定します |
最大値 1024 |
semume |
プロセスごとの最大 undo エントリ数を指定します |
最大値 1024 |
semvmx |
セマフォの最大値を指定します |
最大値 32767 |
shmmax |
共有メモリ・セグメントの最大サイズを指定します |
32 ビット・プロセスでは最大値 256 MB、64 ビットでは最大値 0x80000000u |
shmmin |
共有メモリ・セグメントの最小サイズを指定します |
最小値 1 |
shmmni |
共有メモリ ID の最大数を指定します |
最大値 4096 |
-
-
-
-
-
-
上記の手順を、変更したいすべてのカーネル構成パラメータに対して繰り返します。
-
すべてのカーネル構成パラメータの設定が完了したら、
メニューから
を選択します。
カーネル構成パラメータの値の変更後、HP-UX オペレーティング・システムは自動的に再起動します。
Red Hat Linux プラットフォームの問題
Linux プラットフォームでの、既定の共有メモリ制限 (
shmmax) は、32 MB です。この値は Caché では小さすぎますが、
proc ファイル・システムで変更することができます。 その場合、再起動は必要ありません。
Caché 用にのみマシンを使用している場合、InterSystems では、共有メモリをメモリの総容量の約半分に設定することをお勧めします。
例えば 128 MB で設定したい場合は、以下のコマンドを入力します。
$ echo 134217728 >/proc/sys/kernel/shmmax
上記のコマンドは、スタートアップ時のスクリプトで入力することができます。
kernel.shmmax = 134217728
このファイルは通常、スタートアップ時に処理されますが、
sysctl は後で明示的に呼び出すこともできます。
SuSE LInux プラットフォームでの、既定の共有メモリ制限 (
shhmax と
shmall) は Caché にとって小さ過ぎます。この制限は、再起動しなくても
proc ファイル システム内で変更できます。
Caché 用にのみマシンを使用している場合、InterSystems では、共有メモリをメモリの総容量の約半分に設定することをお勧めします。
例えば 512 MB で設定したい場合は、以下のコマンドを入力します。
#sets shmall and shmmax shared memory
echo 536870912 >/proc/sys/kernel/shmall #Sets shmall to 512 MB
echo 536870912 >/proc/sys/kernel/shmmax #Sets shmmax to 512 MB
上記のコマンドは、スタートアップ時のスクリプトで入力することもできます。
また、
/etc/profile というファイルを変更することにより、システム メモリ ユーザ制限に対する設定を変更します。以下のような行を追加します。
#sets user limits (ulimit) for system memory resources
ulimit -v 512000 #set virtual (swap) memory to 512 MB
ulimit -m 512000 #set physical memory to 512 MB
この同じファイルで、以下のような行を追加することにより、
PATH パラメータと
CLASSPATH パラメータの値を永久に変更できます。
#sets env values PATH and CLASSPATH
export PATH=$PATH:/usr/cache/bin:/path/to/j2sdk/bin:/.
export CLASSPATH=
$CLASSPATH:/cache/dev/java/lib/CacheDB.jar:/path/to/otherjar/file:/.