MemoryMonitorHookクラス

Version:
日本語翻訳に関する免責事項

このページの翻訳はAIによって自動的に行われました。可能な限り正確な翻訳を心掛けていますが、原文と異なる表現や解釈が含まれる場合があります。正確で公式な情報については、必ず英語の原文をご参照ください。

MemoryMonitorHookクラスは、Process -> Private Bytesカウンターを使用してメモリ使用量を監視し、Sitecoreインストールではデフォルトで有効になっています。カウンタの値が指定したしきい値を超えると、次のような警告メッセージがログ ファイルに追加されます。

ManagedPoolThread #4 00:00:34 WARN  Memory usage exceeded the MemoryMonitor threshold.
ManagedPoolThread #4 00:00:34 WARN  Memory usage: 2,863,460,352

警告メッセージは、必ずしも問題があることを意味するわけではありません。デフォルトのしきい値は2Gです。Sitecoreアプリケーションに他の問題がない場合は、しきい値を増やすことができます。まず、しきい値を実際の物理メモリの85% に設定するのが適切です (たとえば、16 GBのRAMを搭載したシステムでは14 GB)。

MemoryMonitorHookクラスはSitecore.configファイルで構成され、構成にパッチを適用することで動作を変更できます。デフォルトの設定は次のとおりです。

<hook type="Sitecore.Diagnostics.MemoryMonitorHook, Sitecore.Kernel">
    <param desc="Threshold">2GB</param>
    <param desc="Check interval">00:00:05</param>
    <param desc="Minimum time between log entries">00:01:00</param>
    <ClearCaches>false</ClearCaches>
    <GarbageCollect>false</GarbageCollect>
    <AdjustLoadFactor>false</AdjustLoadFactor>
</hook>

設定

形容

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:00に指定すると、フックは実質的に無効になります。

ClearCachesGarbageCollectAdjustLoadFactorの各オプションは、エラーを軽減するため、またはトラブルシューティングの一環としてのみ有効にしてください。これらのオプションのいずれかを有効にすると、システムのパフォーマンスが影響を受けます。メモリ使用量に一貫した問題がある場合は、根本的な問題を見つける必要があります。開始点は次のとおりです。

  • キャッシュ・サイズが最適値に設定されていない可能性があります。

  • 一部のコンポーネントでメモリ リークが発生しています。

  • 大量のデータを使用する一括操作があります。

この記事を改善するための提案がある場合は、 お知らせください!