MemoryMonitorHookクラス
このページの翻訳はAIによって自動的に行われました。可能な限り正確な翻訳を心掛けていますが、原文と異なる表現や解釈が含まれる場合があります。正確で公式な情報については、必ず英語の原文をご参照ください。
MemoryMonitorHookクラスはProcess -> Private Bytesカウンターを使ってメモリ使用を監視し、Sitecoreインストールではデフォルトで有効化されています。カウンターの値が指定された閾値を超えると、ログファイルに次のような警告メッセージが追加されます。
ManagedPoolThread #4 `00
` WARN Memory usage exceeded the MemoryMonitor threshold. ManagedPoolThread #4 `00` WARN Memory usage: 2,863,460,352警告メッセージがあっても必ずしも問題があるとは限りません。デフォルトの閾値は2Gです。Sitecoreアプリケーションに他に問題がなければ、閾値を上げることができます。良い出発点としては、実際の物理メモリの85%にしきい値を設定することです。例えば、16GBのRAMを持つシステムでは14GBです。
MemoryMonitorHookクラスはSitecore.configファイル内で設定されており、設定にパッチを当てることで動作を変更することができます。以下はデフォルトの構成です:
舞台設定
概要
Threshold
Sitecoreアプリケーションがこの量以上のメモリを使用すると、ログメッセージが書き込まれます。数値とスケール(KB, MB, GB)を指定することができます。無効値は2GBです。
Check interval
メモリチェック間の時間帯を指定します。
Minimum time between log entries
各ログエントリ間の最小時間を指定します。
ClearCaches
trueの場合、クラスはメモリ使用量の閾値を超えたときにキャッシュをクリアしようとします。デフォルトはfalseです。
GarbageCollect
trueの場合、メモリ使用閾値を超えたクラスはガベージを回収しようとします。デフォルトはfalseです。
AdjustLoadFactor
trueの場合、Sitecoreキャッシュの負荷率が増加し、キャッシュ内のエンティティ数が減少します。これによりメモリ使用量が減少します。デフォルトはfalseです。
!注Check interval設定を00:00
、フックは実質的に無効になります。
エラーを軽減したりトラブルシューティングの一環として、ClearCaches、GarbageCollect、AdjustLoadFactorのオプションのみを有効にしてください。これらのオプションのいずれかを有効にすると、システムのパフォーマンスに影響が出ます。メモリ使用に継続的に問題がある場合は、根本的な問題を見つける必要があります。出発点は以下の通りです:
- キャッシュサイズが最適な数値に設定されていない場合もあります。
- あるコンポーネントにメモリリークがあります。
- 大量のデータを使うバルク操作があります。