ディスク I/O 100% 状態からの復旧

Windows 8.1 を使っていて、ディスク I/O が 100% に張り付いて使い物にならないという状況に苦しめられました。 最終的にはその状態から回復できたので、私が行ったことをメモ書きしておきます。

きっかけ

小学生の子供達にもその Windows 8 マシンを使わせるため、ペアレンタルコントロールの設定をしました。 Windows 8 では 1日の使用時間の総量を制限することができるのですが、制限時間到達後に電源長押しを行って強制再起動すると何故かまた使えるようになるのだそうです (子供達の経験談)。 それを何度も何度も繰り返していたおかげで、一部のファイルの整合性が損なわれたようです。

ひどい子供達だ…。

状況は?

タスクマネージャーの「パフォーマンス」タブで確認するとディスクの「アクティブな時間」がずっと 100% に張り付いてしまって、何をやるにしても反応が遅く使い物になりませんでした。 Windows Update サービスを無効化すると症状が改善されたりしたので、当初は Windows Update 関連かと思ったのですが、イベントマネージャーの Windows ログ – Application を確認するとソースが ESENT のエラーが多数見受けられました。

初めて知ったのですが、ESENT とは拡張ストレージエンジン (Extensible Storage Engine) だそうで、Windows Update や Windows デスクトップ サーチで利用されているそうです。 で、子供たちの強制電源オフであちらこちらに論理障害が起こっていたと。 そういうことのようです。

何をやったか?

以下のあたりのファイルを消しました。 Windows Update 関連とイベントビューアーのログに書かれていたものです。

C:\Windows\SoftwareDistribution\DataStore
C:\Windows\SoftwareDistribution\Download
C:\ProgramData\Microsoft\Windows\AppRepository\*.log
C:\Users\ユーザー名\AppData\Local\Microsoft\Windows\WebCache

アプリケーションが使用中でロックされているものが一部あったりもしましたが、消せるものを消したら何とかなったようです。

それと、ESENT と関係があるかどうかわかりませんが、Windows Store 関連も怪しい動きだったので、以下のブログの記事の内容を実行しています。

具体的には以下の 2つのコマンドを実行しています。

powershell -ExecutionPolicy Unrestricted Add-AppxPackage -DisableDevelopmentMode -Register $Env:SystemRoot\WinStore\AppxManifest.xml

これでやっと使えるようになりました。 子供には間接的にも直接的にもいろんな形で時間を取られちゃいますね。 今だけなんでしょうが。