全体で64GB、空き容量は常に20GBを切るギリギリの攻防戦が宿命づけられています。
こんな状況ですから、ストレージを少しでも節約するため、仮想メモリの容量チェックとリセットは欠かせません。
大きな作業を終えた後は必ず行っています。
ただ、この仮想メモリは、そもそも隠しファイルになっているくらいで、頻繁に容量を確認したり、あまつさえ頻繁に設定を変更してリセットするユーザーなどは想定外のようです。
つまり、設定へのアクセスや変更は面倒です。
というわけで、PowerShellで容量の確認と、設定の変更をする必要に迫られてしまいました。
いつものように関数にして、プロファイルに組み込みました。
■仮想メモリの状況を確認する「VMEM」コマンド(関数)
#仮想メモリを表示
function global:VMEM() {
WRITE-HOST "---仮想メモリ状況---"
WRITE-HOST "〇ストレージ使用容量"
$VMEM_STORAGE = GET-CHILDITEM "C:\" -FORCE | ?{$_.Name -match "pagefile.sys|hiberfil.sys|swapfile.sys"}
$VMEM_STORAGE | %{$_.Name + "(MB) " + ($_.Length/[Math]::Pow(1024,2)).ToString(".000")}
WRITE-HOST "〇設定情報"
$VMEM_INFO=Get-WmiObject -Class Win32_PageFileSetting | ?{$_.Name -eq 'C:\pagefile.sys'}
$VMEM_INFO | %{"初期(MB)="+($_.InitialSize).ToString() + " 最大(MB)="+($_.MaximumSize).ToString()}
}
仮想メモリファイルは、pagefile.sysなのですが、モダンアプリ用のものも表示してみます。
ちょっと勉強の都合上、このコードはASUS E203MAではなく、マザーシップPCの「Aspire 5750G」で作成し、実行してみました。
WINDOWS>VMEM
---仮想メモリ状況---
〇ストレージ使用容量
hiberfil.sys(MB) 6494.340
pagefile.sys(MB) 16.000
swapfile.sys(MB) 16.000
〇設定情報
初期(MB)=16 最大(MB)=16
単位ですが、悩んだのですが、設定時にはメガバイトで指定するようになっているため、メガバイト(MB)単位にしました。
■仮想メモリの設定をする
見るのは良いとして、では設定を変更するためのコマンドです。
初期値と最大値を前の値から変更します。
コマンドはVMEM_RESET 初期値 最大値とパラメータ付きで実行するように作りました。
環境によって必要な値は違うし、そもそも、ストレージに余裕があればこの設定はしない方が良いです。
私には必要でも、設定変更系はリスキーなのでおすすめするものではないです。
function global:VMEM_RESET($INIT, $MAX) {
$VMEM_INFO=Get-WmiObject -Class Win32_PageFileSetting | ?{$_.Name -eq 'C:\pagefile.sys'}
$VMEM_INFO.InitialSize =$INIT
$VMEM_INFO.MaximumSize =$MAX
$VMEM_INFO.put()
#仮想メモリ内容
VMEM
WRITE-HOST "---【注意】再起動が必要です!!---"
}
WINDOWS>VMEM_RESET 16 1024
Path : ¥¥localhost¥root¥cimv2:Win32_PageFileSetting.Name="c:¥¥pagefile.sys"
RelativePath : Win32_PageFileSetting.Name="c:¥¥pagefile.sys"
Server : localhost
NamespacePath : root¥cimv2
ClassName : Win32_PageFileSetting
IsClass : False
IsInstance : True
IsSingleton : False
---仮想メモリ状況---
〇ストレージ使用容量
hiberfil.sys(MB) 6494.340
pagefile.sys(MB) 16.000
swapfile.sys(MB) 16.000
〇設定情報
初期(MB)=16 最大(MB)=1024
---【注意】再起動が必要です!!---
コマンドで勝手に再起動というのはマキシマム・リスクなので、勝手に再起動はしません。
一応の警告メッセージのみ表示にとどめております。
ちなみにあくまでも参考までにですが、RESTART-COMPUTERで再起動します・・・がホントに一気にいきなり再起動に行くので実行には最大限の注意が必要です。