Windows7の64bit版に物理メモリ8Gを追加搭載したらSSDの残り容量が激しく減った話の続き。 dir /a コマンドで隠しファイルを探すと、hiberfil.sys と pagefile.sys という巨大なファイルがある。 SSDの全容量は64Gしか無いので、このサイズは看過できない。
C:\>dir /a
ドライブ C のボリューム ラベルがありません。
ボリューム シリアル番号は xxxx-xxxx です
C:\ のディレクトリ
2010/07/19 09:20 <DIR> $Recycle.Bin
2011/10/22 19:19 <DIR> Config.Msi
2009/07/14 14:08 <JUNCTION> Documents and Settings [C:\Users]
2011/10/23 22:19 9,507,999,744 hiberfil.sys
2011/10/23 22:19 12,677,332,992 pagefile.sys
2011/10/22 15:46 <DIR> perflogs
2011/10/22 19:09 <DIR> Program Files
2011/10/22 19:09 <DIR> Program Files (x86)
2011/10/10 16:55 <DIR> ProgramData
2010/07/18 02:05 <DIR> Recovery
2010/07/18 12:46 90 setup.log
2011/10/23 22:19 <DIR> System Volume Information
2010/07/19 09:20 <DIR> Users
2011/10/22 15:29 <DIR> Windows
3 個のファイル 22,185,332,826 バイト
11 個のディレクトリ 9,014,280,192 バイトの空き領域
C:\>
hiberfil.sys は休止状態の時に使われるファイル。起動ドライブであるSSDから動かせないので、 休止状態を使用しないように設定してファイルを消す。
pagefile.sys はスワップ領域。12Gの物理メモリを搭載したら12Gのサイズのファイルが出来た。 合計24Gの仮想メモリが扱えるように親切に設定してくれたらしいが、そんなに必要無い。
XPと同じように仮想メモリをサイズ0に設定してpagefile.sysを消そうと思ったら、Windows7では強めの 警告が出る。トラブった時にpagefileにある情報をサルベージして何かトレースするのだろうか? それともカーネルダンプ領域の代わりにでも使うのだろうか? 自分が使うマシンではないので、 リスキーなことは避けたい。仮想メモリをサイズ0にするのはあきらめる。
仕方ないので仮想メモリの置き場所をHDDに設定してみると、起動が若干遅くなった。遅くなるのは起動の時だけで、 起動した後は、以前と変わらない。しばらくリソースモニタでHDDへのアクセスを監視してみても pagefileにアクセスしている様子は無く、最終的には省電力が有効になり、HDDだけ電源が切れるところまで いく。やっぱり12Gもの仮想メモリは必要無いんだろう。
さらに ココ を読むと、pagefile.sys は、書き込み1に対して読み込みが40の割合で、読む時は殆どが16KB以下の小さなサイズで、 書き込むときは45%くらいが1MBのサイズで、pagefileほどSSDに置くのにふさわしいファイルは無い---と書いてある。 pagefile.sys はSSDに置いた方がパフォーマンスはよさそうだ。
結局仮想メモリの設定は、カスタムサイズの最小1.5G最大4GでSSDに置いた。しばらく使ってみたが、 1.5Gのままpagefileは増えてなさそうだ。必要なら動的に4Gまで増えてくれるのだろう。 これでしばらく様子をみて、次に帰省した時にサイズをチェックして再度チューニングしよう。