君は100%?――Windows 10仮想マシンで発生した原因不明のCPU使用率問題山市良のうぃんどうず日記(118)(1/2 ページ)

2018年1月のWindows Updateは、Spectre/Meltdown問題で大変でした。まだ、PCベンダーからのマイクロコード提供待ちという状況でしょう(その対策されたはずのマイクロコードでも、問題が発生しているようです)。この問題とは関係ありませんが、筆者のテスト環境では2018年1月の更新で、とてもクレイジーなHyper-V仮想マシンに遭遇しました。同様の問題で悩んでいる人がいるかもしれないので、正常化までをレポートします。

» 2018年01月30日 05時00分 公開
[山市良テクニカルライター]
「山市良のうぃんどうず日記」のインデックス

山市良のうぃんどうず日記

問題の仮想マシンは、Windows Update実行時にCPU使用率が100%に

 Windows 10 Anniversary Update(バージョン1607)を実行する1台のHyper-V仮想マシンで、2018年1月分のWindows Updateを実行したところ、動作が非常に重い感じがしました。「タスクマネージャー」でCPU使用率を確認すると、2つのCPUの両方が100%で張り付いた状態でした。そこで、仮想マシンに割り当てているCPUを4つに増やしましたが、4つのCPU全てが使用率100%になってしまいました(画面1)。

画面1 画面1 割り当てた4つのCPUが全て使用率100%になったクレイジーな仮想マシン

 「Spectre/Meltdown」対策のパッチがパフォーマンスに影響するという話があったので、その影響かとも思いましたが、他の多数の仮想マシンでは同様の問題は発生していません。そもそも、Hyper-Vホストではファームウェアの提供待ちの状態で、3つの軽減策のうち、2つは利用可能になっていませんでした(有効化もしていません)。

 問題のHyper-V仮想マシンでは、2017年12月13日のWindows Updateは正常に完了していました。そして、年明けの2018年1月10日のWindows Updateでこの問題に気が付きました。2つのWindows Updateの間、この仮想マシンは起動していません。

 今回のタイトルは“原因不明の”としていますが、おそらく2017年12月のWindows Updateの影響だと思います。ただし、この仮想マシン固有のシステム構成との組み合わせが関係している可能性も否定できません。この仮想マシンのゲストOSはWindows 10 Enterprise バージョン1607(x64)で、Hyper-Vの「入れ子構造の仮想化(Nested Virtualization)」を利用して「仮想化ベースのセキュリティ(Virtualization Based Security:VBS)」を有効化し、「デバイスガード」の一部と「資格情報ガード」を構成しています。また、「Windows Driver Kit(WDK)」のデバッグ環境がインストールされています。これらが関係している可能性もあります。

 極めて応答性の悪い状況で、なんとか「イベントビューアー」を開いて「システム」ログを確認すると、一部のサービスが強制終了しては再開する様子が大量に記録されていました(イベントID「7032」や「7034」)。この種のエラーは、2017年12月13日のWindows Updateによる再起動後から急増していました。

画面2 画面2 「システム」ログには、WinHTTP Web Proxy Auto-Discovery Serviceサービスや他の一部のサービスが、繰り返し強制終了している様子が記録されていた

CPU使用率100%問題を解消できるかもしれないオプション

 物理または仮想マシンでこのような問題に遭遇した際、問題を解消するために利用可能なオプションを考えてみましょう。筆者はざっと6つほど思い付きました。他にもあるかもしれませんが、このときに思い付いたものは以下の6つです。

(1)2017年12月の累積的な更新(KB4053579)のアンインストール:この更新の適用直後なら、まずこれを試してみるべきです

(2)2018年1月の累積的な更新(KB4056890)のインストール:問題が発生した次の更新で改善する可能性があります

(3)システムの復元:残念ながら、この仮想マシンでは有効になっていません

(4)バックアップイメージからの復元:残念ながら、この仮想マシンではバックアップを取得していません

(5)仮想マシンの「チェックポイント」の適用:残念ながら、この仮想マシンでは2017年12月の更新以前のチェックポイントは削除してしまいました

(6)「このPCを初期状態に戻す」(PCのリセット)の実行:設定と個人データは保持されますが、多くのアプリケーションは削除されることに注意が必要です


 筆者はHyper-V仮想マシンでWindows Updateを実行する前には、必ずチェックポイントを作成して、バックアップの代わりにしています。異様に長い時間がかかる場合や更新に失敗した場合は、チェックポイントに戻して素早く解決しています(上記のオプションの(5))。2017年12月の更新は問題なく完了したように見えたので、その直前に取得したチェックポイントは削除してしまいました。つまり、現在利用可能なチェックポイントは、既に問題の発生している状態を含んでいます(画面3)。

画面3 画面3 2017年12月の更新が成功したと判断し、正常な状態のチェックポイントは削除してしまった。今あるチェックポイントは2018年1月の更新直前のもの
       1|2 次のページへ

Copyright © ITmedia, Inc. All Rights Reserved.

スポンサーからのお知らせPR

注目のテーマ

Microsoft & Windows最前線2025
AI for エンジニアリング
ローコード/ノーコード セントラル by @IT - ITエンジニアがビジネスの中心で活躍する組織へ
Cloud Native Central by @IT - スケーラブルな能力を組織に
システム開発ノウハウ 【発注ナビ】PR
あなたにおすすめの記事PR

RSSについて

アイティメディアIDについて

メールマガジン登録

@ITのメールマガジンは、 もちろん、すべて無料です。ぜひメールマガジンをご購読ください。