DB2 10.5 for Linux, UNIX, and Windows
カーネル・パラメーターの変更 (Linux)
root インストールの場合、データベース・マネージャーは公式を利用して、自動的にカーネル・パラメーター設定を調整するので、それらの設定値を手動で更新する必要はありません。
始める前に
手順
Red Hat および SUSE Linux 上でカーネル・パラメーターを更新するには、次のようにします。
- ipcs -l コマンドを実行して、現在のカーネル・パラメーター設定値をリスト表示します。
- このコマンド出力を分析し、現行値を以下の表に示す強制最小設定値 と比較して、カーネル設定値を変更しなければならないかどうかを判別します。 以下のテキストは、ipcs コマンドの出力例で、// の後に追加されているコメントはパラメーター名を示しています。
IPC カーネル・パラメーター 強制最小設定値 kernel.shmmni (SHMMNI) 256 * <GB 単位の RAM サイズ> kernel.shmmax (SHMMAX) <バイト単位の RAM サイズ>1 kernel.shmall (SHMALL) 2* <デフォルトのシステム・ページ・サイズ単位の RAM サイズ>2 kernel.sem (SEMMNI) 256 * <GB 単位の RAM サイズ> kernel.sem (SEMMSL) 250 kernel.sem (SEMMNS) 256,000 kernel.sem (SEMOPM) 32 kernel.msgmni (MSGMNI) 1,024 * <GB 単位の RAM サイズ> 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 -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
- まず最初のセクションの Shared Memory Limits で、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
- sysctl を -p パラメーターを指定して実行し、デフォルトのファイル /etc/sysctl.conf から sysctl 設定をロードします。
sysctl -p
- オプション: 毎回のリブート後に変更内容を保持させるには、次のようにします。
- (SUSE Linux) boot.sysctl をアクティブにします。
- (Red Hat) rc.sysinit 初期設定スクリプトは /etc/sysctl.conf ファイルを自動的に読み取ります。