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