¿Qué sucede si reducimos el tamaño de hiberfil.sys

17

Hoy descubrí que podemos establecer el tamaño de hiberfil.sys usando la powercfg -H -size 100%herramienta de línea de comandos. Ignorando el espacio difícil que obtendrá, ¿qué más cambiará si lo configuramos powercfg -H -size 50%? ¿Limita el uso máximo de RAM al 50%? ¿El sistema no hiberna si tengo más del 50% de RAM?


fuente
2
el sistema se bloqueará con este bucheck ( msdn.microsoft.com/en-us/library/ff559341%28v=vs.85%29.aspx ) cuando la RAM utilizada sea más grande de lo que puede almacenar el archivo de hibernación
magicandre1981

Respuestas:

20

He encontrado un documento de Microsoft en relación con el archivo de hibernación. Lo que nos dice es que el contenido de la memoria se comprime antes de volcarse al archivo de hibernación, por lo que la mayoría de las veces establecer un porcentaje menor del archivo de hibernación es beneficioso ya que se desperdicia menos espacio en disco.

Windows admite la hibernación copiando el contenido de la memoria al disco. El sistema comprime los contenidos de la memoria antes de preservarlos en el disco, lo que reduce el espacio requerido en el disco a menos de la cantidad total de memoria física en el sistema.

La sintaxis correcta para el comando parece ser:

PowerCfg.exe /HIBERNATE /SIZE 75

El documento también establece que si el archivo de hibernación es demasiado pequeño, se producirá un "Error de detención" y los códigos sugerirán cuánto necesita aumentar el tamaño del archivo de hibernación.

Hacer esto no limitará la cantidad de RAM física disponible para su sistema.

Como está comprimido, reducir el tamaño del archivo no será problemático si rara vez alcanza el 100% de la memoria física utilizada y / o es probable que su memoria contenga datos que sean razonablemente comprimibles, lo que debería ser la mayor parte del tiempo.

De ese documento:

Windows reserva espacio en disco para hibernar en el archivo de hibernación, que se denomina Hiberfil.sys. Para Windows 7, el tamaño predeterminado del archivo de hibernación es igual al 75 por ciento de la memoria física total del sistema. Por ejemplo, en una computadora que tiene 2 GB de RAM, el tamaño predeterminado del archivo de hibernación es 1.5 GB.

En casos raros y extremos de uso de la memoria , incluida la validación de la memoria por un rendimiento de la memoria o una utilidad de prueba, la hibernación puede fallar porque el contenido de la memoria no se puede comprimir lo suficiente como para caber dentro del tamaño del archivo de hibernación.

Lo intentaría con números más bajos, pero personalmente no iría tan bajo como 50%. Sin embargo, podría estar bien y lo peor que sucederá es que la hibernación fallará y tendrá que reiniciar normalmente y establecer el tamaño para que sea un poco más grande.

Mokubai
fuente
2
Gracias por responder. No sé sobre el oficial pero ambos powercfg -H -size 100%y PowerCfg.exe /HIBERNATE /SIZE 75funciona correctamente
1
Parece que en Windows 10, el powercfgcomando ya no acepta un /SIZEargumento: al menos ya no está documentado, pero no se produce ningún error si lo especifica.
Martineau
Encontré que el tiempo para reanudar la hibernación aumentó sustancialmente cuando bajé el porcentaje al 60% (Windows 7 SP1). ¿Soy el único?
deddebme
@martineau es completamente posible que, debido al apagado híbrido en Windows, el tamaño del archivo de hibernación se haya adaptado de manera similar al archivo de intercambio. No he tenido la oportunidad de investigar, excepto para ver que mi archivo de hibernación es aproximadamente el 35% del tamaño de RAM de mi sistema, pero no me sorprende.
Mokubai
1
@intrepidis: Soy plenamente consciente de eso. ¿Sabía que si solo lo utiliza powercfg /?, obtendrá una lista mucho más larga de todos los parámetros posibles? Lo cual, si los revisa, eventualmente (no están en orden alfabético) verá la entrada -HIBERNATE, -Hy, además -H <ON|OFF>, también aceptará un -H -Size <PercentSize>lugar -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 coincide con la documentación de MS vinculada.
Martineau
4

La sintaxis en Windows 10 es ligeramente diferente

PowerCfg /h[ibernate] off

apagará la hibernación y eliminará el archivo C: \ hiberfil.sys

PowerCfg /h[ibernate] on

Volverá a activar la función y creará el archivo C: \ hiberfil.sys de aproximadamente el mismo tamaño que la memoria disponible (un sistema RAM de 16GiB crea un hiberfil.sys de 15.9GiB)

PowerCfg /h[ibrnate] size 75

Creará un archivo hiberfil.sys o reducirá su tamaño a aproximadamente el 75% (12GiB)

PowerCfg /h size 100

En efecto, es lo mismo que activar la función

Un valor de tamaño mayor que 100 da como resultado un mensaje de error de parámetro, un tamaño menor que 40 establece el tamaño efectivo en 40%.

usuario718960
fuente