CF セルフチューニング・メモリー・パラメーター構成
インスタンスでは Db2 pureScale® インスタンスでは、いくつかの設定パラメータとレジストリ変数が連携して、 CFとしても知られるクラスタ・キャッシング機能のメモリ割り当てを制御します。
Db2 10.5.0.5 およびそれ以降の バージョン 10.5のフィックスパックでは、明示的に有効にすると、 クラスター・キャッシング・ファシリティー (CF) セルフチューニング・メモリーによってメモリー分散が最適化され、メモリー不足状態が回避されます。 明示的に有効になっていない場合、CF メモリー・パラメーター構成は、従来どおり機能します。
バージョン 11.5では、(CF) 自己転換メモリーはデフォルトで有効になっています。
- グループ・バッファー・プール (cf_gbp_sz)、
- ロック・マネージャー (cf_lock_sz)、
- 共用通信域 (cf_sca_sz)。
CF メモリーは、これらの CF メモリー・コンシューマー・パラメーター間で動的に分配されます。 さらに、複数データベース環境では、メモリーの必要に基づいてデータベース間で CF メモリーを動的に分配することができます。
db2set DB2_DATABASE_CF_MEMORY=AUTO DB2_DATABASE_CF_MEMORY を AUTO に設定すると、CF メモリー・コンシューマー・パラメーター (cf_gbp_sz、cf_lock_sz、cf_sca_sz) が AUTOMATIC に設定されているすべてのデータベースの CF セルフチューニング・メモリーがオンになります。 しかし、CF メモリー・コンシューマー・パラメーターが固定値に設定されているデータベースでは、CF セルフチューニング・メモリーはオフのままになります。- Db2 10.5.0.5 以降のフィックスパックでは、オンライン・フィックスパックを適用する場合、インスタンスが新しいフィックスパック・レベルにコミットされるまでレジストリー変数 DB2_DATABASE_CF_MEMORY を設定できません。
- Db2 pureScale 環境 の高可用性災害時リカバリー (HADR) では、CF セルフチューニング・メモリーを使用できます。 ただし、CF メモリー・チューニングは、1 次サイトでのみ行われます。 このレジストリー変数がスタンバイ・サイトで設定された場合、レジストリー変数はスタンバイ・サイトが 1 次サイトになったときに有効になります。
- データベースに割り当てる CF メモリーの量を動的に調整する場合は、cf_db_mem_sz を AUTOMATIC に設定します。
この場合、ワークロードに応じて、同じく cf_db_mem_sz を AUTOMATIC に設定しているすべてのデータベース間で CF メモリーを使用できるようになりますが、データベース・メモリーは 1 つのデータベース内でのみ使用できます。
また、データベース・メモリーは、CF メモリー・コンシューマー・パラメーター (cf_gbp_sz、cf_lock_sz、cf_sca_sz) の間で動的に配分されます。
- データベースの CF メモリーをメモリー・コンシューマー・パラメーターの間で動的に配分する場合は、cf_db_mem_sz を固定値に設定します。
この場合、データベース間ではメモリーが動的に配分されることはありませんが、CF メモリー・コンシューマー・パラメーター (cf_gbp_sz、cf_lock_sz、cf_sca_sz) の間ではメモリーが動的に配分されます。
複数のデータベースがある場合、すべてのデータベースで CF セルフチューニング・メモリーを使用することが最善ですが、インスタンス内のデータベースのサブセットのみが CF セルフチューニング・メモリーを使用するようにすることもできます。 つまり、1 つ以上のデータベースで cf_db_mem_sz を固定値に設定するということです。 固定値を使用する場合、データベースに同じ固定値を設定する必要はありません。 また、このときに、空き CF メモリーが不足する事態を回避には、データベースを活動化する順序が重要です。 最初に、固定値のデータベースから活動化してください。
Db2 10.5.0.5より前は、データベース・メモリー・パラメーター cf_db_mem_sz の値は静的でした。 Db2 10.5.0.5 以降のフィックスパックでは、 cf_db_mem_sz が AUTOMATICに設定されている場合、CF セルフチューニング・メモリーは、データベース・マネージャー構成パラメーター numdbに基づいて最大 CF データベース・メモリーを制限します。 予想されるアクティブ・データベースの数にできるだけ近い値に numdb を設定してください。 例えば、単一データベース環境の場合、numdb の値によって、単一データベースで使用される CF メモリーの量が決まります。 numdb が 1 に設定される場合、単一データベースですべての CF メモリーが使用されます。 しかし、numdb を 1 より大きい値に設定すると、その単一データベースにおいて少量のメモリーが使用できなくなります。
複数のデータベース環境では、CF メモリーはワークロードと使用可能メモリーに基づいて自動的に構成されます。 新規データベースがアクティブになると、既にアクティブになっているデータベースは、新たにアクティブになったデータベースのために、CF メモリーのワークロード・ベースの分配量に到達するまで CF メモリーを自動的に解放します。
- numdb 構成パラメーターで指定されている、同時にアクティブになるデータベースの最大数。
- CF メモリー構成パラメーター cf_mem_sz。
CF セルフチューニング操作による変更は、db2dump/stmmlog ディレクトリーにあるメモリー・チューニング・ログ・ファイルに記録されます。 ログは、CF メモリー・コンシューマー・パラメーターのサイズなど、役立つ診断情報を提供します。
cf_db_mem_sz を AUTOMATIC に設定すると、CF セルフチューニング・メモリーは、データベースが CF メモリーの妥当な量を使用するようにしながら、CF メモリー・コンシューマー・パラメーターの設定値を使用してデータベースをアクティブ化しようとします。 CF セルフチューニング・メモリーは、メモリー・コンシューマー・パラメーターをモニターし、新しい値を決定し、影響を受ける構成パラメーターのサイズを動的に変更します。 手操作による介入は必要ありません。 変化する CF メモリーの必要を満たすうえで、このような小さいながらも頻繁に発生する変更が必要になります。 複数のデータベースが存在し、CF メモリーの競合が発生した場合、CF セルフチューニング・メモリーは、アクティブ・データベースのワークロード・ベースの分配量に対して変更を加えます。
cf_db_mem_sz を固定値に設定した場合は、データベースが CF メモリーから取得できるメモリー量を指定することになります。 CF セルフチューニング・メモリーは、このデータベース・メモリー・パラメーターによって制限される CF メモリー内で機能します。
Database Configuration for Database
Description Parameter Current Value Delayed Value
------------------------------------------------------------------------------------------------------
...
CF Resource Configuration:
CF self-tuning memory = ON
CF database memory size (4KB) (CF_DB_MEM_SZ) = AUTOMATIC(8383744) AUTOMATIC(8383744)
Group buffer pool size (4KB) (CF_GBP_SZ) = AUTOMATIC(6589696) AUTOMATIC(6589696)
Global lock memory size (4KB) (CF_LOCK_SZ) = AUTOMATIC(1257728) AUTOMATIC(1257728)
Shared communication area size (4KB) (CF_SCA_SZ) = AUTOMATIC(135245) AUTOMATIC(135245)
Smart array size (4KB) (CF_LIST_SZ) = AUTOMATIC(315571) AUTOMATIC(315571)| CF メモリー・コンシューマー・パラメーター (cf_gbp_sz, cf_lock_sz, cf_sca_sz)
|
CF データベース・メモリー・パラメーター cf_db_mem_sz
|
CF セルフチューニング・メモリー (オンまたはオフ)
|
|---|---|---|
| 自動 (Automatic) | 自動 (Automatic) | データベースに対して ON を維持または設定します。 cf_db_mem_sz と 3 つのメモリー・コンシューマー・パラメーターがチューニングされます。 |
| 自動 (Automatic) | 固定値 | データベースに対して ON を維持または設定します。 cf_db_mem_sz はチューニングされません。 3 つのメモリー・コンシューマー・パラメーターが調整されます。 |
| 固定値 | 固定値 | データベースに対してオフにします。 このデータベースに CF セルフチューニング・メモリーはありません。 |
レジストリー変数 DB2_DATABASE_CF_MEMORY を AUTO から数値に変更して明示的に無効にすると、アクティブになっているすべてのデータベースの CF メモリー・チューニングがオフになります。 しかし、それらのデータベースにおいて、データベースおよび CF メモリー・コンシューマー・パラメーターによる CF メモリーの使用量は、すぐには調整されません。 現行の CF メモリー・サイズは、現行レベルで残ります。 データベース・マネージャーを再始動する必要があります。
cf_db_mem_sz が AUTOMATIC に設定されている複数データベース環境での CF セルフチューニング・メモリー
データベース・マネージャー構成パラメーター numdb が 2 (以上) に設定されている 1 つのデータベースだけの環境で実行している場合に、CF セルフチューニング・メモリーをオンにすると、そのデータベースがほとんどすべての CF メモリーを使用できるようになります。 (一部のメモリーは追加のデータベース活動化のために予約されています)。 後からもう 1 つデータベースが追加されてそのデータベースが開始されると、既にアクティブになっているデータベースは、新たにアクティブになったデータベースのために、必要が満たされるまで、または CF メモリーのワークロード・ベースの分配量に到達するまで CF メモリーを自動的に解放します。
- DB2_DATABASE_CF_MEMORY を AUTO に設定します。
- numdb を 3 に設定します。これは、インスタンス内のアクティブ・データベースの最大数が 3 であるという意味です。
- cf_db_mem_sz を AUTOMATIC に設定します。
- CF メモリー・コンシューマー・パラメーター (cf_gbp_sz、cf_lock_sz、cf_sca_sz のいずれか) を AUTOMATIC に設定します。
さらに、この場合、データベースは CF メモリーの必要性に基づいてメモリーを動的に分散させることができます。 その結果、メモリーが必要性の低いデータベースから必要性の高いデータベースに移動されます。 すべてのデータベースで CF メモリーの需要が等しい場合、各データベースに CF インスタンス・メモリーの 3 分の 1 のシェアが割り当てられます。
cf_db_mem_sz が固定値に設定され、メモリー・コンシューマー・パラメーターが AUTOMATIC に設定されている複数データベース環境の CF セルフチューニング・メモリー
2 つのデータベースで構成される環境で実行している場合に、CF セルフチューニング・メモリーをオンにすると、各データベースは、固定値によって指定された CF メモリーのパーセンテージを消費します。
- DB2_DATABASE_CF_MEMORY を AUTO に設定します。
- numdb を 2 に設定します。これは、インスタンス内のアクティブ・データベースの最大数が 2 であるという意味です。
- cf_db_mem_sz を固定値に設定します。
- 最初のデータベースで、cf_db_mem_sz を cf_mem_sz の 70% の固定値に設定します。
- 2 番目のデータベースで、cf_db_mem_sz を cf_mem_sz の 30% の固定値に設定します。
- CF メモリー・コンシューマー・パラメーター (cf_gbp_sz、cf_lock_sz、cf_sca_sz のいずれか) を AUTOMATIC に設定します。