Macがスリープから復帰するのが遅い場合の対処法

Macを開いてスリープから復帰させた際に、マウスカーソルだけがぽつんと表れて、画面がなかなか表示されないという現象に遭遇したことはありませんか?その場合、スリープ時に問題が発生している可能性があります。

そもそもMacのスリープとは何なのか、そこからまずは入り込んでいき、最終的に問題の根本を探ることにしました。

Macのスリープは3種類存在する

まず、Macのスリープには3種類存在することをご存知でしたか?ターミナルを開いて以下のコマンドを実行してみてください。

pmset -g

以下のような結果が得られたでしょうか。

Active Profiles:
Battery Power  -1*
AC Power  -1
Currently in use:
 standbydelay         10800
 standby              1
 halfdim              1
 hibernatefile        /var/vm/sleepimage
 darkwakes            0
 gpuswitch            2
 disksleep            10
 sleep                1
 autopoweroffdelay    14400
 hibernatemode        3
 autopoweroff         1
 ttyskeepawake        1
 displaysleep         2
 acwake               0
 lidwake              1

Battery Powerの横の*は、Macがバッテリー電源で駆動中であることを表しています。pmsetコマンドの結果に表示されている数値はすべてバッテリー駆動時のものです。

さて、このhibernatemodeがスリープの種類を表していて、MacBookの場合は「3」が初期設定となっています。このhibernatemodeには以下のような意味があります。

hibernatemode モード メモリの状態 ディスクへの保存 消費電力
0 Sleep 維持 しない
3 Safe Sleep 維持 する
25 Deep Sleep 破棄 する

Sleepモード、Safe Sleepモードの場合、メモリの状態を維持しますが、休止状態になると、その内容は破棄されてしまいます。また、Safe Sleepモード、Deep Sleepモードの場合、メモリの状態をファイルへ書き込みを行います。そのため、休止状態になった場合でも、ファイルの内容から状態を復元できます。Deep Sleepモードの場合、スリープおよびスリープからの復帰に時間を要します。ただし、Safe Sleepモードの場合は、メモリの状態も維持しているため、休止状態になっていなければ高速な復帰が可能です。

メモリの状態はどこに保存される?

デフォルトの保存先は/var/vm/sleepimageです。pmsetコマンドの実行結果にあるhibernatefileがイメージファイルの保存場所を表しています。

ls -l /var/vm/sleepimage
-rw------T  1 root  wheel  1073741824  9 18 08:29 /var/vm/sleepimage

その他の内容について

pmsetコマンドで表示されるその他の内容について確認しておきましょう。

項目 説明
standbydelay ディスクにメモリの状態を書き込み必要のあるSafe Sleep、Deep Sleepモードの場合の、ディスクをスリープさせるまでの遅延時間(秒)
standby スタンバイを行うかどうか(0:スタンバイオフ、1:スタンバイオン)
halfdim ディスプレイがスリープ状態になる前に輝度を下げるかどうか(輝度を下げない:0、輝度を下げる:1)
darkwakes バッテリー電源使用時にPower Nap(スリープ中にバックグラウンドで新着メール等のタスクを実行する)をオンにするかどうか(Power Napをオフ:0、Power Napをオン:1)
gpuswicth 不明(調査不足。GPUに関連するフラグと思われる)
disksleep ディスクをスリープさせるまでの時間(分)
autopoweroffdelay スリープから休止状態になるまでの時間(秒)
autopoweroff休止状態を使用するかどうか(0:使用しない、1:使用する)
ttyskeepawake リモートセッションがアクティブの場合にスリープするかどうか(0:スリープする、1:スリープしない)
displaysleep ディスプレイをスリープさせるまでの時間(分)
acwake 電源が変更されたら(バッテリー駆動からACコンセントなど)スリープを解除するかどうか(0:解除しない、1:解除する)
lidwake ディスプレイを開いたときにスリープを解除するかどうか(解除しない:0、解除する:0)

設定値を変更するためには?

これらの設定値を変更するためには、同様にpmsetコマンドを使用します。

sudo pmset -a [項目名] []

たとえば、スリープモードについて、休止状態になり内容が失われても良い場合は、「Safe Sleep」から「Sleep」に変更することでより高速なスリープを実現できます。

sudo pmset -a hibernatemode 0

スリープ状態から復帰時の問題

さて、前置きが長くなりましたが、冒頭のようにスリープ状態からの復帰時、黒い画面にマウスカーソルだけぽつんと表示されてしまい、なかなか復帰しないことがありました。このような時にはスリープに問題が発生している可能性があります。ターミナルで以下のコマンドを実行してみましょう。(一時的にテキストファイルにリダイレクトすることをオススメします)

pmset -g log

これで電源管理(スリープ、休止)に関するログが出力されます。その中から「Timedout」を探します。

2014/09/18 21:38:10 JST  Sleep                Idle Sleep: Using BATT (Charge:57%)                                         673 secs
2014/09/18 21:38:11 JST  SlowResponse         PMConnection: Response from mDNSResponder is slow (powercaps:0x0)                     614 ms
2014/09/18 21:38:11 JST  WakeRequests         Clients requested wake events: None
2014/09/18 21:49:23 JST  DarkWake             DarkWake [CDN] due to EC.LidClose/Maintenance: Using BATT (Charge:57%)
2014/09/18 21:49:23 JST  HibernateStats       hibmode=3 standbydelay=10800                                                          rd=224 ms
2014/09/18 21:49:23 JST  Timedout             Kernel: Response from Creative Cloud timed out (powercaps:0x9)                        30000 ms
2014/09/18 21:49:23 JST  Timedout             Kernel: Response from Adobe CEF Helper timed out (powercaps:0x9)                      30000 ms
2014/09/18 21:49:23 JST  Sleep                Maintenance Sleep: Using BATT (Charge:57%)                                  2014 secs
2014/09/18 21:49:23 JST  WakeRequests         Clients requested wake events: None
2014/09/18 22:22:57 JST  Wake                 Wake [CDNVA] due to EC.LidOpen/Lid Open: Using BATT (Charge:56%)
2014/09/18 22:22:57 JST  HibernateStats       hibmode=3 standbydelay=10800

Adobe Creative Cloudが原因で30,000ミリ秒(30秒)間待機していることがわかります。最近、Adobe製品を触る機会はめっきりなくなったので、Adobe Creative Cloudは真っ先に削除しました。

それ以来、スリープ状態からの復帰は今まで通りの早さを取り戻しました。スリープで問題を抱えている場合は是非お試しください。

参考リンク

以下のサイトが大変参考になりました!

https://zariganitosh.hatenablog.jp/entry/20110706/about_sleep

comments powered by Disqus