スリープ中のMacが熱くなる現象がずっと前からありました。Macの熱のせいで部屋が暑いし(夏だから)、本体もかなり熱いので心配です。

Macの挙動で気になっていたのでは、スリープしているにもかかわらず接続しているディスプレイからMacの復帰を認識したときのピッという音がなることです。だいたいFacebookメッセンジャーなどのメッセージを受信したタイミングで起こっていることがなんとなくわかっていたので、実はスリープ中もネットワークがつながっていて、通知のタイミングで起こすのかな?と思っていました。

省エネルギーからいじれる設定は割といじっているので、他にも原因があるのではないかと思って色々調べてみましたところ、こんな記事をみつけたのでトライしてみました。結果しばらく様子見しようと思っています。

「スリープ時にもネットワーク接続を許可するオプションを確認」のところです。

詳しくはわかってないですが、ioregというコマンドがあって、そこでスリープ中のネットワークアクセスなどに関する設定を確認することができるようです。

紹介したブログ記事の通り実行してみると僕もまったく同じ状況でした。

% ioreg -l | grep IOPlatformFeatureDefaults
    | | |   "IOPlatformFeatureDefaults" = {"TCPKeepAliveDuringSleep"=Yes,"DNDWhileDisplaySleeps"=No,"TCPKeepAliveExpirationTimeout"=43200,"NotificationWake"=Yes

表に整理すると、こうなっていました。キー名から推測した意味も書いておきます。

Key Value 意味(推測)
TCPKeepAliveDuringSleep Yes スリープ中にTCP通信を維持するかどうか
DNDWhileDisplaySleeps No ディスプレイのスリープ時にはDND(おやすみモード的なの)にする
TCPKeepAliveExpirationTimeout 43200 TCPを維持する時間(秒)
NotificationWake Yes 通知時に起きる

意味が推測通りだとしたら、僕が気になってたメッセージを受け取るとスリープから解除するというのは、NotificationWakeによるものではないかという気がします。

正直、スリープ中にネットワークに接続したい用途は一切ないので、先ほどの記事のように設定を書き換えました。

手順は元記事を見ていただいたほうがいいような気がします。他にも関連してそうな情報が載ってるので。。。

さて、無事設定を変更して再度コマンドで確認をすると以下のようになっており、無事想定通りの結果になっていることがわかりました。

% ioreg -l | grep IOPlatformFeatureDefaults
    | | |   "IOPlatformFeatureDefaults" = {"DNDWhileDisplaySleeps"=Yes,"TCPKeepAliveDuringSleep"=No,"NotificationWake"=No}
Key Value
TCPKeepAliveDuringSleep No
DNDWhileDisplaySleeps Yes
NotificationWake No

これでメッセージ受信でスリープ解除されないか、毎朝熱くなっていないかどうかなどをを確認したいと思います。