ソフトウェアの更新ポイント サーバーにおいて w3wp.exe の CPU 使用率が高騰化する

Last Update:

2017/08/29 更新:

WSUS サーバーにおいて、w3wp.exe の CPU 使用率が高騰化する事象に対処する、修正プログラムをリリースしました。本更新プログラムには、メモリ領域の確保とメモリへのコピーに使用される関数の呼び出しを効率化する修正を含んでいます。WSUS サーバーにて w3wp.exe の CPU 使用率が高騰化している場合、まずは、下記の更新プログラムを適用していただき、状況が改善するかご確認ください。

  1. Windows Server 2012, 2012 R2, 2016 については、プレビュー版月例ロールアップに含まれる形でリリースされています。修正プログラムは、Microsoft Update Catalog よりダウンロード頂けます。なお、2017 年 9 月 13 日以降にリリースされた Windows Server 2016 の累積更新プログラム、2017 年 10 月 11 日以降にリリースされた Windows Server 2012 / 2012 R2 のマンスリー品質ロールアップにも本修正は含まれておりますので、最新の累積更新プログラム、およびマンスリー品質ロールアップが適用されていれば、本問題は修正済みとご判断いただけます。
  1. WSUS 3.0 につきましては、SP2 を対象とした個別の更新プログラムとしてリリースされています。

※ 更新プログラム適用後は OS の再起動が必要な場合がございますので、ご注意くださいませ。
更新プログラム適用後も、引き続き、CPU 使用率が高騰化する場合は、後述する回避方法を併せてご検討ください。

本事象の詳細情報は、弊社米国 SCCM ブログでも紹介しておりますので、併せてご参照くださいませ。
https://blogs.technet.microsoft.com/configurationmgr/2017/08/18/high-cpuhigh-memory-in-wsus-following-update-tuesdays/
:::


皆さま、こんにちは。System Center Configuration Manager サポート チームです。
2017 年 6 月より、Windows 10 の更新プログラムを同期しているソフトウェアの更新ポイント サーバー (WSUS サーバー) において w3wp.exe の CPU 使用率が高騰化するという事象が報告されております。本事象は Windows 10 の累積的な更新プログラムに含まれる情報が大きくなったことに起因しておりますが、後述の手順を実施することで、CPU 使用率の高騰を緩和することができますので、ご確認くださいますようお願い申し上げます。

概要

Windows 10 の更新プログラムを同期しているソフトウェアの更新ポイント サーバー (WSUS サーバー) において、w3wp.exe によって CPU 使用率が高騰化します。

原因

Windows 10 向けの累積的な更新プログラムの情報量は、他の過去の OS 向けの更新プログラムよりも大きくなっていることが影響しています。多数のクライアントが更新プログラムの確認を行うことにより更新プログラムの情報が参照された場合には、メモリ領域の確保とメモリへのコピーに使用される関数が呼び出される回数が多くなることで、w3wp.exe のCPU 使用率が高騰します。また、その結果として、短時間でリサイクルが多発し、IIS のラピッドフェール保護機能によって WsusPool が停止することもございます。

回避方法

まず上述の更新プログラムを適用すること、事象に改善がみられないか、ご確認ください。
CPU 使用率の高騰を緩和させる方法として、次のパフォーマンス チューニングが有効です。

  • 手順
  1. WSUS サーバー上で IIS マネージャーを起動します。
  2. 左ペインより、アプリケーション プールを選択し、中央ペインに表示された WsusPool を右クリックして [詳細設定] をクリックします。
  3. 以下の設定を行い、[OK] をクリックします。
    [(全般)] -> [キューの長さ] : 2000
    [CPU] -> [制限 (%)] : 0
    [ラピッド フェール保護] -> [エラー間隔 (分)] : 30
    [ラピッド フェール保護] -> [最大エラー数] : 60
    [リサイクル] -> [プライベート メモリ制限 (KB)] : 0 (※)
    [リサイクル] -> [仮想メモリ制限 (KB)] : 0

(※) ソフトウェア更新ポイント サーバーのメモリ搭載量が 20 GB 未満の場合は、8000000 に設定することをお勧めします。

  1. [サイト] - [WSUS の管理] - [ClientWebService] を右クリックして [エクスプローラー] をクリックします。
  2. エクスプローラーが開くので、web.config をデスクトップにコピーしてから、デスクトップにコピーした web.config をメモ帳で開きます。
  3. <system.web> と </system.web> の間において、次のように セクションを変更した上で、 セクションを追加します。
  • 変更前

    1
    2
    3
    4
    5
    6
    7
    ----------------------------------------
    <!-- MAXREQUESTLENGTH
    Limit the size of incoming requests to 4096 kbytes.
    -->
    <httpRuntime maxRequestLength="4096" />
    </system.web>
    ----------------------------------------
  • 変更後

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    ----------------------------------------
    <!-- MAXREQUESTLENGTH
    Limit the size of incoming requests to 4096 kbytes.
    -->
    <httpRuntime executionTimeout="500" maxRequestLength="4096" />
    <caching>
    <cache privateBytesLimit = "8000000000"/>
    </caching>
    </system.web>
    ----------------------------------------
  1. 変更後、web.config を保存します。この時デスクトップに保存するようにしてください。
    (C:\Program Files\Update Services\WebServices\ClientWebService に直接保存することは許可されていません。)
  2. C:\Program Files\Update Services\WebServices\ClientWebService 配下の web.config を別の場所に移動します。
    1. で保存した web.config を C:\Program Files\Update Services\WebServices\ClientWebService にコピーします。
  3. WsusPool を右クリックして [リサイクル] をクリックします。web.config の設定を間違えた場合、WsusPool は起動しません。
    その場合は、8. のファイルを元の場所に戻した上で、再度間違いなく web.config を変更してください。

上記手順実施後も改善しなかった場合は、次の手順を追加で実施いただくことをご検討ください。

  • 「置き換えられた」Windows 10 の更新プログラムを「拒否済み」に設定する。(「拒否済み」対象は Windows 10 のみでかまいません。詳細な手順はこちらのブログ記事の「4. 不要な更新プログラムをできる限り「拒否済み」にする」をご確認ください。)
  • ソフトウェアの更新ポイント サーバーの CPU リソース、メモリ リソースを増強する。