4 Oracle Exalogic Elastic Cloud環境のWebLogic ServerのCooperative Memory Management (CMM)
この章の内容は次のとおりです。
Cooperative Memory Management (CMM)について
Cooperative Memory Management (CMM)は、WebLogic Serverリソースでマシン全体のメモリー使用率に基づいてメモリー使用率を調整できるようにすることにより、メモリーの有効活用を促進するExalogic Elastic Cloud環境のWebLogic機能です。
CMMを有効にすると、オペレーティング・システムのメモリー使用量が監視され、相対的な不足レベルがメモリー不足エージェントによってパブリッシュされます。パブリッシュされる不足レベルは、0(不足なし)から10(最高の不足レベル(重大なオーバーロード))の間の範囲です。メモリー不足リスナーを登録したWebLogic Serverリソースは、INFOメッセージをサーバー・ログに書き込み、使用可能なメモリーの使用率を上下するためにサーバー・リソースを適切に管理して、メモリー不足レベルの変更に対応します。
高いまたは増加しているメモリー不足条件では、メモリー不足エージェントに登録されたリソースはサーバーのオーバーロードを防ぐためにメモリー使用率を下げる次のような方法を実装します。
-
キャッシュのサイズの削減
-
圧縮可能なメモリー内データの圧縮
-
新しい処理の拒否
-
一時的にパフォーマンスを低下させてシステムのスラッシングを削減し、正常なサーバー・リカバリを実装します。
エージェントによって測定されたメモリー不足が変更されるまで、指定された不足レベルでサーバーが実行するアクションが有効なままです。たとえば、データ・ソース・メモリー不足リスナーが4の不足を受け取った場合、使用可能な文キャッシュ・サイズが60パーセントに減ります。文キャッシュの実際の使用量を75パーセントに改善するには、メモリー不足エージェントによって報告されたメモリー不足レベルを2に変更する必要があります。表4-1を参照してください。
環境でのCMMの使用
CMMは、Exalogic Elastic Cloud環境でのみ使用可能です。『ライセンス情報』のExalogic Elastic Cloudソフトウェアに関する項を参照してください。
環境でCMMを有効化するには:
-
存在しない場合、次を環境のWebLogicサーバーを起動するために使用される
${DOMAIN_HOME}/bin/startWebLogic.sh
スクリプトに追加します。次に例を示します。. . . if [ -f ${WL_HOME}/server/bin/saveMemory.sh ] ; then . ${WL_HOME}/server/bin/saveMemory.sh fi . . .
次を含む
${WL_HOME}/server/bin/
にあるsaveMemory.sh
ファイルを作成します。#!/bin/sh # The following flag is used to enable CMM export SAVE_MEMORY=true
-
環境のすべてのサーバーがExalogicの最適化を使用していることを確認します。「Exalogicの最適化の有効化」を参照してください
-
環境内のすべてのサーバーを再起動して、変更を有効にします。
WebLogicデータ・ソースのCMM
文キャッシュ・サイズと接続プールの縮小に対する構成可能な調整を行って、メモリー不足イベントに対応するようWebLogic Serverデータ・ソースを構成できます。
文キャッシュ・サイズのメモリー管理
ゼロ以外のメモリー不足状態の変更を受け取った場合、メモリー不足レベルとキャッシュ・サイズの割合の構成されたマッピングに従ってすべてのデプロイされたデータソースに対して準備された文キャッシュが調整されます。デフォルトでは、WebLogicデータソースには、プールされたJDBC接続ごとに10の文キャッシュ・サイズが設定されます。
ノート:
キャッシュ・サイズを0(ゼロ)に設定して文キャッシュを無効化しているか、Oracle JDBCドライバ文キャッシュを使用しているデータソース構成は、メモリー不足イベントの影響を受けません。
次の表の説明に従って、キャッシュ・サイズの重みに対するデフォルトのメモリー不足レベルが段階的に設定されます。
表4-1 デフォルトのメモリー不足キャッシュ・サイズの重み
レベル | キャッシュ・サイズ(%) |
---|---|
0 |
100 |
1 |
90 |
2 |
80 |
3 |
70 |
4 |
60 |
5 |
50 |
6 |
40 |
7 |
30 |
8 |
20 |
9 |
10 |
10 |
0 |
次のJavaシステム・プロパティを設定して、デフォルトの文キャッシュの重みをサーバー開始時間に変更できます。
-Dweblogic.jdbc.cmm.statementCacheWeights=weights
weightsは、形式level=percent reduction、level=percent reduction...の1つ以上の名前/値ペアです。
この表記法を使用する場合、デフォルトの重みは次のとおりです。
1=10,2=10,3=10,4=10,5=10,6=10,7=10,8=10,9=10,10=10
パーセンテージが累積されるため、合計を100以下にする必要があります。各レベルのパーセンテージの値は、構成されたキャッシュ・サイズを減らす割合を示します。