17
18

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

Macbookのスリープをpmsetでより最適化させてみる

Last updated at Posted at 2019-08-12

スリープ中のMacbookの充電が減ってしまう時の対応まとめ よりスリープ時に電力消費が多いと感じる時にすることをまとめました。その中でpmsetでより詳細に設定できるようなので今回はこのpmsetについてまとめてみます。
なお、このパラメータ変更について、アップルサポートでは対応してくれませんでした。 設定によっては、サポート対象外になる恐れもありますので、自己判断でお願いします。

筆者の環境

  • MacBook Pro13 2018 Touch Bar付きモデル メモリ16GB
  • MacOSバージョン10.14.6 (Mojave)
  • 充放電回数 100回程度

今の設定はこう言う事(私ver)

現在の私の設定ですとこうなります。

ディスプレイを閉じる(スリープボタンを押す)
↓↓↓↓
電源が50%以下だと30分までスリープ(直前のセッションはメモリに)30分以内なら即復帰!
↓↓↓↓
30分を超えるとスタンバイモードに。セッション内容が全てSSDに保存されほぼ電源off状態に (日持ちする)
↓↓↓↓
復帰時にはSSDから読み取るのでチョイ時間かかる。でもバッテリー消費は以前より抑えられている!(はず)

pmsetて何

Macで設定できる省エネルギー設定では設定できない、スリープ等の詳細なパラメータを設定できるコマンドです。記事を探っていると、MacOSの前バージョンのSierraと現行のMojaveでは少しパラメータが異なるようです。
このコマンドでできる事、各項目についてまとめていきます。

設定の確認と各項目の意味

まず現在の設定を確認します。

オプション

pmset -g #現在の設定値を出力する
    -b #バッテリー駆動時の設定を変える
    -c #電源接続時の設定を変える
    -u #無停電電源(UPS)時の設定を変える これはMacbookに必要なの?
    -a #全ての設定を変える

現在の状態の確認なら-gオプションで出力されます。
また、出力時の駆動状態(バッテリーor電源)で表示が変わるので注意して下さい。
-uはMacbookの設定では扱わなくても良さそうです(多分

出力例

バッテリー駆動時の出力結果は以下になります。

 $ pmset -g
System-wide power settings:
Currently in use:
 standbydelaylow      1800
 standby              1
 halfdim              1
 hibernatefile        /var/vm/sleepimage
 proximitywake        0
 powernap             0
 gpuswitch            2
 disksleep            10
 standbydelayhigh     10800
 sleep                10
 hibernatemode        25
 ttyskeepawake        1
 displaysleep         10
 tcpkeepalive         0
 highstandbythreshold 50
 acwake               0
 lidwake              1

各項目について、説明していきます。

standby

スタンバイモードを有効にするかどうか。1:有効 0:無効
スタンバイについてはスリープ・スタンバイモードとはの項目へ。

standbydelay

バッテリー残量が多いか少ないかで設定を変えられる。highlowがあ理、例ではstandbydelayhigh 10800standbydelaylow 1800としています。
この項目では、スリープ状態からスタンバイ状態になるまでの時間を秒単位で決める事ができます。例だと、バッテリー残量が多ければ10800秒でスタンバイ状態に、残量が少ないと1800秒でスタンバイ状態になります。
ここで言うバッテリー残量が多いか少ないかも設定できます。highstandbythresholdで設定可能。
スリープ・スタンバイについてはスリープ・スタンバイモードとは の項目へ。

halfdim

スリープの前にディスプレイ輝度を半分に下げるかどうか。1:有効 0:無効

hibernatefile

ハイバーネートファイル(スリープイメージ)の保管先。バイナリファイルなので見れません。
スリープからスタンバイになる時に、直前の状態をここに書き出す。

proximitywake

1:有効 0:無効
Anyone know what pmset's proximitywake option is meant to do? とかmanを読む限り、同じiCloudIDの端末が近づいたら復帰する?よくわからないから教えて詳しい人。

powernap

パワーナップを有効にするかどうか。1:有効 0:無効
省エネルギー設定でも変更可能。わざわざコマンド叩いて変更しなくて良さそう。

gpuswitch

GPUを複数搭載しているMacに対応している、省エネルギー設定の「グラフィックスの自動切り替え」と同じ。省エネルギー設定に該当欄がないなら飛ばしてどうぞ。
0:integrated(グラフィックス常時使用) 1: discrete(使用しない) 2: auto switch(自動切り替え)

disksleep

省エネルギー設定の「可能な場合はハードディスクをスリープさせる」に当たる設定。
オフにすると0になるが、オンにすると10に変更されるので時間を指定できるみたい。10となっているので単位は秒じゃなくて分だと思われるが、実際はその7割程度でスリープしてしまうとの記事もあった。
一応SSD搭載型でも該当項目があるので、HDDだけの設定ではない様子。書き込みを休ませるとかだと思う。

sleep

多分、スリープに入るまでの時間。単位は
電源接続時の省エネルギー設定「ディスプレイがオフの時にコンピュータを自動でスリープさせない」にチェックを入れると0になるため。スリープに入るまでの時間だと思われる。基本、ディスプレイが切れたらスリープに入るみたい。

hibernatemode

ハイバーネートモードを設定できる。
0 or 3 or 25が推奨らしい(manより)
詳しいことは、hibernatemodeでバッテリー消費を抑える で。

ttyskeepawake

リモートログイン時にスリープするかどうか。1:有効 0:無効

displaysleep

省エネルギー設定の「ディスプレイをオフにするまでの時間」に当たる設定。設定単位は
これも省エネルギー設定から設定可能。

tcpkeepalive

TCPのキープアライブを有効にするかどうか。1:有効 0:無効
多分一般的なTCPのキープアライブの設定だと思われるので、有効にすると、定期的にTCPが有効であるパケットを送信し続けると思われる。バッテリー食いそう。

highstandbythreshold

standbydelayhighlowをどこで分けるかを設定できる。例では、50%以上ではhigh、50%を下回るとlowの設定が適用される。

acwake

バッテリー駆動 ⇆ 電源接続 が切り替わった時に復帰するかどうか。1:有効 0:無効
刺したり抜いたりしてその都度起こす必要あるんかいな。

lidwake

ディスプレイを開くと復帰するかどうか。1:有効 0:無効
開いてかつボタンを押すまでが復帰のルーティーンだと言う方はオフにしましょう。

値を変更して、バッテリー持ちを良くしていく

例に挙げているのは初期値ではなく変更後の値になっています。この値に変更した理由も含めて解説します。
ここで説明しなかったものは初期値のままです。
変更したのは、standbydelay,hibernatemodeの2つです。

各値の変更方法

sudo pmset -オプション 変更項目 変更する値 

これで変更します。オプションはどの状態の設定を変更するかを決めるものです。オプションで確認してください。

standbydelayを変える

standbydelayより
highstandbythresholdは初期値で50のままなので、ここでは50%以上だと3時間、50%を切ると30分でスタンバイモードに入ります。

スリープ・スタンバイモードとは

Apple公式のページがあるので置いときます。Mac のスタンバイ機能について
今回書いた私のイメージとして

スリープ → 即復帰できるようにメモリに格納されっぱなしの状態。電力消費そこそこ。
スタンバイ → 直前のセッションを別(ハイバーネートファイル)で保存して、復帰時にそこから復元する。保持しない分電力消費低!

です。また、どの程度スタンバイさせるかはhibernatemodeを変えるで決める事ができます。

hibernatemodeを変える

ハイバーネートの設定については二度寝スリープでメモリをガッツリ解放しておく の記事に詳しく書いてありました。長いのでこちらを参照してください。
要点をおさえる(?)とこんな感じ

  • 設定値は0 or 3 or 25 以外はやめとけ
  • 規定値は3
  • 0だと電源offになる
  • 3だとギリギリまで保持するけど電源がやばくなったら電源がoff(?
  • 25だと直前のセッションがメモリから外部記憶に全て移され電源off
  • 25だと復帰時に時間がかかる(理由は上記だから)

つまりSSDでバッテリー持ちを良くしたいなら25でいいじゃん!なので25にしています。

日持ちするようになったのか?

確認しています。実感がでたら具体的な数字を書く予定です。
タイトル最適化になってるけど、最適化か?と思ったけどタイトル思いつかないのでそのままにしますハイ

参考

わからない人は参考読んだらわかるかも
Mojaveにおけるスリープ中のバッテリー消費
pmset で Mac の電源制御 ※記事の情報が少し古いです。
二度寝スリープでメモリをガッツリ解放しておく

17
18
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
17
18

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?