– DPFの場合
CEIL(CPU数÷同一サーバー上のDBパーティション数)-1
*CEIL=少数部分を切り上げ
z 各DBパーティションに配布されるページクリーナー数がほぼ均等、
かつCPU数を超えないように算出
算出値に影響する項目
z CPU数
z DPFの場合、DBパーティション数
その他最低限構成すべきパラメーター
ログ関連
z logfilsiz, logprimary, logsecond
ロック関連
z locklst, maxlocks
ソート関連
z sortheap, sheapthres
エージェント関連
z maxappls, maxagents, num_poolagents, num_init_agents
¾
num_poolagentsはV7とV8で仕様が異なる。
ソフトウェア製品のサポート技術情報「NUM_POOLAGENTS DBM構成パラメーターの変更について(DM-05-021)」
http://www.ibm.com/jp/domino01/mkt/cnpages1.nsf/page/default-000A5CD1
その他
z applheapsz, dbheap, intra_parallel, maxfilop
よくわからない場合は、構成アドバイザーで初期値を設定
z V9では、データベース作成時に、システムリソース(メモリー、CPU、等)を考慮し、構成パラメーターをデフォルト
で自動設定する
¾ 構成アドバイザーの機能によってパラメーターが決定される。
¾
V8.2までは、構成パラメーター(DBM, DB)のデフォルト値は固定
V9では、自己チューニング・メモリー(STMM)機能がデフォルトで稼動
z STMMでのチューニング対象になっているメモリー領域は、デフォルト値がAUTOMATICになっている
解説
ログ関連
z logfilsiz,logprimary,logsecond
¾ ログは、最大のトランザクション(通常大量更新を行うバッチジョブなど)で使用されるログ容量をスナップ ショットより測定し、その数値を元に(データ件数などの増加率などを含めて)見積もり、
LOGFILSIZ,LOGPRIMARY,LOGSECONDパラメータを調整します。
¾ ログ容量=LOGFILSIZ×(LOGPRIMARY+LOGSECOND)×4096(バイト)
¾ ファイルサイズ(LOGFILSIZ)をあまり大きくすると、ログ・ファイルの切り替えの際にディスクIOの負荷が大きく なり、あまり小さくすると頻繁にログ・ファイルが切り替えられるために(ログ・ファイル切り替え時には、バッ ファプール中の更新されてディスクに書かれていないダーティ・ページが、ディスクに書き出される)、バッファ プールが有効に利用されない場合があります。
¾ 活動ログに使用するファイルシステムは、ログ容量の約2倍用意する必要があります。これは、1時点で大量 のログが使用された場合にアロケーションされる、次のログファイルの為の領域です。ディスクに余裕がある 場合は、64GB(V.7の最大ログ32GBの倍)用意しておくと活動ログのファイルシステムが不足することが無くな ります。ローデバイスのログは、管理が難しいので使用しないことを推奨します。
ロック関連
z locklst,maxlocks
¾ ロックの為のメモリー領域(locklist)は、クライアント数や1つの更新単位(1つのCOMMITまでに
INSERT,UPDATE,DELETEによって更新される行の数)にあわせて調整する必要があります。
¾
Locklistが不足していると、ロックエスカレーション(通常ロックは行単位ですが、ロック用メモリーが不足した
場合、表単位のロックに自動的に変わること)が発生し、長時間のロック待ちやデッドロックなどが発生する可 能性があります。
¾ 但し、通常夜間などに実行される大量更新の為のバッチジョブ等に関しては、ロックエスカレーションが問題 にならない場合もあります。
¾ スナップショットの、locklist使用量およびLock Escalationの頻度などによって調整します。通常Lock
Escalationは、オンライン系トランザクションではできるだけ発生させないように、メモリーサイズを大きくします。
解説
ソート関連
z
sortheap,sheapthres
¾
ORDER BYを使用したSQLなどで使用するソート(分類)用のメモリー領域(SORTHEAP)
¾ ここで定義したメモリー領域では容量不足の場合、一時表スペースがソートのために使用されます。この場合、ディス ク上でソートを行うので、メモリー上の場合よりパフォーマンスが悪化する可能性があります。
¾ 各接続に対してアロケーションされるSORTHEAPを大きくした場合、インスタンス全体で使用できるソートヒープを制限 するDBM構成パラメータSHEAPTHRESも調整する必要があります。SHEAPTHRESの理想的なサイズは、インスタンス 配下の(SORTHEAP×同時接続数)です。
エージェント関連
z
maxappls,maxagents,num_poolagents,num_init_agents
¾ クライアントからDBサーバーに接続すると、サーバープロセスのバックエンドでエージェントが起動されます。
¾ エージェントの起動はサーバーへの負荷が非常に高い為、あらかじめサーバー上にエージェントを起動しておく
num_initagentsパラメータ(db2start時に起動)、または1回使用されたエージェントを解放せずに次回の接続時に再利
用するnum_poolagentsパラメータによって調整することができます。¾ エージェントはデータベースの非活動化によっては解放されません。num_initagentsおよびnum_poolagentsによって保 持されているエージェントはdb2stopによって解放されます。
¾
WAS等のアプリケーションサーバーを使用し、接続プールなどの機能によって接続数が固定されている場合、パフォー
マンスにあまり影響を与えませんが、接続・切断を繰り返すようなアプリケーションが存在する場合は、応答時間およ びサーバー負荷に大きな影響を与えるため、調整する必要があります。
¾
V9.5では、NUM_POOLAGENTSの意味合いが変更されました。
– V8,V9.1:アクティブなエージェントとプールされるエージェントの合計数をNUM_POOLAGENTSとして設定 – V9.5:プールされるエージェントの最大数を設定
¾
MAXAGENTSパラメーターはV9.5で廃止されました。
クライアントアプリケーションの最大数を制限したい場合は、MAX_CONNECTIONSで制限をかけます。
¾
DB2ではSMPサーバーのCPUを効果的に利用する為、intra_parallelの機能がありますが、これをONにした場合、エー
ジェントの数は接続数×並列度まで増加することになります。Intra_parallelはクライアント数が多いオンライントランザク ション系のサーバーでは使用しないことが推奨されています。¾ エージェントによって使用されるメモリー容量を見積もる場合、最低限1.5MB/接続、大きい場合(複雑なSQL等を実行 する場合)では32MB/接続まで実メモリーの空き容量を見積もる必要があります。
V9.5
V9.5
解説
その他
z applheapsz
¾ 複雑なSQL文の実行
より複雑なSQL文を処理する場合、アプリケーション・ヒープ(applheapsz)およびステートメント・ヒープ(stmtheap)が不 足する可能性があります。
特に、アプリケーション・ヒープは、Websphere
Application ServerのPrepared Statement Cacheのように1つの接続上
でステートメントを複数同時に実行するような場合に、大きくする必要があります。ただし、applheapszはデフォルトの128ページでは不足するケースがよくありますが、512または1024ページを指定すれば、かなり複雑なSQL文を処理で
き、ほとんどのケースでは十分なはずです。V9.5では、このパラメーターの意味合いが変更されています。以前の1つの接続のために設定されるパラメーターでは
なく、アプリケーション全体で消費されるアプリケーションメモリーの総量に変更になりました。¾ アプリケーション・ヒープ不足
もし、あなたが担当しているシステムで、applheapszに10MBを超えるような値(2500ページ以上)にしないと、「アプリ ケーション・ヒープ不足です」というエラーが発生する場合、そこで動作しているアプリケーション・プログラムが宣言し て使った資源(ステートメント・ハンドルなど)を確実にクローズしているかを確認してください。
そのような接続上にゴミを残すようなアプリケーションを動かしている場合、applheapszを極端に大きな値にしなければ、
動かしている途中でエラーが発生します。
¾
applheapszを大きくするということは、その接続数分だけメモリ上にゴミが残るということになります。そのようなシステ
ムでは、長時間の連続稼働によって、メモリの使用量が増加し、システムが不安定になる場合があります。
そのようなケースでは、アプリケーション・ヒープを増やして対応せずに、アプリケーション・プログラムを直して、接続上 にゴミを残さないようにしてください。
z dbheap
¾ バッファプールを大きくするとデータベースヒープが不足する場合があります。この場合、データベースヒープも大きく する必要があります。
¾ データベース・ヒープにはログ・バッファー、カタログ・キャッシュ(V8では別)が含まれます。これらを大きくする場合も データベース・ヒープを大きくする必要があります。
z intra_parallel
¾ このパラメータは情報系のシステムの為のものなので、OLTP系のシステムではデフォルトのOFFのままにし、YESに 設定しないようにしてください。