カーネル・パラメーターの変更 (Linux)
root インストールの場合、データベース・マネージャーは公式を利用して、自動的にカーネル・パラメーター設定を調整するので、それらの設定値を手動で更新する必要はありません。
始める前に
プロシージャー
Red Hat および SUSE Linux®でカーネル・パラメーターを更新するには、以下のようにします。
- ipcs -l コマンドを実行して、現在のカーネル・パラメーター設定をリストします。
- コマンド出力を分析して、現行値を以下の表の 強制最小設定 と比較することにより、カーネル設定を変更する必要があるかどうかを判別します。
IPC カーネル・パラメーター 強制最小設定値 kernel.shmmni (SHMMNI) 256 * <size of RAM in GB> kernel.shmmax (SHMMAX) < RAM のサイズ (バイト)>1 kernel.shmall (SHMALL) 2 * < デフォルト・システム・ページ・サイズの RAM のサイズ>2 kernel.sem (SEMMNI) 256 * <size of RAM in GB> kernel.sem (SEMMSL) 250 kernel.sem (SEMMNS) 256,000 kernel.sem (SEMOPM) 32 kernel.msgmni (MSGMNI) 1 024 * <size of RAM in GB> kernel.msgmax (MSGMAX) 65,536 kernel.msgmnb (MSGMNB) 65 536 3 - 32 ビットの Linux オペレーティング・システムでは、 SHMMAX の強制される最小設定は 4 294 967 295 バイトに制限されます。
- SHMALL はシステムに割り振ることができる仮想共有メモリーの合計を制限します。 各 Db2® データ・サーバーは、コミット済みメモリーとも呼ばれる、消費するシステム・メモリーの量を効率的に管理します。 Db2 データ・サーバーは、メモリー事前割り振りと動的メモリー管理をサポートするために、コミットより多くの仮想メモリーを割り振ります。 メモリー事前割り当てはパフォーマンスに寄与します。 動的メモリー管理は、別々の仮想共有メモリー領域の内部で実メモリー使用量を拡張したり縮小したりするプロセスです。 メモリー事前割り当ておよび動的メモリー管理を効率的にサポートするには、データ・サーバーが物理 RAM の総量よりも多くの仮想共有メモリーをシステムに割り当てることが頻繁に必要になります。 カーネルには、ページ数としてこの値が必要になります。
- MSGMNB にバイト数で指定されるメッセージ・キュー・サイズ限度を大きくすると、ロード・パフォーマンスが向上する可能性があります。
ipcs -q
コマンドを実行して、メッセージ・キューの使用状況を表示できます。 ロード操作の間にメッセージ・キューが容量限界に達した場合、または容量限界に到達しそうな場合は、メッセージ・キュー・サイズ限度のバイト数を増やすことを考慮してください。
以下のテキストは、ipcs コマンドの出力例で、//
の後に追加されているコメントはパラメーター名を示しています。# ipcs -l ------ Shared Memory Limits -------- max number of segments = 4096 // SHMMNI max seg size (kbytes) = 32768 // SHMMAX max total shared memory (kbytes) = 8388608 // SHMALL min seg size (bytes) = 1 ------ Semaphore Limits -------- max number of arrays = 1024 // SEMMNI max semaphores per array = 250 // SEMMSL max semaphores system wide = 256000 // SEMMNS max ops per semop call = 32 // SEMOPM semaphore max value = 32767 ------ Messages: Limits -------- max queues system wide = 1024 // MSGMNI max size of message (bytes) = 65536 // MSGMAX default max size of queue (bytes) = 65536 // MSGMNB
- 共有メモリー制限の最初のセクションから、 SHMMAX 制限は、 Linux システム上の共有メモリー・セグメントの最大サイズになります。 SHMALL 制限は、システム上の共有メモリー・ページの最大割り振りです。
- SHMMAX の値は、ご使用のシステム上の物理メモリーの量と同じ値に設定することが推奨されています。 ただし、x86 システムで必要な最小値は 268435456 (256 MB) で、64 ビット・システムの場合は 1073741824 (1 GB) です。
- 次のセクションは、オペレーティング・システムに使用できるセマフォーの量を示しています。 カーネル・パラメーター sem は、 SEMMSL、 SEMMNS、 SEMOPM、および SEMMNIの 4 つのトークンで構成されます。 SEMMNS は、 SEMMSL に SEMMNIを乗算した結果です。 データベース・マネージャーでは、必要に応じて配列の数 (SEMMNI) を増やす必要があります。 通常、 SEMMNI は、システム上で予期されるエージェントの最大数の 2 倍に、データベース・サーバー・コンピューター上の論理パーティションの数と、データベース・サーバー・コンピューター上のローカル・アプリケーション接続の数を乗算した値でなければなりません。
- 3 番目のセクションは、システム上のメッセージを示しています。
- MSGMNI パラメーターは、開始できるエージェントの数に影響を与えます。 MSGMAX パラメーターは 1 つのキューで送信できるメッセージのサイズに影響を与え、MSGMNB パラメーターはキューのサイズに影響を与えます。
- MSGMAX パラメーターを 64 KB (65536 バイト) に変更し、 MSGMNB パラメーターを 65536 に増やす必要があります。
- /etc/sysctl.conf ファイルを編集して、調整する必要があるカーネル・パラメーターを変更します。 このファイルが存在しない場合は、作成してください。このファイルに含める必要のある行の例を以下に示します。
#Example for a computer with 16GB of RAM: kernel.shmmni=4096 kernel.shmmax=17179869184 kernel.shmall=8388608 #kernel.sem=<SEMMSL> <SEMMNS> <SEMOPM> <SEMMNI> kernel.sem=250 1024000 32 4096 kernel.msgmni=16384 kernel.msgmax=65536 kernel.msgmnb=65536
- -p パラメーターを指定して sysctl を実行し、デフォルト・ファイル /etc/sysctl.confから sysctl 設定をロードします。
sysctl -p
- オプション: リブートのたびに変更が保持されるようにします。
- (SUSE Linux) boot.sysctl をアクティブにします。
- (Red Hat) rc.sysinit 初期化スクリプトは、 /etc/sysctl.conf ファイルを自動的に読み取ります。