Windows環境で,OSが動いているCドライブの容量がいっぱいになってしまうことがあります。
そして,WinDirStat.exeなどを使って調査してみると,Cドライブ直下にあるpagefile.sysが肥大化し,数十GBの容量を食いつぶしている場合があります。
現時点でRAMの使用率は問題ないため,ページファイルが肥大化する説明がつきません。
通常,ページファイルのサイズはシステムが自動的に管理してくれますが,何らかの原因でpagefile.sysが縮小できなくなってしまう場合があるようです。
では,この場合どのようにすればpagefile.sysのサイズを健全な状態に戻すことができるのでしょうか。
まずは再起動してみる
なにはともあれ,まずは再起動してみましょう。
特に説明は不要ですが,とりあえず再起動で治ることがあります。
レジストリの値を調整してみる
ページファイルの設定をつかさどっているレジストリの値を調整します。
以下のパスに遷移して,値を1に変更します。
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Memory Management ClearPageFileAtShutdownの値を1に設定。
これで,シャットダウン時にページファイルの情報をクリアしてくれるようになります。
レジストリの設定変更後,再起動してみましょう。
この設定を行うと,ページファイルを削除するためのプロセスが走るので,再起動に幾らか時間がかかるようになります。
ページファイルを無効化してから有効化する
ページファイルを無効化してみましょう。
コントーロールパネル -> システム -> システムの詳細設定 -> 詳細から,下図のように遷移して,ページファイルを使用しない設定に変更します。
ここで,下図のような警告画面が出るかもしれませんが,無視して進みましょう。
基本的に,ページファイルを使用しない設定というのは非推奨です。アプリケーションがクラッシュすることも往々にしてあり得ます。
しかし今回は,一時的な変更ですので問題ありません。
再起動後にこの設定が反映されます。
再起動すると,Cドライブからpagefile.sysが消え,容量が復活していることを確認できます。
ページファイルを再有効化するとまた巨大なpagefile.sysが現れる
これは割と驚きなのですが,Cドライブの容量が復活したのでページファイルを再有効化して再起動すると,なんと以前と同じ容量の巨大なpagefile.sysが現れるのです。
再起動するこでページファイルは完全にクリアされたかと思いきや,どこかに設定が残っているようです。
マニュアルでページファイルの上限値を設定する
そのような場合には,システムに自動的にページファイルのサイズを管理させるのではなく,ページファイルの最小値と最大値を手動で設定してやりましょう。
設定画面内に,現在の構成における推奨サイズが記されていますので,その通りに設定すると良いでしょう。
再起動すると,最小サイズのpagefile.sysが再生成されていることを確認できます。
今度こそページファイルのサイズをシステム管理にする
これで,肥大化したpagefile.sysの情報は消えたはずですので,改めて,システムにページファイルのサイズを自動管理してもらいましょう。
と,言いたいところなのですが,システムの自動管理に設定すると,なんとまた以前と同じ容量の巨大なpagefile.sysが現れます。
このゾンビ状態になったページファイルの設定をクリアする方法はもはやありません。
ですので,ふさわしいサイズを手動で設定するしかありません。
これは,Windowsのバグといってもよい挙動です。
もっとも,ページファイルが肥大化して縮小できなくなっている時点で不具合が発生していますので,無理もないのかもしれません。
ですので,結論としては,pagefile.sysが縮小できなくなった場合には,手動でサイズ上限を設定してやるしか,Cドライブの容量を回復する方法はありません。
もし,他の症状や解決策にお気づきの方がおられましたら,ぜひコメントください。
コメント