ハイバネーション

ハイバネーション(Hibernation)とはパーソナルコンピュータのオペレーティングシステム(以降OSと略)に備わる機能の一つで、電源を切断(シャットダウン)する前に、メインメモリが保持している内容を外部記憶装置(ハードディスクドライブ、以下ハードディスクと略)に待避させ、次にコンピュータを起動させた際、作業途中から再開できるようにする機能である。

https://ja.wikipedia.org/wiki/%E3%83%8F%E3%82%A4%E3%83%90%E3%83%8D%E3%83%BC%E3%82%B7%E3%83%A7%E3%83%B3

ノートパソコンを買うといろんな発見があるわけで、なんならもっと前からノートだったらよかったのかもっって思ったりもしますけれども、まわりを見ていると私の場合、Apple Silicon のを買ったこのタイミングが正解だったのかとも思われて。

ハイバーネーションなんて、知らないことはなかったけど実際に切り替えてみてどうこうっていうのは Mac mini ではどうなのかって思ってたくらいですから、知らなかったと言っちゃってもいいくらいのレベルでした。

SAFE SLEEP ARGUMENTS
hibernatemode supports values of 0, 3, or 25. Whether or not a hibernation image gets written is also dependent on the values of standby and autopoweroff

For example, on desktops that support standby a hibernation image will be written after the specified standbydelay time. To disable hiber-nation images completely, ensure hibernatemode standby and autopoweroff are all set to 0.

hibernatemode = 0 by default on desktops. The system will not back memory up to persistent storage. The system must wake from the contents of memory; the system will lose context on power loss. This is, historically, plain old sleep.

hibernatemode = 3 by default on portables. The system will store a copy of memory to persistent storage (the disk), and will power memory during sleep. The system will wake from memory, unless a power loss forces it to restore from hibernate image.

hibernatemode = 25 is only settable via pmset. The system will store a copy of memory to persistent storage (the disk), and will remove power to memory. The system will restore from disk image. If you want “hibernation” – slower sleeps, slower wakes, and better battery life, you should use this setting.

Please note that hibernatefile may only point to a file located on the root volume.

man pmset

デスクトップは0、ノートは3、みたいな話らしいんですが、今回手元にある Mac mini (2018) は3だったんですよね。 なんかのタイミングで切り替えていたのかしら。

ところでうちの MacBook Air はおよそノートパソコンらしく使っていないっぽく、いやモバイルとしては使っている・・・移動できる端末っていうのはあたってますけど・・・拠点間を移動するだけで、移動(車)中は使いませんので正直申し上げて移動前にシャットダウンしてもいいくらいの話です。 でもそんな、どうせバッテリーが搭載されているんだし、たかだか十数分の移動であれば極端にバッテリーの消費が少ない機種でもあるんでスリープして蓋閉じて持ち運びすればいいんじゃないのかって結論に達し、そうしてはいます。

ついでに言いますとスリープ明けの外部モニタの認識がすっっっっっごくかったるく、これって問題なんじゃないのか?っていうレベルであり、それが夜間は画面をロックしている自宅においては「急いで立ち上げたいのになんかモニタつかないしついたと思ったら消えちゃうし怒っちゃうぞもう!」とかプンスカしているのではありまして、だったらかっこつけてクラムシェルにせず、外部モニタを使いたいときだけ接続し、通常は端末のみでいいんじゃないかっていう話でもありますが、いや、そうしようもうこうなったら。

あ、あと、仕事柄β版のシステムを入れているせいか、アップデータ(だもんでβとかRCとか)適用後にハブの向こうの有線LANを認識しないことが毎回で、再ログインもいいけど結局リブートとかしちゃい、今では条件反射的にリブートする始末です。

と、そういうことで話を戻すと、拠点間の移動時にスリープさせたいがためにバッテリーが存在しているような私の(端末の)場合、スリープした後にバッテリーがどうこうなるっていうことはあり得ないですし、バッテリーの残量を気にするような起動距離の場合にはシャットダウンして臨めばいいわけですから、スリープ時にはなにもしれくれなくてもいい、メモリの中身をストレージに移動してどうこうなんて余計なことはせんでええのやっ!

ということで

sudo pmset -a hibernatemode 0

sleepimage ファイルは生成させないのであります。 余計なディスクアクセスはなるたけ減らしたい私なのではありました。