Что произойдет, если мы уменьшим размер hiberfil.sys

17

Сегодня я обнаружил, что мы можем установить размер hiberfil.sys с помощью powercfg -H -size 100%инструмента командной строки. Игнорируя жесткое пространство, которое вы получите, что еще изменится, если мы установим его powercfg -H -size 50%? Это ограничивает максимальное использование оперативной памяти до 50%? Будет ли система не переходить в спящий режим, если у меня более 50% оперативной памяти?


источник
2
система рухнет с помощью этой проверки ( msdn.microsoft.com/en-us/library/ff559341%28v=vs.85%29.aspx ), когда используемая оперативная память больше, чем может хранить файл гибернации
magicandre1981

Ответы:

21

Я нашел документ Microsoft относительно файла гибернации. Это говорит нам о том, что содержимое памяти перед сжатием в файл гибернации сжимается, поэтому в большинстве случаев установка меньшего размера в процентах для файла гибернации выгодна, поскольку расходуется меньше дискового пространства.

Windows поддерживает спящий режим, копируя содержимое памяти на диск. Система сжимает содержимое памяти перед сохранением его на диске, что уменьшает требуемое дисковое пространство до уровня, который меньше общего объема физической памяти в системе.

Правильный синтаксис команды выглядит так:

PowerCfg.exe /HIBERNATE /SIZE 75

В документе также говорится, что если файл гибернации слишком мал, возникает «ошибка остановки», и коды подскажут, насколько вам нужно увеличить размер файла гибернации.

Это не ограничивает объем физической оперативной памяти, доступной вашей системе.

Поскольку он сжат, то уменьшение размера файла не будет проблематичным, если вы редко используете 100% используемой физической памяти и / или ваша память, вероятно, будет содержать данные, которые достаточно сжимаемы, что в большинстве случаев и должно быть.

Из этого документа:

Windows резервирует дисковое пространство для спящего режима в файле спящего режима, который называется Hiberfil.sys. Для Windows 7 размер файла гибернации по умолчанию равен 75 процентам общей физической памяти в системе. Например, на компьютере с 2 ГБ ОЗУ размер файла гибернации по умолчанию составляет 1,5 ГБ.

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

Я бы попробовал на более низких цифрах, но лично я бы не пошел на 50%. Вполне возможно, что все будет хорошо, и худшее, что может случиться, это то, что гибернация не удастся, и вам придется нормально перезагрузиться и установить размер немного больше.

Мокубай
источник
2
Спасибо за ответ. Я не знаю о официальном, но оба powercfg -H -size 100%и PowerCfg.exe /HIBERNATE /SIZE 75работает правильно
1
Похоже, что в Windows 10 powercfgкоманда больше не принимает /SIZEаргумент - по крайней мере, она больше не задокументирована, но если вы ее укажете, ошибки не будет.
Мартино
Я обнаружил, что время выхода из спящего режима значительно увеличилось, когда я снизил процент до 60% (Windows 7 SP1). Я один такой?
Дедебм
@martineau вполне возможно, что из-за гибридного завершения работы в Windows размер файла гибернации стал адаптивным аналогично файлу подкачки. У меня не было возможности провести расследование, за исключением того, что мой файл гибернации составляет примерно 35% от объема системной памяти, но я не удивлен.
Мокубай
1
@intrepidis: я полностью осознаю это. Знаете ли вы, что если вы просто используете, powercfg /?вы получите гораздо более длинный список всех возможных параметров. Который, если вы посмотрите их, вы в конечном итоге (они не в алфавитном порядке) увидят запись для, -HIBERNATE, -Hи кроме того, -H <ON|OFF>он также примет -H -Size <PercentSize>где -Size Specifies the desired hiberfile size in percentage of the total memory. The default size cannot be smaller than 50. This switch will also enable the hiberfile automatically.- что соответствует связанной документации MS.
Мартино
4

Синтаксис в Windows 10 немного отличается

PowerCfg /h[ibernate] off

отключит гибернацию и удалит файл C: \ hiberfil.sys

PowerCfg /h[ibernate] on

Снова включит функцию и создаст файл C: \ hiberfil.sys примерно того же размера, что и доступная память (система RAM объемом 16 ГБ создает файл hiberfil.sys размером 15,9 ГБ)

PowerCfg /h[ibrnate] size 75

Создаст файл hiberfil.sys или уменьшит его размер примерно до 75% (12 ГБ)

PowerCfg /h size 100

Действует так же, как включение функции

Значение размера больше 100 приводит к сообщению об ошибке параметра, а размер меньше 40 устанавливает эффективный размер равным 40%.

user718960
источник