mac book 的睡眠/休眠機制是怎樣的,是不是一直有問題?

如題,以及

1、pmset 中 屏幕保護程序、sleep、standby、hibernate mode、autopoweroff、之間是如何協調工作的?

2、pmset中選項與 系統偏好設置-節能器中的對應關係。dark wakes 是Power Nap 嗎?

3、觸髮腳的將顯示器置入睡眠狀態、鑰匙串的鎖定屏幕、單擊電源鍵各進入的什麼狀態

搜到的一些回答,看完後仍然比較迷惑:

Standby Mode

問題基於一個簡單的需求,由於內存比較大希望盡量減少休眠時的SSD寫操作,當然關於SSD的壽命問題需要另起一個問題了~


結合 pmset -g stats 做了一些測試:

觸髮腳的將顯示器置入睡眠狀態鑰匙串的鎖定屏幕 都沒有增加Sleep Count和User Wake Count,放的音樂也沒有停止,應該確實只關閉了顯示器,只注意到了一點差別,鑰匙串的鎖定屏幕需要按鍵喚醒,觸髮腳的將顯示器置入睡眠狀態只需要觸碰觸摸板即可喚醒。如果只單純的關閉屏幕,將亮度跳到0格也可以。以上兩種操作都觸發了鎖屏,需要重新輸入密碼解鎖,而且鍵盤燈也關了

單擊電源鍵的反應很奇怪,Sleep Count沒有增加,但User Wake Count +1 了。音樂停止,需要按鍵喚醒,應該是進入sleep了。推測Sleep Count是系統觸發的sleep計數或者是我太快喚醒,還沒來得及sleep

找到一篇官方文檔,說的比較清楚:

OS X:通過睡眠節省能源

結合這篇文檔及之前搜集到的資料說一下我的理解

OS X睡眠有三種狀態 Sleep、Hibernate、StandBy。

Sleep 就是普通的睡眠。主要對RAM、鍵盤供電,按按任意鍵喚醒。

Hibernate 是休眠。Hibernate將RAM保存到非易失性存儲後直接斷電關機,喚醒需要按電源鍵。

StandBy 是在基於SSD硬碟下對Hibernate的一種改進。StandBy將RAM保存到非易失性存儲後仍對至少對鍵盤供電,按任意鍵可以喚醒。個人理解是Apple的商業戰略,跟iOS看齊,想模糊掉關機概念。

所以,根據能耗逐步遞減的順序應該是這樣一個狀態轉換:

  • 硬碟睡眠

    • 如果沒有從硬碟驅動器讀取或寫入文件時,此「節能器」設置將減小硬碟驅動器電機的功耗。
    • 此設置僅對採用機械硬碟驅動器機制來存儲數據的電腦有效。

註:固態硬碟 (SSD) 不使用電機機制來讀取或寫入數據。對於僅配有內建固態硬碟的 Mac 電腦,此設置不會對此內建固態硬碟產生任何影響。它僅適用於外部連接的機械驅動器。

    • 硬碟睡眠與顯示器睡眠應該沒有一個嚴格的順序
    • 設置方式
      • GUI:系統偏好設置 - 節能器 -電池/電源適配器-如果可能使硬碟進入睡眠
      • CLI:pmset [-b/-c] disksleep &<分鐘&>
    • 自動觸發方式
      • 硬碟閑置到達disksleep分鐘後進入此狀態
    • 手動觸發方式
      • 暫未發現
  • 顯示器睡眠
    • 只關閉顯示器,系統正常運行,喚醒時需要重新登陸。
    • 設置方式
      • GUI:系統偏好設置 - 節能器 -電池/電源適配器-此段時間後關閉顯示器
      • CLI:pmset [-b/-c] displaysleep &<分鐘&>
    • 自動觸發方式
      • 系統閑置到達displaysleep分鐘後進入此狀態
    • 手動觸發方式
      • 使用觸髮腳 將顯示器置入睡眠狀態
      • 鑰匙串的鎖定屏幕

  • 睡眠
    • 主要對RAM、鍵盤供電,按按任意鍵喚醒。

    • 設置方式
      • GUI:系統偏好設置 - 節能器 -電池/電源適配器-電腦進入睡眠
        • OS X Mavericks 沒看到 電腦進入睡眠 這個設置

      • CLI:pmset [-b/-c] sleep &<分鐘&>
    • 自動觸發方式
      • 系統閑置到達sleep分鐘後進入此狀態
    • 手動觸發方式
      • 從 Apple (?) 菜單中選取「睡眠」
      • 同時按下 Command (?) Option 和介質推出鍵 (?)。
      • 如果您使用的是 Mac 筆記本電腦,請合上其內建顯示屏。
      • 請輕按電腦上的電源按鈕。(OS X Mavericks)
  • 待機
    • 按任意鍵喚醒
    • 設置方式
      • pmset [-b/-c] standby &<1開啟/0關閉&>

      • pmset [-b/-c] standbydelay &<秒&>

    • 觸發方式
      • standby開啟時,睡眠到達standbydelay分鐘後進入此狀態
    • 這個待機機制似乎一直有bug,這個bug貌似與一個跟USB相關的補丁dl1609有關,有大量用戶報告到達standbydelay秒後並沒有進入休眠而是不斷喚醒,導致電量耗光。我也遇到了這個問題,具體情景是插著電源合蓋休眠,後拔掉電源,到達standbydelay秒後不斷喚醒,耗電厲害
  • 休眠
    • 設置方式
      • pmset [-b/-c] hibernatemode 25

      • 當hibernatemode = 25時,所有的睡眠都變為休眠


man pmset

中說的很清楚了

目前OSX10.11隻有 兩種模式了


推薦閱讀:

MacBook 大概能用幾年?
MacBook Air 是否適用於辦公?
如何給15款13寸macbook pro加內存?
使用 NW.js 跨平台開發
macbook貼膜後,合不上蓋,有縫隙是怎麼回事?設計缺陷?

TAG:MacBookPro | MacBook | Mac | MacBookAir | macOS |