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


皆さま、こんにちは。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] をクリックします。
[(全般)] -> [キューの長さ] : 9000
[CPU] -> [制限 (%)] : 0
[ラピッド フェール保護] -> [エラー間隔 (分)] : 30
[ラピッド フェール保護] -> [最大エラー数] : 60
[リサイクル] -> [プライベート メモリ制限 (KB)] : 0 (※)
[リサイクル] -> [仮想メモリ制限 (KB)] : 0

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

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

 

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

 

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

 

なお、本問題につきましては、弊社内の開発部門においても認識しており、修正可否について検討を進めております。こちらにつきましても、進展がありましたら本ブログ記事にて更新予定です。

Comments (0)

Skip to main content