40

В Windows вы можете перевести компьютер в режим гибернации, чтобы он запускался намного быстрее, потребляя при этом нулевую энергию при "спящем режиме".

Я вижу возможность спать на моем Mac mini, но не в спящем режиме. Mac поддерживает гибернацию?

Я на Леопарде.

8 ответов8

34

OS X имеет только одну опцию "сна". Вы не можете изменить его имя, но чтобы изменить его поведение, я использую старую версию SmartSleep на Mac mini (хотя в режиме "сна и гибернации", подобном MacBook). Это работает для мини, хотя сайт относится только к MacBook.

(SmartSleep был все еще свободен, когда я написал это в 2009 году.)

Иногда я получаю жалобы на то, что оборудование не было удалено должным образом (но OS X никогда не говорит мне, какое оборудование, и мои USB-диски Time Machine кажутся нормальными - я должен заглянуть в журналы однажды, и я предполагаю, что это связано с OS X, а не SmartSleep).

Я быстро протестировал "только спящий режим" SmartSleep на этом мини (Intel; работает 10.5), и, похоже, он тоже работает. Выполняя эти тесты, я заметил, что после того, как дисплей погаснет, индикатор питания начнет пульсировать (например, чтобы указать на сон, а не на спящий режим) на несколько секунд. Может быть, он все еще записывает ОЗУ на диск. (До сих пор я всегда думал, что на моем MacBook пульс указывает, что все сделано. Но теперь я думаю, что, какой бы режим сна вы ни использовали, вероятно, не следует отключать питание слишком рано). Через некоторое время он полностью отключается.

В 2006 году Macworld объясняет, как добиться того же самого без этой панели настроек SmartSleep. Чтобы проверить текущую настройку:

pmset -g | grep hibernatemode

Согласно старой статье Macworld, применимо следующее, но обязательно прочитайте ответ Лаури, который предполагает, что в настоящее время вместо этого следует использовать только 0, 3 и 25:

  • 0 - Режим сна в старом стиле, с включенной оперативной памятью во время сна, отключенным безопасным сном и сверхбыстрым пробуждением.
  • 1 - режим гибернации, когда содержимое ОЗУ записывается на диск, система полностью отключается во время «сна» и медленнее просыпается из-за чтения содержимого ОЗУ с жесткого диска.
  • 3 - Режим по умолчанию на машинах введен примерно с осени 2005 года. ОЗУ включается во время сна, но содержимое ОЗУ также записывается на диск перед сном. В случае полной потери мощности система автоматически переходит в режим гибернации.
  • 5 - Это то же самое, что и режим 1, но для тех, кто использует защищенную виртуальную память (в Системных настройках »Безопасность).
  • 7 - Это то же самое, что и режим 3, но для тех, кто использует безопасную виртуальную память.

И те же цифры могут быть использованы для изменения настройки режима ожидания:

sudo pmset -a hibernatemode 1
10

Я написал скрипт , который позволит вам немедленно перейти в режим гибернации (без постоянного изменения настроек). Я нахожу это весьма полезным, так как мне нравятся настройки по умолчанию, но я хочу принудительно ввести спящий режим, когда в дороге. Может быть, кому-то это тоже пригодится ;-)

#!/bin/bash

# Utility to force your mac immediately into hibernation mode/suspend to disk,
# thus conserving battery considerably (at the cost of slower startup)
# @date 2012-02-10
# @author Carl-Erik Kopseng. Contact at oligofren.wordpress.com

# must be run as root by using sudo or to avoid entering the password, change the pmset
# executable settings by entering
# sudo chmod +s /usr/bin/pmset
# sudo chmod +s /sbin/shutdown

MODE_BACKUP=/tmp/hibernate_mode.bak
SUSPEND_TO_DISK=25 #see man pmset

display_settings() {
    echo "Current settings: " $(pmset -g | grep hibernatemode)
}

save_settings() {
    echo "saving settings"
    pmset -g | grep hibernatemode | awk '{print $2}' > $MODE_BACKUP
}

restore_settings() {
    echo "restoring settings"
    pmset -a hibernatemode $(cat $MODE_BACKUP)
}

set_only_disk_hibernate() {
    echo "changing settings to only suspend to disk (slow, but does not use battery)"
    pmset -a hibernatemode $SUSPEND_TO_DISK
}

hibernate() {
    echo "going into hibernation"
    shutdown -s now
}

save_settings
set_only_disk_hibernate && hibernate
restore_settings
9

Страница руководства pmset также рекомендует использовать 25 вместо 1 .

0000 1000 (бит 3) побуждает динамический пейджер выводить неактивные страницы перед переходом в спящий режим для уменьшения объема используемой памяти.

0001 0000 (бит 4) поощряет динамический пейджер к более агрессивному пейджингу перед переходом в спящий режим для уменьшения объема используемой памяти.

Мы не рекомендуем изменять настройки гибернации. Любые сделанные вами изменения не поддерживаются. В любом случае, если вы решите сделать это, мы рекомендуем использовать одну из этих трех настроек. Ради меня, пожалуйста, не используйте ничего, кроме 0, 3 или 25.

[...]

hibernatemode = 25 (двоичный код 0001 1001) устанавливается только через pmset. Система сохранит копию памяти в постоянном хранилище (на диске) и отключит питание памяти. Система восстановится с образа диска. Если вы хотите "спящий режим" - более медленный сон, более медленные пробуждения и лучшее время автономной работы, вам следует использовать этот параметр.

Некоторые ноутбуки теперь переходят в спящий режим (режим ожидания) примерно через час нормального сна, если:

  • Power Nap не включен (поэтому не по умолчанию)
  • Компьютер работает от батареи
  • Компьютер не подключен к USB-устройствам или внешним дисплеям и не связан с Bluetooth-устройствами

Ноутбуки, Mac mini и iMac используют около 0,2-0,4 Вт в выключенном или спящем режиме и 0,8-1,4 Вт в спящем режиме. Режим гибернации (а также режим гибернации + спящий режим, который используется по умолчанию в ноутбуках) также может сократить срок службы накопителей.

6

И для OS X Lion это работает лучше для гибернации

sudo pmset -a режим гибернации 25

чем

sudo pmset -a режим гибернации 1

как режим гибернации 1 может вызвать сбои по некоторым причинам.

5

Для ответов, которые основаны на переключении «режима гибернации» через pmset, полезно отметить, что опция «force» в pmset делает изменения временными. Настройка не запомнится, когда система выйдет из спящего режима. Например:

pmset -a hibernatemode 25 force

Изменит режим гибернации, чтобы он представлял традиционный режим гибернации (т. Е. Состояние системы, записанное на диск и отключенное питание), но только до следующего включения системы или чтения параметров с диска (pmset touch).

Использование параметра силы избавляет от необходимости сохранять и восстанавливать текущие настройки режима гибернации.

3

Ага. это называется безопасный сон. Самый простой способ получить это - использовать виджет глубокого сна.

3

Режим гибернации также будет запускаться автоматически, если батарея вашего ноутбука полностью разрядится.

2

Я читал, что "Безопасный сон" включен по умолчанию на всех компьютерах Intel Mac и некоторых поздних моделях PowerPC (я думаю, что у Intel mini есть такая поддержка, но у PPC, вероятно, нет - без неподдерживаемых хаков).

Но "безопасный сон" сам по себе не совсем то же самое, что и "спящий режим". Это комбинация сохранения ОЗУ на диск, но и нормальный сон. Это позволяет быстро пробуждаться, а также сохраняет состояние системы, если происходит сбой питания во время сна компьютера.

Вы можете определить, использует ли система Safe Sleep (по крайней мере, после одного сна), проверив наличие файла /var /vm /sleepimage, размер которого совпадает с размером установленной оперативной памяти. Кроме того, когда активен режим безопасного сна, будет более длительная задержка между нажатием пункта меню «Режим сна» (или кнопки, или удерживанием клавиши «Command-Option-Eject»), прежде чем индикатор состояния устройства начнет свой обычный цикл постепенного увеличения / уменьшения.

Последний бит решения состоит в том, чтобы полностью отключить питание машины после сохранения памяти в режиме сна. Кажется, что это можно настроить с помощью программы pmset командной строки, чтобы установить режим гибернации. Вы можете воспользоваться чем-то вроде Deep Sleep для автоматического внесения изменений в конфигурацию.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .