instance_memory - インスタンス・メモリー構成パラメーター

このパラメーターは、1 つのデータベース・パーティションに割り振ることができるメモリーの最大量を指定します。 メモリー使用量の制限がある Db2® データベース製品を使用している場合、または特定の値に設定した場合。 これを指定しない場合、AUTOMATIC 設定により、インスタンスのメモリーは必要に応じて増えます。

構成タイプ
データベース・マネージャー。
適用
  • ローカルとリモート・クライアントを持つデータベース・サーバー
  • ローカル・クライアントを持つデータベース・サーバー
  • ローカル・クライアントおよびリモート・クライアントを持つパーティション・データベース・サーバー
パラメーター・タイプ
オンラインで構成可能 (インスタンス接続が必要)。
Db2 pureScale® 環境 およびパーティション・データベース環境でメンバーによって構成可能。
デフォルト [範囲]
AUTOMATIC[0 - システム・メモリー容量]。

インストール済み製品の Db2 ライセンス・メモリー制限により、最大値がさらに制限されます。 また、32 ビットのインスタンスは、最大 1,000,000 に制限されます。

単位
ページ (4 KB)。
割り振られるタイミング
該当なし。
解放されるタイミング
該当なし。

instance_memory パラメーターのデフォルト値は AUTOMATIC です。 AUTOMATIC という設定では、データベース・パーティションのアクティベーション時に値が計算されます。 計算値の範囲は、システム上のシステム・メモリー容量の 75 % から 95 % の間です。 このパーセンテージは、システムが大きければ大きいほど高くなります。 メモリー使用量の制限がある Db2 データベース製品では、計算値も、製品ライセンスによって許可されている最大値によって制限されます。 複数の論理データベース・パーティションを持つデータベース・パーティション・サーバーの場合、この計算値は、論理データベース・パーティションの数によって除算されます。

instance_memoryに指定できる値は、以下のとおりです。
  • AUTOMATIC - この値がデフォルト値です。 AUTOMATIC という設定では、データベース・パーティションのアクティベーション時に値が計算されます。 計算値の範囲は、システム上のシステム・メモリー容量の 75 % から 95 % の間です。 このパーセンテージは、システムが大きければ大きいほど高くなります。 メモリー使用量の制限がある Db2 データベース製品では、計算値も、製品ライセンスによって許可されている最大値によって制限されます。 複数の論理データベース・パーティションを持つデータベース・パーティション・サーバーの場合、この計算値は、論理データベース・パーティションの数によって除算されます。

    AUTOMATIC 設定を使用すると、インスタンスのメモリー使用量を必要に応じて増やすことができます。 STMM が使用可能で、データベース・メモリー全体のサイズをチューニングする場合、STMM は使用可能なシステム・メモリーに基づいてチューニングを行います。 このオプションにより、インスタンスの実際のメモリー使用量が間接的に決まります。 4 KB ページの数が計算されますが、これはライセンス・メモリー限度がある構成にのみ適用されます。 この場合、計算された instance_memory 値は、ライセンス・メモリー限度によって制限されます。

  • 0 - この値は、メンバー固有の設定をグローバル設定に戻す場合にのみ使用します。
  • 1 から 100 - 使用可能な RAM をローカル・パーティションの数で除算したパーセンテージを計算することにより、instance_memory 限度を指定します。 メモリー内の値は、計算された 4 KB ページの数を反映するように、メンバーの起動時に更新されます。 異機種混合のワークステーション・ハードウェア構成を持つ Db2 インスタンスにおいて、ワークステーション上の合計 RAM の Db2 使用量のパーセンテージを設定するために使用されます。
  • 101 からシステム・メモリー容量 - 4 KB ページの数としてメモリー限度を指定します。 STMM が有効な場合は、このオプションもチューニングのターゲットに相当します。
instance_memory パラメーターの動的更新
  • instance_memory パラメーターの動的更新には、インスタンス接続が必要です。 詳しくは、ATTACH コマンドを参照してください。
  • メモリー使用量の制限がある Db2 データベース製品では、instance_memory に対する動的更新は、ライセンス制限より小さい値か AUTOMATIC を示す必要があります。 そうでない場合、更新は失敗し、SQL5130N エラー・メッセージが返されます。
  • instance_memory パラメーターに対する動的更新は、システム・メモリー容量の量より小さい値か AUTOMATIC を示す必要があります。 そうでない場合、次の db2start が発行されるまで更新は据え置かれ、SQL1362W 警告メッセージが返されます。
  • instance_memory パラメーターに対する動的更新は、使用中のインスタンス・メモリーの現行量より大きい値を示す必要があります。 そうでない場合、インスタンスが再始動するまで更新は据え置かれ、SQL1362W 警告メッセージが返されます。 使用中のインスタンス・メモリーの量は、 db2pd -dbptnmem コマンドの出力の現在の使用量の値からキャッシュ・メモリーの値を減算することによって判別できます。 すべてのデータベース・パーティションにおいて最も高い使用中のインスタンス・メモリーが最小値になります。
  • instance_memory パラメーターがシステム・メモリー容量の量より大きな値に設定されると、次に発行する db2start コマンドは失敗し、SQL1220N エラー・メッセージが返されます。
  • instance_memory パラメーターが動的に AUTOMATIC に更新されると、値は即時に再計算されます。
複数メンバーのインスタンスではインスタンス・メモリー制限を固定値にすることが推奨される
メンバー番号を指定することにより、指定のメンバーに対して異なる制限を設定できます。 それ以外の場合、グローバル値がすべてのメンバーに適用されます。 メンバーごとにメモリー要件が異なる場合があるため、各メンバーのインスタンス・メモリー制限の固定値は、注意深く設定する必要があります。 以下の要因を考慮に入れる必要があります。
  • メンバーの更新時には、固定の制限のみ設定可能です。
  • 固定インスタンス・メモリー制限が Db2 pureScale 環境で設定されている場合は、STMM が各メンバーで独立して実行されるように構成されていることを確認してください。
  • 固定値のインスタンス・メモリー制限を設定したパーティション・データベース環境では、STMM を使用しないことが推奨されています。
  • メンバー節を使用するときは、同時に instance_memory パラメーター値を AUTOMATIC に設定することはできません。
メンバーのインスタンス・メモリーの設定をグローバル値に戻すには、以下のように値を指定します。
update dbm cfg member n using instance_memory 0
ここで、n はメンバー番号です。
Db2 メモリー使用量の制御

Db2 メモリーの消費は、ワークロードと構成によって異なります。 この要因に加えて、database_memory のセルフチューニングも 1 つの要因になります (使用可能にした場合)。 database_memory のセルフチューニングは、database_memoryAUTOMATIC に設定され、セルフチューニング・メモリー・マネージャー (STMM) がアクティブになっているときに使用できます。

メモリー使用量の制限がない Db2 データベース製品上でインスタンスが実行されており、instance_memory パラメーターが AUTOMATIC に設定されている場合、インスタンス・メモリー制限は実施されません。 データベース・マネージャーは必要に応じてシステム・メモリーを割り振ります。 database_memory のセルフチューニングが使用可能な場合、STMM は使用可能なシステム・メモリーをモニターしつつ、最適パフォーマンスを達成するために構成を更新します。 使用可能メモリーをモニターすることで、システム・メモリーが過剰にコミットされることがないようにします。

メモリー使用量の制限がある Db2 データベース製品上でインスタンスが実行されている場合、または instance_memory が特定の値に設定されている場合には、インスタンス・メモリー制限が実施されます。 データベース・マネージャーは、この制限までのシステム・メモリーを割り振ります。 この制限に達したとき、アプリケーションがメモリー割り振りエラーを受け取るようにできます。 その他の考慮事項を次に示します。
  • database_memory のセルフチューニングが使用可能になっており、instance_memory パラメーターが特定の値に設定されている場合、STMM は十分なフリー・インスタンス・メモリーを確保しつつ、最適パフォーマンスを実現するために構成を更新します。 この動作により、揮発性メモリー要件を満たすための十分な使用可能インスタンス・メモリーが確保されます。 システム・メモリーはモニターされません。
  • database_memory のセルフチューニングが有効になっていて、 instance_memory パラメーターが AUTOMATICに設定されている場合、 メモリー使用量に制限がある Db2 データベース製品には、 instance_memory パラメーター制限が適用されます。 STMM は、使用可能なシステム・メモリーと十分な空きインスタンス・メモリーを維持しつつ、最適なパフォーマンスを達成するために構成を更新します。
インスタンスのメモリー使用量のモニター

db2pd -dbptnmem コマンドを使用して、インスタンスのメモリー使用量の詳細を表示します。

新しい ADMIN_GET_MEM_USAGE 表関数を使用して、特定のデータベース・パーティションまたはすべてのデータベース・パーティションについて、 Db2 インスタンスによるインスタンス・メモリー使用量の合計を取得します。 この表関数は、現在の上限値も返します。

Tivoli® Storage FlashCopy® Manager 共有メモリーが割り振られると、システム全体の共有メモリー・サイズの各ローカル・データベース・パーティションの割合が、そのデータベース・パーティションの instance_memory 使用量に計上されます。

使用上の注意

  • cfg の更新の一部として「for member」節を使用すると、個々のメンバーに対して instance_memory 構成パラメーターを構成できます。 あるメンバーに対して値を指定した場合、その値はそのメンバーにのみ適用されます。 メンバーに対して値を指定しない場合は、instance_memory のグローバル値が使用されます。

    db2 get dbm cfg から戻される CLP 出力には、現行メンバーにのみ適用される内容が示されます。 メンバーがグローバル値を使用するか、メンバー別のオーバーライド値を使用するかにかかわらず、出力には現在使用されている値のみが表示されます。

    instance_memory が DPF または Db2 pureScale インスタンスでメンバーごとに構成されている場合、個々のメンバーの据え置き値は、個々のメンバーの instance_memory ではなく、 member_inst_mem 構成パラメーター名として返されます。

    $ db2 "update dbm cfg member 1 using instance_memory 12345678 immediate"
          DB20000I The UPDATE DATABASE MANAGER CONFIGURATION command completed successfully.
    
    $ db2 "select name, current dbpartitionnum as member, varchar(VALUE, 20) VALUE, varchar(DEFERRED_VALUE,20) DEFERRED_VALUE 
          from SYSIBMADM.DBMCFG where NAME = 'instance_memory' or NAME = 'member_inst_mem'"
    
    NAME MEMBER VALUE DEFERRED_VALUE
    -------------------------------- ----------- -------------------- --------------------
    instance_memory 1 12345678 30914469
    member_inst_mem 1 12345678 12345678
    
    2 record(s) selected.
  • pureScale 環境では、 instance_memoryAUTOMATIC に設定されているか、1 から 100 までの範囲のパーセンテージとして設定されている場合、計算では、メンバーと同じホストに存在する CF が必要とする CF_MEM_SZ が自動的に考慮されます。 さらに、有効なインスタンス・メモリー制限は、 instance_memory 設定から restart light メモリー (rstrt_light_mem) を減算することによって決定されます。