May 2nd, 2011

glider

Хибернейт

Всегда относился к хибернейту с подозрением, ибо даже на двух гектарах рамы он у меня происходил значительно медленнее, чем выключение компа. Иногда, конечно, хотелось его заюзать (например, когда какое-нибудь дело резко выдергивает из дома, а на компе открыта куча прилаг), но тормозное выключение компа отбивало все желание. Когда появился SSD, я вообще перестал заморачиваться, т.к. комп врубался и все нужные прилаги запускались за минуту-две.

Сегодня от нечего делать решил проверить как оно будет работать. Заенаблил хибернейт через консоль (удивительно, но я не нашел как это сделать из GUI настроек винды), замаппил кнопку выключения системника на хибернейт и сделал "тыц" (памяти было занято около двух из восьми гектар). Результат превзошел мои ожидания - система выключилась за 15 секунд (обычный шатдаун занимает около 10 секунд), после чего включилась обратно за 3 (три!!) секунды. Цена удовольствия: 6 гектар зарезервированного места на SSD венике размером в 90 гектар.

Вроде бы на этом можно было бы закончить, но внимательный читатель может спросить: "а почему шесть гектар, если физической памяти восемь гектар?". Меня тоже заинтересовало это несоответствие, и я полез в гугл. Оказалось, что винда по умолчанию устанавливает размер hiberfil.sys в 75% от объема физической памяти, рассчитывая на то, что: 1) почти никогда вся память не занята, 2) сохраняемые страницы памяти сжимаются. Сам я не проверял, но гугл говорит, что в случае нехватки размера hiberfil.sys, винда выкинет синий экран с сообщением: "STOP 0x000000A0 INTERNAL_POWER_ERROR".

Последняя мелочь - в отличие от pagefile.sys, файл хибернейта перенести на другой диск нельзя. Я попробовал обойти это ограничение при помощи симлинка, но ничего не вышло: The system could not create the hibernation file. The specific error code is 0xc0000001.

Чит-шит:
* Включить хибернейт: PowerCfg.exe /HIBERNATE on
* Выключить хибернейт: PowerCfg.exe /HIBERNATE off
* Установить размер файла hiberfil.sys: PowerCfg.exe /HIBERNATE /SIZE <0-100> (дефолт: 75)

upd. По совету wizzard0 включил гибридный хибернейт - саспенд на 30 минут, после чего комп уходит в хибернейт и выключается насовсем. Радости от общения с компом стало гораздо больше. А потом и вовсе перешел на саспенд - лишней энергии потребляется мизер, а включение компа за 2-3 секунды в любое время суток на том же месте, где остановился - это просто праздник какой-то. Конечно, есть риск отключения питания и потери контекста, но за прошедший месяц такого ни разу не случилось => я пока что об этом не беспокоюсь.