追加でMacのSleep imageの削除法について新しい記事を書きました。
MacのシステムによるSSDへの書き込みを極力減らしたいなら、「セーフスリープ」させない設定にすることを検討しよう。
その方法を以下に記しておきます。
「セーフスリープ」させない方法
まず最初に、ターミナルで
pmset -g
と入力
これで、現在のMacのsleepモード状態が確認ができる。
私の場合は下記のように設定されている。
Battery Power -1* AC Power -1 Currently in use: standbydelay 604800 standby 1 halfdim 1 hibernatefile /var/vm/sleepimage darkwakes 0 disksleep 0 sleep 1 autopoweroffdelay 14400 hibernatemode 0 autopoweroff 1 ttyskeepawake 1 displaysleep 2 acwake 0 lidwake 1
上記の下から6個目の hibernatemode が「3」だと「セーフスリープ」。「0」だと普通の「スリープ」。
セーフスリープの場合、画面オフ後、数十分でメモリの内容がSSDに書き込まれる。
(4GBのメモリ容量なら、SSDにも4GB分のメモリのデータが毎回書き込まれるらしい。)
普通のスリープの場合だと、メモリからSSDへのデータコピー(書き込み)は、一切されない。
重要な書類作成などの後、それを保存せずにスリープさせた場合、スリープ中に、不意の電池切れやシステムクラッシュした時の万が一の保険としてセーフスリープが欲しい人は「3」でいいだろう。
私は、重要な書類の作成時はこまめに(少なくとも作業中断前に)手動で保存している。セーフスリープはSSD消耗させる余計な機能と感じる。そのため、普通のスリープである「0」を選択している。
この辺の考え方は人それぞれだろう。全てMacにお任せなら、セーフスリープで良いと思う。
設定方法
ターミナルで以下のコマンドを入力
(SSDにメモリデータを書き込ませない)普通のsleepにしたい場合:sudo pmset -a hibernatemode 0
(Macbook airのデフォルト設定である)セーフスリープに戻したい場合:sudo pmset -a hibernatemode 3
それともう一つ、、
スリープ時にMacが勝手に起きてしまう場合があるので、ついでにこれもターミナルで(起きないように)設定しておく。
ターミナルで
syslog |grep -i “Wake reason”
と入力。
追記(2017年1月):
最近、YosemiteからSierraにアップデートしたら、上記のコマンドを使えなくなっているのに気がついた。
Sierraでは、以下のコマンドをターミナルに入力すると、
Macが「いつ」、「なぜ」起きたのか知ることができる。
log show --style syslog | fgrep "Wake reason"
これで、いつ、なぜ、コンピュータが復帰したかが可視化できる。
自分の場合は下記のの三つ。
1.Wake reason: EC.ACAttach (Maintenance)
2.Wake reason: SPIT (User)
3.Wake reason: EC.LidOpen (User)
1は、ACアダプターをつないだときに反応しているようなので無視。
2と3は、「 〜 (User) 」とあるように、ユーザー自身がMacを起こしたものなので問題ない。
これ以外に何かある場合は、
ターミナルで
sudo pmset -a standbydelay 604800
と入力
これで604800分(1週間)deep sleepしない(強制的に寝てもらう)設定になる。
自分はこの設定にしているので上記の三つの復帰理由しか出てこなくなり、スリープ状態でカバンに入れていで、Macbook airが熱くなっているということがなくなった。
上記のdeepsleepさせないことで、Macがふたを閉めた状態なのに、起動してしまうことを予防する方法は、「えふしん」さんのこちらのサイトを参考にさせていただいた。
追加でMacのSleep imageの削除法について新しい記事を書きました。