appl_memory - アプリケーション・メモリー構成パラメーター
appl_memory 構成パラメーターは、アプリケーション・メモリー・セットのサイズを指定します。 アプリケーション・メモリー・サイズは、有効になっている instance_memory 制限に影響を与えます。
- アプリケーション・グループ共有ヒープ・メモリー・プール。 このメモリー・プールはすべてのアプリケーションのグローバル作業域であり、構成不可能です。
- アプリケーション・ヒープ・メモリー・プール。 このメモリー・プールはアプリケーションごとに構成され、applheapsz 構成パラメーターを使って構成可能です。
- ステートメント・ヒープ・メモリー・プール。 このメモリー・プールはステートメント・コンパイルごとに構成され、stmtheap 構成パラメーターを使って構成可能です。
- 統計ヒープ・メモリー・プール。 このメモリー・プールは RUNSTATS 操作ごとに構成され、stat_heap_sz 構成パラメーターを使って構成可能です。
- 構成タイプ
- データベース
- 適用
- ローカルとリモート・クライアントを持つデータベース・サーバー
- ローカル・クライアントを持つデータベース・サーバー
- ローカル・クライアントおよびリモート・クライアントを持つパーティション・データベース・サーバー
- パラメーター・タイプ
- オンラインで構成可能 (データベース接続が必要)
- Db2® pureScale® 環境およびパーティション・データベース環境のメンバーによって構成可能
- デフォルト [範囲]
- 自動 [128 - 4 294 967 295]
- 32 ビット・アーキテクチャーの場合、デフォルト値は AUTOMATIC、基礎となる値は 10000 です
- 64 ビット・アーキテクチャーの場合、デフォルト値は AUTOMATIC、基礎となる値は 40000 です
- 単位
- ページ (4 KB)
- 割り振りまたはコミットのタイミング
- Linux および UNIX オペレーティング・システムの場合
- データベースをアクティブ化したときに、初期サイズが割り振られます。 必要に応じて、さらにメモリーが割り振られます。
- Windows オペレーティング・システムの場合
- 必要に応じてメモリーが割り振られます。 データベース・アクティブ化の時点で最小限のアプリケーション・メモリー量がコミットされます。 必要に応じて、さらにメモリーがコミットされます。
- 解放されるタイミング
- アプリケーションを非アクティブ化したときに、すべてのデータベース・メモリーが解放されます。 ただし、割り振られたメモリーの部分とコミットされたメモリーの部分は、使用されなくなると、定期的に解放されてオペレーティング・システムに戻されます。
UNIX オペレーティング・システムでは、データベースの活動化中に初期アプリケーション・メモリー・サイズが割り振られた後、 Db2 は動的メモリー要件をサポートするために必要に応じて追加のメモリーを割り振ります。 追加のメモリー割り振りは、指定された固定サイズ制限に従います。 アプリケーション・メモリーはすべて共有メモリーとして割り振られ、データベースを非アクティブ化するまで保持されます。 割り振られる共有メモリーの合計は、仮想メモリー使用量だけに影響を与えます。 実メモリーによってこの仮想メモリーをバッキングする必要はありませんが、一部のオペレーティング・システムではスワップまたはページング・スペースによって仮想メモリーをバッキングする必要があります。 オペレーティング・システム・サポートについて詳しくは、「 オペレーティング・システム・サポート 」セクションを参照してください。
Windows オペレーティング・システムでは、アプリケーション・メモリーは専用メモリーとして割り振られます。 アプリケーション・メモリー割り振りは、指定された固定サイズの制限に従属します。 割り振られたメモリーが使用されなくなると、動的に解放されるか、再利用のために保持されます。 未解決のメモリー割り振りはすべて、データベースが非アクティブ化されたときに解放されます。
コミット済みのメモリーとは、オペレーティング・システムでバッキングされるメモリーのことです。 メモリー・プールでの必要に応じて、割り振られたメモリーがコミットされます。 コミット済みメモリーがメモリー・プールにとって必要でなくなった場合は、パフォーマンス改善のためにキャッシュに入れられるか、解放されてオペレーティング・システムに返されます。 また、アプリケーション・メモリー・サイズが動的に削減された場合にも、必要に応じてメモリーが解放またはコミット解除されます。 コミット済みのメモリーはすべて、データベースが非アクティブ化されたときに解放されます。
appl_memory をデフォルト設定の AUTOMATIC のままにすることをお勧めします。 アプリケーション・メモリーを不十分な固定値に設定した場合、結果として、さまざまなメモリー不足障害がアプリケーションに返されます。 メモリーの固定値を設定する場合には、その前に必ず詳細なテストを行ってピーク所要量を判別しておく必要があります。 アプリケーション・メモリーはセルフチューニング・メモリー・マネージャー (STMM) によってチューニングされませんが、STMM はアプリケーション・メモリー要件の変動に合わせて補正するために database_memory を調整します (database_memory のセルフチューニングが有効になっている場合)。
オペレーティング・システムのサポート
オペレーティング・システム | 使用可能なサポート |
---|---|
AIX | デフォルトでは、パフォーマンス上の利点があるミディアム (64K) ページを使用します。 また、AIX でのみラージ・ページ (16MB) が可能です。1 |
Linux | 割り振られた共有メモリーは、仮想共有メモリー制限 (shmall) にカウントされます。 |
Windows | Windows プラットフォームでは追加の考慮事項はありません。 |
注:
|
モニター
db2 "select member, substr(db_name,1,10)as db_name, substr(memory_set_type,1,10) as set_type,
memory_set_size, memory_set_committed, memory_set_used, memory_set_used_hwm
from table(mon_get_memory_set('APPLICATION')"
以下の情報が戻されます。MEMBER DB_NAME SET_TYPE MEMORY_SET_SIZE MEMORY_SET_COMMITTED MEMORY_SET_USED MEMORY_SET_USED_HWM
------ ---------- ---------- -------------------- -------------------- -------------------- --------------------
0 SAMPLE APPLICATION 154927 68616 67829 68616
0 TEST APPLICATION 238092 123404 123404 123404
2 record(s) selected.
この場合、アプリケーション・メモリー・セットは、 instance_memory(MEMORY_SET_SIZE)
の 154927KB と system memory (MEMORY_SET_COMMITTED)
の 68616KB を使用しています。 このうち 67829KB (MEMORY_SET_USED)
がメモリー・プールに割り当てられています。
db2pd -db <database_name> -memsets -mempools, db2pd -dbptnmem