メモリが解放されない?

Anonymous
2013-10-15T16:34:20+00:00

Windows 8に固有の問題かどうかは分かりませんが、教えてください。

基本的にスリープや休止状態を使いシャットダウンはなるべくしないようにして使っているのですが、そうやって何日も使っているとアプリケーションが起動できなくなったり、起動してもダイアログやメニュが正しく表示されなくなったりして困っています。

そういうときにタスクマネージャで見てみると、メモリタブのメモリのコミット済みが異常に大きい値になっています。メモリが足りなくなっているのが、アプリケーションが起動できなくなっている理由ではないかと考えています。Windowsを再起動した直後は、こんなにコミット済みメモリは多くないです。せいぜい2.xGBか3.xGB程度なのですが、数日経過するとウィンドウアプリをすべて閉じてもコミット済みは7.4/8.6GBとかになっています。

もう少し調べてみると、どうも taskhostex.exe と explorer.exeの2つのプロセスがかなりのメモリを「コミット済み」にしていることが分かりました。試しにtaskhostex.exeをタスクマネージャから強制終了するとコミット済みメモリが2~3GBほど、explorerを強制終了すると1~1.5GBほど減ります。これらのプロセスが、メモリを大量に消費しているか、もしかしてメモリを解放しないままになっているのでしょうか?強制終了ではなく、これらのプロセスが使用するメモリ量を制限するか、安全に解放させる方法はありませんか?

また、ProcessExplorerを使用してtaskhostex.exeが提供しているタスクを調べてみると、Microsoft PlaySoundService Class/MsCtfMonitor Task handler/Wininet Cache task objectの3つの機能を提供しているようですが、このいずれかに問題があるのでしょうか?

ちなみにWindows ストアアプリは、まったく使用していません。使っているのは普通のデスクトップアプリばかりです。

この現象はメーカの違う2つのPCで確認しているので、固有の問題というわけではないと考えています。何か原因をご存知でしたら、教えていただきたいと思います。

よろしくお願いします。

(追記)

2台のPCで確認していますが、一方はWindows 8 64bitで、もう一方はWindows 8 Pro 64bitです。

搭載メモリはどちらも8GBです。

よろしくお願いします。

家庭向け Windows | 以前の Windows バージョン | パフォーマンスとシステムの失敗

ロックされた質問。 この質問は、Microsoft サポート コミュニティから移行されました。 役に立つかどうかに投票することはできますが、コメントの追加、質問への返信やフォローはできません。

0 件のコメント コメントはありません

61 件の回答

並べ替え方法: 最も役に立つ
  1. Anonymous
    2015-01-24T21:55:31+00:00

    >taskhostex.exeを終了させると、その後の動作に影響が出ませんか?

    >例えば、それ以降に新しく開いたアプリでは日本語入力ができなくなってしまうはずです。

    日本語入力はできなくなりますね。ただ、これはctfmon.exeを実行してやれば復活するようです。

    が、本来なら自動的に終了する(?)ctfmon.exeがそのまま残りっぱなしになるなど、やはり若干動作が異常になります。

    なので、私も早めに再起動するようにしています。

    >私はこのうちの「Wininetのキャッシュサービス」に問題があるのではないかと勘ぐっています。なんとなくですが、WEBブラウジングを続けていると、コミット済メモリが増えていくような気がしていますから。

    これは私も感じます。大容量のファイルをDLした後などは特に急速に症状が悪化するように感じます。ただ、思い返せばXPの時点でこの症状はあったような…

    taskhostexはXPにはないはずなので、ちょっと自信ありませんが。

    この回答は役に立ちましたか?

    0 件のコメント コメントはありません
  2. Anonymous
    2014-12-17T03:02:55+00:00

    taskhostex.exeを終了させると、その後の動作に影響が出ませんか?

    例えば、それ以降に新しく開いたアプリでは日本語入力ができなくなってしまうはずです。

    なので、私はこのプロセスを殺すくらいなら、再起動してしまいます。

    taskhostex.exeは、

    • 音声再生関係のサービス
    • Wininetのキャッシュサービス
    • 言語バーのサービス

    の3つを司っているようです。よって、この3つの機能に何らかの影響が出ます。

    私はこのうちの「Wininetのキャッシュサービス」に問題があるのではないかと勘ぐっています。なんとなくですが、WEBブラウジングを続けていると、コミット済メモリが増えていくような気がしていますから。

    一度終了したtaskhostex.exeの再起動方法は分かりません。

    親プロセスからsvchost.exe -k netsvcsで起動されているらしいことまでは分かっているのですが、それを実行してもtaskhostex.exeは起動しません。素直に再起動する方がよさそうです。

    この回答は役に立ちましたか?

    0 件のコメント コメントはありません
  3. 削除済み

    この回答は当社の行動規範に違反したため削除されました。 アクションを実行する前にこの回答を手動で報告したか、自動検出機能により特定しました。 詳細については、当社の行動規範を参照してください。


    コメントはオフになっています。 詳細情報

  4. 削除済み

    この回答は当社の行動規範に違反したため削除されました。 アクションを実行する前にこの回答を手動で報告したか、自動検出機能により特定しました。 詳細については、当社の行動規範を参照してください。


    コメントはオフになっています。 詳細情報

  5. Anonymous
    2014-05-29T04:42:00+00:00

    結論としては、先のfix(http://support.microsoft.com/kb/2935389/ja)とは関係がありませんでした。

    このfixを適用していても、やはりコミット済みメモリは増えていきます。

    使用頻度の高い2台のPCで再現しました。

    再三、書いていますが、explorer.exeかtaskhostex.exeを強制的に終了させると、コミット済みメモリが解放されることは間違いないです。そして、rammapツールで確認できるPageTable使用量との因果関係が疑われますが、今回はこれをグラフにしてみました。

    X軸は、強制終了させる時点でのPageTableの使用量(KByte)で、Y軸はそのプロセスを終了させることによって増加した(解放された)コミット済みメモリ(GByte)です。

    明らかに線形的な因果関係が認められます。しかし、原因については謎のままです。

    VirtualAllocや、ファイルマッピングなどのAPIを使ったテストプログラムを書いて再現を試みたのですが、プロセス毎のメモリ使用量(ワーキングセットサイズ)を上昇させずに、コミット済みのみを増加させるようなことはできませんでした。

    この回答は役に立ちましたか?

    0 件のコメント コメントはありません