原因
SSD内蔵の macOS 搭載マシンについては、節電対策としてスタンバイモードというのが搭載されています。バッテリー駆動時にスリープして一定時間がたつとディープスリープ(休止モード)になるモードのことです。
macOS 10.14 のデフォルトでは、スタンバイモード設定については、次のようになっています。
(ターミナルより pmset -g で確認可能)
- stanby 1 (スタンバイ有効)
- standbydelayhigh 86400(1日) - バッテリ駆動時
- standbydelaylow 10800(3時間)- バッテリ駆動時
ディープスリープ(休止モード)は、デフォルトの「セーフスリープ」設定の場合、バッテリーが少なくなってきたときか、一定時間待機(ここが曲者)したら自動移行します。
ディープスリープは、メモリ内容をSSDに保存して完全に電源OFFにして、次回復帰時にSSDからメモリへデータを復帰させるため、物理メモリ搭載量が多ければ多いほど時間がかかる可能性が高くなります。。
ここで問題なのは、一定時間待機という一定時間が、3時間かもしれないという点です。3時間スリープしたらディープスリープになっちゃうかもねーってのは「ちょっと短すぎない!?」ってことです。急いでいるときに、しばらく無反応でレインボーカーソルがぐるぐる回りだして、ジーと待たないといけないのにイラってきているなら、やる価値はありそうです。なお、バッテリーを頻繁に完全放電するような人には向きません。
さてこれでうまくいくかはしばらく使ってまたコメントいれます。
STEP 1. スタンバイ時間を長くする
- hibernatemode 3 (セーフスリープ)
- standbydelayhigh 86400(1日)
- standbydelaylow 10800(3時間)
だったのを
- hibernatemode 3 (セーフスリープ)
- standbydelayhigh 604800(1週間)
- standbydelaylow 604800(1週間)
ターミナルアプリより
sudo pmset -a standbydelay 604800
とすることで設定できます。
ただ、そうすると Bonjour (mDNS)によるスリープからの復帰問題によってバッテリーが意図せず浪費する可能性があります。参考:Macでスリープ時にバッテリーが減る現象を改善する方法まとめ
Bonjour (mDNS)がどれぐらい動いているかは、
とタイプして、
Wake reason: RTC (Alarm) が大量に出ているようなら、Bonjour (mDNS) がスリープ時に動いていることになります。
そうした場合には STEP 2. にて止めると良いとのことです。プリンタも最近は Bonjour ではなく、Air Printとか IP(TCP/IP)プリントとか出来るものも多いですしねぇ。
STEP 2. Bonjour (mDNS) を止める
Macbook の電源管理、または pmset コマンドの使い方 で書かれている通り、
ターミナルアプリより
を実行して設定した上で、
sudo launchctl unload /System/Library/LaunchDaemons/com.apple.mDNSResponder.plist
sudo launchctl load /System/Library/LaunchDaemons/com.apple.mDNSResponder.plist
で mDNSResponder を再起動する(あるいは端末を再起動する)。
2018年12月14日 @kimipooh