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

  1. 公開日:2014/09/19
  2. 更新日:
  3. Mac
  4. 3

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モードメモリの状態ディスクへの保存消費電力
0Sleep維持しない
3Safe Sleep維持する
25Deep Sleep破棄する

Sleepモード、Safe Sleepモードの場合、メモリの状態を維持しますが、休止状態になると、その内容は破棄されてしまいます。また、Safe Sleepモード、Deep Sleepモードの場合、メモリの状態をファイルへ書き込みを行うため、休止状態になった場合でも、ファイルの内容から状態を復元することができます。

ファイルへの書き込み、読み込みが発生するSafe 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は真っ先に削除しました。

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

参考リンク

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

http://d.hatena.ne.jp/zariganitosh/20110706/about_sleep
この記事が気に入ったらいいねしよう!
関連記事
ご意見ボード
匿名で管理人に送信されます。※送信専用です。返信はできません。
ご指摘・ご意見
  • 匿名

    さっぱり解らない。

    • ottan

      今後の記事作成の参考にさせていただきたいと思いますので、具体的に分かりづらかった点を教えていただけると助かります。

    • 今後の記事作成の参考にさせていただきたいと思いますので、具体的に分かりづらかった点を教えていただけると助かります。

Top