Windowsで何もしてないのにCPU利用率が高い。タスクマネージャで見るとsvchostがCPUを食っている。そんなありがちだけど面倒な現象の調査記録です。Windows7なのでもう古い話ですが備忘録として。
最初にやったこと
- タスクマネージャでプロセス一覧を見ると、svchostのCPU利用率が50%。4core中2coreが全開で走っている。
- 再起動しても状況変わらず
- ネットで検索するとWindows Updateが原因という声多数。Windows Updateを無効にしてみるが状況変わらず。
- 念のためウィルスチェックのスキャンを行う。
- とりあえずほっておいたが、3日経過しても状況変わらず。
しょうがないので、調査することにしました。
Process Explorerを使う
参考:https://kijonojiron.com/processexplorer_how_to_use
なお、Process Explorerは管理者権限で起動する必要があります。
最初の確認
起動してCPU利用率の高いsvchostのプロセスにマウスカーソルを持っていき、薄い黄色で表示される内容を確認します。具体的には以下の2点。
- ファイル名の確認
svchost.exeのフルパス名が表示されるので確認(上記のスクリーンショットは管理者権限で起動してないためフルパス名で表示されてませんが)
今回は、svchost.exe -k rpcss
で起動されているプロセスでした。
- 関連サービスの確認
当該svchostに関連するサービスがあればそれが表示されます。Windows Updateが原因の場合、ここでWindows Update Serviceが表示されますが今回は何もなし。
なお、ここで当該svchostを右クリックして、終了を選択してみました。終了するとCPU利用率とメモリ消費(GB単位で消費していました)もいったんおさまりますが、1分もしないうちにsvchostが再起動して元の状態に。
svchostプロセス詳細を見る
当該svchostをダブルクリックすると詳細情報が出ます。2スレッドが全開で動いている状態。
怪しいネットワーク接続を確認
"TCP/IP"タブをみたところ、このsvchostから66.42.101.212.vultr.com というホストにhttps接続が行われています。なにこれ? 調べてみたところvultr.comは仮想サーバーですね。Vultr自体が怪しいわけじゃなさそうですがなにをやっているのか...
svchostを何度かkillして調べたところ、接続にいくのは以下の2ホストのどちらかでした。ホスト名そのままのIPアドレスです。
- 66.42.101.212.vultr.com
- 45.76.69.121.vultr.com
ためしにブラウザでhttps://66.42.101.212/ にアクセスしたところタイムアウトエラー。なんのサーバーかわかりませんが生きてないようです。ホスト名でネット検索しても何の情報もなし。
とりあえず接続を遮断して解決?
Windowsのhostsファイルで、上記をlocalhostに向けるように設定しましたが状況変わらず。
最終的に、家のルーターの設定で上記アドレスに対する接続を拒否するルールを登録しました。そしてやっとCPU利用率が低下。やれやれ。それにしても何の通信なのやら。