sleepimage肥大化に伴う領域削除とhibernatemodeの設定変更

経緯

HDD内の"その他"領域肥大化が発覚。対象ディレクトリを調べる。

基本的に

$ sudo du -h -x -d 1 /

で調べていく。

今回は原因が /private/var//vm/sleepimage っぽい。

$ sudo du -h -x -d 1 /private/var//vm
8.1G /private/var//vm

$ ls -l /private/var//vm
total 16908288
-rw------T 1 root wheel 8589934592 4 15 11:50 sleepimage
-rw------- 1 root wheel 67108864 4 15 07:29 swapfile0

sleepimage とは?

sleepにはsleep, safe sleep, deep sleep と3種類あり、deep sleepのときにRAM領域のデータをディスク領域に書き込まれる領域がsleepimage領域のよう。

つまりRAM領域が大きいほど、ディスク容量も取られてしまう。

SSD領域がもったいないので、このモードを変更することとした。

 

対応

pmset でsleepモード変更

$ pmset -g
Active Profiles:
Battery Power -1
AC Power -1*
Currently in use:
standbydelay 4200
standby 0
womp 1
halfdim 1
hibernatefile /var/vm/sleepimage
gpuswitch 2
sms 1
networkoversleep 0
disksleep 10
sleep 30
hibernatemode 3
ttyskeepawake 1
displaysleep 30
acwake 0
lidwake 1

今回は safe sleep モード( hibernatemode 3 )設定になっていて、長時間スリープでdeep sleepするというモードだった。

これを通常スリープしかしないモードに変更する。

$ sudo pmset -a hibernatemode 0 # Sleep

こんなかんじで設定完了。

$ pmset -g
Active Profiles:
Battery Power -1
AC Power -1*
Currently in use:
standbydelay 4200
standby 0
womp 1
halfdim 1
hibernatefile /var/vm/sleepimage
gpuswitch 2
sms 1
networkoversleep 0
disksleep 10
sleep 30
hibernatemode 0
ttyskeepawake 1
displaysleep 30
acwake 0
lidwake 1

RAMディスク分だけ取られていた領域を削除し完了。

$ sudo rm /private/var/vm/sleepimage

 

参考