mscorsvw.exeでCPUが100%、C:\Windows\Tempにファイルが大量にできてディスクが一杯に→解決

2015年06月07日
最初に気が付いたのは、多分、今年の初め頃だったと思います。
C:\Windows\Tempに大量のファイルができていて、ディスクが一杯になっていました。

そのときは対処療法で一旦ファイルを削除して放置していましたが、最近再発したので対策してみました。
このときのメモを残しておきます。

ちなみに私の環境は、以下の通りです。
Windows 8.1
.NET framework 4.5
Visual Studio Community 2013 with Update 4

スポンサーサイト

C:\Windows\Tempに大量のファイルができてディスクが一杯に


ある日、やけにディスク使用量が増えていて、ディスクの残り容量を圧迫していることに気が付きました。
ディスクを使用しているフォルダを調べたところ、
C:\Windows\Temp
で大量のディスク容量を使用していました。

ファイルとしては、例えば MSI13bd9.LOG と言った名前のファイルです。
MSIXXXXX.LOGという3,127KBのファイルが大量に存在し、ディスクを圧迫していました。
ファイルの中身はインストールのログのようでした。

このときはまだ、よく覚えてないけど何かをインストールしたときのログだろうなと思って、とりあえずファイルを削除しました。

それからしばらくして、再び同じ現象が発生しました。

これはさすがに何かがおかしいと思ってWebで調べたのですが調べ方が悪く、このときは情報を見つけられませんでした。

眠っている間にCPUがフル稼働になる


これに加えて、実はもうひとつの現象が発生していました。
PCをスリープ状態にして私も眠っている夜中に突然PCが立ち上がり、何かCPUが動いているという現象が発生していました。

普段は眠っていて気が付かないため、どの程度の頻度で発生しているのかわかりません。

たまにCPUのファンの音で目が覚めたときには、あまりに眠いので深く考えずに強制的にスリープ状態にしていました。

おかしな現象ではありましたが、何かアップデートでも動いているのかなと思って気にしていませんでした。

ある日、突然CPU負荷が上がる。現象発生の瞬間に遭遇!?


そしてまたしばらくした頃、夜中からずっとPCで作業していたときに、突然CPU負荷が上がり始めました。

タスクマネージャを開いて確認したところ、「Windows インストーラ」がCPUを利用していて、どうも何かをインストールしているようでした。

さては夜中にときどきCPUが動いているのは、これだなと思いました。

そして、私はこのときになって初めて2つの現象を結びつけることになりました。
このインストーラが、例の謎のインストールログを生成しているのではないか?

さっそくC:\Windows\Tempを開くと、予想通り、次から次へとログファイルが生成され続けていたのでした。

mscorsvw.exeが関係していそう


生成され続けているログファイルのひとつを開くと、こんな感じでした。
=== Verbose logging started: 2015/XX/XX X:XX:XX Build type: SHIP UNICODE 5.00.9600.00 Calling process: C:\Windows\Microsoft.NET\Framework\v4.0.30319\mscorsvw.exe ===

他のログファイルを開いても同様で、mscorsvw.exeが関係しているようです。
タスクマネージャの「詳細」タブを開くとmscorsvw.exeが生まれたり死んだりを繰り返していました。

それらしい情報がmicrosoftサポートにあった


以前はディスクが一杯になるという現象から情報を探しましたが、うまく見つけられませんでした。

今回は、CPU負荷が上がるという現象に加えて、mscorsvw.exeというプログラム名まで情報があったので、Googleで検索すると、それらしいものがあっさりヒットしました。

- 修正: Mscorsvw.exe プロセスは、.NET Framework 4 で開始する時、コンピューターが応答を停止します。
https://support.microsoft.com/ja-jp/kb/2571181
(英文:https://support.microsoft.com/ja-jp/kb/2571181/en-us

現象に関する細かい説明は省略します。

回避策を実行してみるがngen.exeが終了しない


多分同じ現象だろうと思って回避策を試すことにしました。

そこに書いてある回避策を引用します。
この問題を回避するには、Mscorsvw.exe プロセスを無効にします。
1.Windows エクスプ ローラーで、次の場所に移動します。
C:\Windows\Microsoft.NET\Framework\v4.0.30319
2.管理者特権のコマンド プロンプトを実行します。
次のディレクトリに、現在のディレクトリを変更するngen.exe executequeueditemsを入力して ENTER キーを押します。
C:\Windows\Microsoft.NET\Framework\v4.0.30319
3.コマンド プロンプトで、次のメッセージが表示されるまで待ちます。
コンパイルのすべてのターゲットが最新であります。

日本語の機械訳がちょっとわかりにくいですけど、書いてある通り実行してみました。

しかし、なぜかうまくいきません。
ngen.exeを実行した後、しばらく待ちましたが動いている様子もなく、ngen.exeが終了しないのです。
ただ、動いていたインストーラは活動を中止し、CPU負荷は低下していました。

仕方がないので、一旦、ngen.exeのコンソールを強制終了してみました。
すると、止まっていたインストーラがまた激しく動き始めました。

回避策をもう一度やってみたら解決したっぽい


もう一度、ngen.exeを実行してみると、何かのモジュールが見つからないというようなエラーメッセージが次々と表示されましたが、最終的には正常に終了しました。
メッセージは、以前にインストールして削除したモジュールが見つからないというもののようでした。

結果、例のインストーラも終了しているので、無事、成功したようです。

ただ、なんとなく気持ち悪いので、もう1回 ngen.exeを実行してみたところ、今度はエラーもなく実行がすぐに終了しました。
以下のような感じです。
ngen.exe実行のコンソール

対策の結果


この結果、とりあえずはCPU負荷も下がり、無事解決したようです。
と言っても、まだしばらく様子を見ないと何とも言えません。

これで、夜中に突然CPUがフル稼働したり、やたらとディスク容量を浪費したりする現象がおさまればよいのですが…

スポンサーサイト

タグ:Windows
posted by 黄昏のスペシャルパンダ at 07:57 | Comment(0) | IT関連 | このブログの読者になる | 更新情報をチェックする
この記事へのコメント
コメントを書く
お名前:

メールアドレス:

ホームページアドレス:

コメント:

×

この広告は1年以上新しい記事の投稿がないブログに表示されております。