none
Windows Server 2016 2~3日で応答しなくなる (Group Policy Clientのメモリリーク) RRS feed

  • 質問

  • DCとして使用しているWinSV2016で現象が発生しています。

    再起動してから1日程度経過したサーバーにログオンしてタスクマネージャーを見てみると、
    サービスホスト・ローカルシステム が異様にメモリを使用していました。最終的にはメモリ不足で応答が無くなるのであろうと推測されます。

    丸をつけたサービスは停止・再起動できたサービスですが、これらを再起動してみてもメモリは開放されませんでした。

    メモリを開放するには、タスクマネージャーでサービスホスト・ローカルシステム自体を選択してタスクの終了を行うしかありません。
    また、プロセスを終了しても再起動時と同じようなメモリ使用量になる事はなく、まだ何かがメモリを使用しています。

    その後の調査で、
    gpupdate /force
    を実行するとメモリの使用量が増えていく事が分かりました。
    何度かgpupdate /force してみましたが、そのたびにメモリ使用量が少しづつ増えます。

    タスクマネージャーを見ていると、コマンドプロンプトで

    コンピューター ポリシーの更新が正常に完了しました。
    ユーザー ポリシーの更新が正常に完了しました。

    のメッセージが表示された後の数秒後にローカルシステムのCPU値とメモリが増加し、CPU値は0%になりますが増えた分のメモリがそのままになるようです。

    services.msc を実行して Group Policy Clientの実行ファイルのパスを見てみると
    C:\Windows\system32\svchost.exe -k netsvcs
    となっているので、svchost.exe 自体がメモリを使用しているのは間違いないと思います。

    他の DCとなっている WinSV2016 でタスクマネージャーを見てみると、
    サービスホスト・ローカルシステムで実行しているサービスの中には
    Group Policy Client はありませんでした。


    そこで
    https://docs.microsoft.com/ja-jp/troubleshoot/windows-server/group-policy/scecli-1202-events
    エラーコード 0x4b8: 拡張エラーが発生しました

    https://troushoo.blog.fc2.com/blog-entry-353.html  winlogon.log を用いて、グループポリシー適用時のエラーの調査

    を参考にExtensionDebugLevel を2に、 NoGPOListChanges を 0に設定し
    gpupdate /force
    実行してみました。

    すると、 %SYSTEMROOT%\Security\Logs\Winlogon.log に下記のようなエラーコードとメッセージが表示されました

    エラー 1252 が、制御フラグ 1 をサーバーに送信するときに発生しました。

    このエラーコードとメッセージで検索してみましたが、

    不明な環境変数が使用されている場合にログに記録されるグループポリシーエラーイベント
    https://docs.microsoft.com/ja-jp/troubleshoot/windows-server/group-policy/group-policy-error-7016-1091-1202

    くらいしかヒットしません。

    ERROR_OVERRIDE_NOCHANGES    1252    グループ ポリシー フレームワークは変更がなくてもエクステンションを呼び出す必要があります。

    のコードと同一ですが、メッセージ内容は違うようです。

    このエラーコードとメッセージの意味が分かる方はいらっしゃいますでしょうか?

    または、直接的な原因である  Group Policy Client がローカルシステムから開放されない問題の原因が分かる方はいらっしゃいますでしょうか?


    2020年12月8日 6:44

すべての返信

  • チャブーンです。

    この件ですが、まずメモリーリーク等の「異常」な状態なのではないと思います。ほぼ同じ構成(svchost.exeの中身が)でやはり1GBの投稿例がありますが、異常の見解は特に出ていません。妥当かと思います。

    windows server 2008 r2 - svchost.exe -k netsvcs occupying >1GB memory - Server Fault

    svchost.exeは汎用プロセスのため、内部のサービス類をダウンしてもメモリの解放はしません。サーバー自体の再起動が必要です。それとうえの例も荘ですが「Windows Update」サービスが含まれており、これがかなりのメモリーを使うように思います。

    Widows Updateサービスをスタートアップの種類で「無効」にして、サーバーを再起動して様子を見ると、状況が変わってくると思います。もちろんこれは切り分けのための一時作業で、Windows Updateの恒久無効を奨めているのではありません。こういう問題は起こりえるので、メモリーサイズを増やすようにしましょう。


    フォーラムは有償サポートとは異なる「コミュニティ」です。フォーラムでご質問頂くにあたっての注意点 をご一読のうえ、お楽しみください。

    2020年12月8日 7:59
  • 返信ありがとうございます。

    Widows Updateサービスを無効にして今夜一晩そのままにしてみます。

    また、

    いや、これは妥当ではない、不具合だ!

    という見解も募集します。どうぞよろしくお願いします。

    2020年12月8日 8:45
  • 昨日の夕方Widows Updateサービスを無効にしてみましたが、朝確認してみると現象変わらずローカルホスト・ローカルシステムがメモリを沢山使用していました。これが妥当だとすると、もう しょうがないですが、

    グループポリシーの設定に"ドメインコントローラーのグループポリシーの更新間隔を設定する"というポリシーがあり、既定値の5分から30分に変更して運用していこうかと考えています。

    それでも数日後には同じ状態になると思いますので、タスクマネージャーに定期的な再起動コマンドを設定しました。これらは暫定対応と考えています。

    最初の投稿の最後にある

    エラー 1252 が、制御フラグ 1 をサーバーに送信するときに発生しました。

    というエラーコードとメッセージの意味が分かる方が居ましたら、ぜひ回答お願いします。

    2020年12月9日 1:07
  • こんにちは
    フォーラムにご投稿くださいましてありがとうございます。
    この後の状況はいかがでしょうか。
    どうしても解決できない場合、マイクロソフトの有償サポートへの問い合わせもご検討をお願いします。

    Fan

    Please remember to mark the replies as an answers if they help. If you have feedback for TechNet Subscriber Support, contact tnmff@microsoft.com

    2020年12月18日 2:51
    モデレータ