Rapid Express

Rapid Express

中小企業を支援するLinuxベースのWebアプリケーション開発

Rapid Express RSS Feed
 
 
 
 

Windows自動更新時のCPU 100%問題の解決法

3月でサラリーマンを辞め、個人事業主としての生計を営み始めました。
とはいえ、当面は某大手企業への客先常駐勤務での請け負いです。
サラリーマン時代には、Gパンで自転車通勤していたのに、個人になったとたん、スーツを着て通勤電車に揺られ、首からIDカードをぶら下げているという、絵に描いたような脱サラの鑑です (チガウダロ)

環境はC#で、Excelデザインシートとデータベース移行用XMLの相互コンバーターの開発。
プログラマとして入り込みましたが、C#に触るのも初めてで出勤前に@ITを読破しました。「なんちゃってオブジェクト思考」しか経験ないくせに(爆笑)
同僚は一人もおらず、前任が作りかけたプログラムの後を引き継いで完成させる仕事。まあ、1ヶ月経過して、卒なくこなせているようです・・・・

?

しかし、あてがわれたマシンの調子がすごぶる悪い。

遭遇したことがある方もいると思いますが、Windowsの自動更新によってCPUが100%状態になるという、アレです。以下のような症状に遭遇した経験があったら、あたりです。

  1. 今までなんともなかったのに、ある日突然、マウスやキーボードの反応が鈍くなった。
  2. Ctrl+Alt+Deleteでタスクマネージャを(苦労して)開いてみたら、CPUが100%使いっぱなし状態だった。
  3. タスクマネージャの「プロセス」タブを(苦労して)開いてみたら、SYSTEMによるsvchost.exeが100%だった。
  4. 我慢して放置していたら、数十分後にCPUが開放され、何ごともなかったように平穏になった。
  5. ところがそれ以後、1日に何回か、CPU 100%状態が数分は発生するようになった。
  6. それでも我慢して使っていたら、1ヶ月後にまた、CPU 100%状態が数十分間続いた。
  7. 4に続く(笑)

この「毎日少し」と「月に1回」というのが味噌で、ようするにWindows自動更新の定期チェックと、Microsoftの月例更新に当たるわけです。

いろいろ調べましたが、私の場合、以下のバッチ処理でこの問題は解決されました。
自動更新のサービスを停止させた状態で、自動更新のサービスの実行プロセスを、他のサービスから切り離す、という処理です。

net stop wuauserv
sc config wuauserv type=own
net start wuauserv

SCとtypeの説明はここにあります。

バッチで変更する前に、念のためtypeの値を確認するには、sc qc wuauserv を実行します。

>sc qc wuauserv
[SC] GetServiceConfig SUCCESS

SERVICE_NAME: wuauserv
TYPE               : 20  WIN32_SHARE_PROCESS
START_TYPE         : 2   AUTO_START
ERROR_CONTROL      : 1   NORMAL
BINARY_PATH_NAME   : C:\WINDOWS\system32\svchost.exe -k netsvcs
LOAD_ORDER_GROUP   :
TAG                : 0
DISPLAY_NAME       : Automatic Updates
DEPENDENCIES       :
SERVICE_START_NAME : LocalSystem

つまり、デフォルトに戻すには sc config wuauserv type=share なわけですね。

覚書として、ここに記しておきます。





Leave a Reply



Tags

Links




Meta


TMAX.MYOPENSRC.COM