Symantec Endpoint Protection サービスを再起動するまで、Endpoint Protection クライアントがウイルス定義ファイル等のコンテンツの更新に失敗する。
SEP 14 (任意のバージョン)
この問題は、複数の定義セットが同時にプロセスにマッピングされる時(例えば新しい定義セットがダウンロードされる時など)に起きうる ccSvcHst.exe のヒープ断片化により発生します。
Windows では、開始されたプロセスごとにメモリの予約領域が作成されます。このメモリ領域は、連続した(すなわち、一緒にヒープされた)メモリページからなるため、ヒープと呼ばれます。デフォルトヒープに加えてプロセスは、メモリのブロックで構成されるプライベートヒープをプライベートアドレス空間に作成できます。これらのメモリブロックは、小さなメモリ割り当てと大きなメモリ割り当ての両方でいっぱいになります。ヒープ断片化は、例えば、大きな割り当てがブロック内で解放されても、小さいものが残っているようなときに発生します。断片化により、必要なクリーンアップをヒープマネージャが実行することが不可能になり、最終的には障害の原因となります。
この問題は Symantec Endpoint Protection 14.3 RU5 (14.3.8259.5000) の 64 ビット OS 用クライアントで修正されました。最新版のシマンテックエンタープライズ製品の入手方法に関しては Symantec Enterprise Security ソフトウェアのダウンロード をご参照ください。
注: 14.3 RU5 にアップグレードした後、レジストリから MemoryMonitor と MemoryMonitorFreq キーを安全に削除することができます。
以前の SEP バージョンでの回避策:
SEP 14.2 MP1 以降 14.3 RU5 未満のクライアントでは、ccSvcHst.exe のメモリ空間を監視して自動的にフラッシュする新しい機能を手動で有効にすることができます。このメモリ管理機能はオプションで、14.2 MP1 以降で以下のレジストリ値を作成することによってのみ有効になります。
(32 ビットマシン)
HKLM\Software\Symantec\Symantec Endpoint Protection\SMC
(64 ビットマシン)
HKLM\SOFTWARE\WOW6432Node\Symantec\Symantec Endpoint Protection\SMC
1. MemoryMonitor (DWORD) - 使用可能にするメモリーの量。有効値は 350 〜 500 (MB) (10 進数) です。この値は必須です。有効値を指定すると機能が有効になります。
2. MemoryMonitorFreq (DWORD) - チェック間隔。有効な値は 1 〜 24 時間 (10 進数) です。この値が作成されていない場合は、デフォルト値の 8 時間が使用されます (オプション)。
設定は起動時に一度だけ確認されます。設定を変更するには、smc の再起動かシステムの再起動が必要です。
注意: この値は、関連する現象が発生しているマシンでのみ設定してください。
経緯
中間的な改修として、2017 年 11 月 13 日にリリースされた SDS 1.5.0.321 で、特定の状況でのメモリ予約を最大 50 % 削減しました。SEP 14 RU1 MP1 で ccSvcHst.exe 関連のメモリ使用をさらに改良しました。
14.3 では、14.2 のデータを使用してメモリモニターをチューニングし、メモリのオーバーフローをより適切に予測、処理し、メモリスペースをより効果的にリサイクルできるようにしました。
修正は、14.3 RU5 64 ビット OS 用クライアントに含まれています。
回避策
この問題に関連する症状が発生する可能性を減らすのに、以下の事項が役立ちます。