O que acontecerá se reduzirmos o tamanho do hiberfil.sys

17

Hoje eu descobri que podemos definir o tamanho do hiberfil.sys usando a powercfg -H -size 100%ferramenta de linha de comando. Ignorando o espaço difícil que você terá, o que mais mudará se o definirmos powercfg -H -size 50%? Limita o uso máximo de RAM a 50%? O sistema não hibernará se eu tiver mais de 50% de RAM?


fonte
2
o sistema irá travar com este bucheck ( msdn.microsoft.com/en-us/library/ff559341%28v=vs.85%29.aspx ) quando a RAM usada é maior do que o arquivo de hibernação pode armazenar
magicandre1981

Respostas:

20

Tenho encontrado um documento do Microsoft sobre o arquivo de hibernação. O que isso nos diz é que o conteúdo da memória é compactado antes de ser despejado no arquivo de hibernação; portanto, na maioria das vezes, definir um tamanho percentual menor do arquivo de hibernação é benéfico, pois menos espaço em disco é desperdiçado.

O Windows oferece suporte à hibernação, copiando o conteúdo da memória para o disco. O sistema compacta o conteúdo da memória antes de preservá-lo no disco, o que reduz o espaço em disco necessário para menos do que a quantidade total de memória física no sistema.

A sintaxe correta para o comando parece ser:

PowerCfg.exe /HIBERNATE /SIZE 75

O documento também afirma que, se o arquivo de hibernação for muito pequeno, ocorrerá um "Erro de parada" e os códigos sugerirão quanto você precisa aumentar o tamanho do arquivo de hibernação.

Fazer isso não limitará a quantidade de RAM física disponível para o seu sistema.

Como é compactado, a redução do tamanho do arquivo não será problemática se você raramente atingir 100% da memória física usada e / ou é provável que sua memória contenha dados razoavelmente compactáveis, na maioria das vezes.

A partir desse documento:

O Windows reserva espaço em disco para hibernação no arquivo de hibernação, chamado Hiberfil.sys. No Windows 7, o tamanho padrão do arquivo de hibernação é igual a 75% da memória física total no sistema. Por exemplo, em um computador com 2 GB de RAM, o tamanho padrão do arquivo de hibernação é de 1,5 GB.

Em casos raros e extremos de uso de memória , incluindo validação de memória por um desempenho de memória ou utilitário de teste, a hibernação pode falhar porque o conteúdo da memória não pode ser compactado o suficiente para caber no tamanho do arquivo de hibernação.

Eu tentaria números mais baixos, mas pessoalmente não chegaria a 50%. Pode ser bom, porém, e o pior que acontecerá é que a hibernação falhará e você terá que reiniciar normalmente e definir o tamanho para ser um pouco maior.

Mokubai
fonte
2
Obrigado pela resposta. Eu não sei sobre a oficial, mas tanto powercfg -H -size 100%e PowerCfg.exe /HIBERNATE /SIZE 75funciona corretamente
1
Parece que no Windows 10, o powercfgcomando não aceita mais um /SIZEargumento - ele não está mais documentado, pelo menos, mas nenhum erro é produzido se você o especificar.
22616 martineau
Descobri que o tempo para sair da hibernação aumentou substancialmente quando reduzi a porcentagem para 60% (Windows 7 SP1). Eu sou o único?
precisa saber é o seguinte
@martineau, é perfeitamente possível que, devido ao desligamento híbrido no Windows, o tamanho do arquivo de hibernação tenha se adaptado de maneira semelhante ao arquivo de troca. Não tive chance de investigar, exceto para ver que meu arquivo de hibernação é aproximadamente 35% do tamanho da RAM do meu sistema, mas não estou surpreso.
Mokubai
1
@intrepidis: Estou plenamente ciente disso. Você sabia que, se você apenas usar powercfg /?, será tratado com uma lista muito mais longa de todos os parâmetros possíveis. Que, se você os examinar, eventualmente (eles não estão em ordem alfabética) verá a entrada -HIBERNATE, -He que além -H <ON|OFF>disso também aceitará um -H -Size <PercentSize>onde -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.- que corresponde à documentação vinculada do MS.
martineau
4

A sintaxe no Windows 10 é um pouco diferente

PowerCfg /h[ibernate] off

desligará a hibernação e removerá o arquivo C: \ hiberfil.sys

PowerCfg /h[ibernate] on

Ativará a função novamente e criará o arquivo C: \ hiberfil.sys com aproximadamente o mesmo tamanho da memória disponível (um sistema de RAM de 16 GiB cria um hiberfil.sys de 15,9 GiB)

PowerCfg /h[ibrnate] size 75

Criará um arquivo hiberfil.sys ou reduzirá seu tamanho para aproximadamente 75% (12GiB)

PowerCfg /h size 100

É o mesmo que ativar o recurso

Um valor de tamanho maior que 100 resulta em uma mensagem de erro de parâmetro; um tamanho menor que 40 define o tamanho efetivo para 40%.

user718960
fonte