MacBook Proで夜間バッテリー消費が止まらない問題
(manuel.bernhardt.io)- MacBook Pro Silicon M1 Max で夜通しバッテリー消費の現象を体験
- 電源管理ログを直接分析しようと試みたが、問題の原因特定には限界があった
- 専用アプリのSleep Aidを使って、ウェイクイベントを視覚的に確認できた
- Sleep Aidの設定で「Wake for maintenance(メンテナンス目的で起動)」が無効になっていることが原因であると判明
- 該当オプションを再び有効化した結果、夜通しのバッテリー消費現象が解消された
MacBook Proでの夜通しバッテリー消費問題
- 数年間 MacBook Pro Silicon M1 Maxを使い続けてきた
- 最近、予期せずノートPCを電源に接続せずに置くと、夜通しでバッテリー消費が増える症状が現れ始めた
- 症状が次第に悪化し、原因分析を自ら開始した
電源管理ログ分析を試す
- MacOSのターミナルコマンド
pmset -g logを通じて電源管理関連のログを確認できる - しかしこのログの出力は膨大で解釈が難しかったため、ログ解析用に直接開発したシンプルなツール pmset-analyzer を使用した
- ただし、このツールだけでは実質的な解決には大きな助けにならなかった
詳細設定の調整と追加調査
- 公式ドキュメントやコミュニティで案内されている
tcpkeepaliveなどの電源管理設定を一つずつ調整してみた - 設定変更だけでは問題解決に大きな効果がなかった
Sleep Aidアプリによる問題解決
- 追加調査の過程で Sleep Aid というアプリを知った
- このアプリは**ウェイクイベント(wake event)**を視覚的に表示し、各種電源管理設定を直感的に変更できるインターフェースを提供する
- Sleep Aidで確認したところ、"Wake for maintenance(メンテナンス目的で起こす)" オプションが無効化されていた
- アプリの説明どおり、この設定が無効のままだと頻繁なウェイクイベントが発生する場合がある
- 該当オプションを再び有効化して以降、夜通しのバッテリー消費現象は発生しなくなった
2件のコメント
MacBook Pro のスリープ問題
MacBookをスリープモードにして寝ていたのに、突然夜中に画面が点いて部屋中が明るくなります。寝ていて目が覚めて、そのまま完全にシャットダウンしたことが何度もあります。これ、いつからか論争の種になっていたのに、まだこんな状態なんですね……
Hacker Newsのコメント
pmset -g assertionsコマンドを使うと、どのプロセスがシステムのスリープを妨げているか分かり、保留中のpower assertionの詳細も確認できる。pmsetには公式ドキュメントにないコマンドもあり、Appleが公開しているソースコードを見ると分かる。特定のassertionを無視させるコマンドもある。ただし、"UserIsActive" assertionを無効にすると、システムを復帰させるのに苦労するかもしれないsudo pmset -a hibernatemode 25。元に戻すにはsudo pmset -a hibernatemode 3を入力すればよい