Apa yang terjadi jika kita mengurangi ukuran hiberfil.sys

17

Saya hari ini menemukan bahwa kita dapat mengatur ukuran hiberfil.sys menggunakan powercfg -H -size 100%alat baris perintah. Mengabaikan ruang keras yang akan Anda dapatkan, apa lagi yang akan berubah jika kita mengaturnya powercfg -H -size 50%? Apakah itu membatasi penggunaan RAM maks hingga 50%? Apakah sistem tidak akan hibernasi jika saya menggunakan lebih dari 50% RAM?


sumber
2
sistem akan macet dengan bucheck ini ( msdn.microsoft.com/en-us/library/ff559341%28v=vs.85%29.aspx ) ketika RAM yang digunakan lebih besar dari yang dapat disimpan oleh file hibernasi
magicandre1981

Jawaban:

20

Saya telah menemukan dokumen Microsoft mengenai file hibernasi. Apa yang dikatakannya adalah bahwa isi memori dikompresi sebelum dibuang ke file hibernasi sehingga sebagian besar waktu mengatur ukuran persentase yang lebih rendah dari file hibernasi bermanfaat karena lebih sedikit ruang disk yang terbuang.

Windows mendukung hibernasi dengan menyalin isi memori ke disk. Sistem memampatkan konten memori sebelum menyimpannya di disk, yang mengurangi ruang disk yang diperlukan hingga kurang dari jumlah total memori fisik pada sistem.

Sintaks yang benar untuk perintah tampaknya:

PowerCfg.exe /HIBERNATE /SIZE 75

Dokumen tersebut juga menyatakan bahwa jika file hibernasi terlalu kecil maka "Stop Kesalahan" akan terjadi dan kode akan menyarankan seberapa banyak Anda perlu menambah ukuran file hibernasi.

Melakukan ini tidak akan membatasi jumlah RAM fisik yang tersedia untuk sistem Anda.

Karena dikompresi maka mengurangi ukuran file tidak akan menjadi masalah jika Anda jarang mencapai 100% dari memori fisik yang digunakan dan / atau memori Anda cenderung berisi data yang cukup kompresibel yang sebagian besar waktu seharusnya.

Dari dokumen itu:

Windows menyediakan ruang disk untuk hibernasi dalam file hibernasi, yang bernama Hiberfil.sys. Untuk Windows 7, ukuran default file hibernasi sama dengan 75 persen dari total memori fisik pada sistem. Misalnya, pada komputer yang memiliki 2 GB RAM, ukuran file hibernasi default adalah 1,5 GB.

Dalam kasus penggunaan memori yang langka dan ekstrem , termasuk validasi memori oleh kinerja memori atau utilitas tes, hibernasi dapat gagal karena isi memori tidak dapat dikompres cukup agar sesuai dengan ukuran file hibernasi.

Saya akan mencobanya pada angka yang lebih rendah tetapi secara pribadi saya tidak akan serendah 50%. Ini mungkin baik-baik saja meskipun dan yang terburuk yang akan terjadi adalah hibernasi akan gagal dan Anda harus reboot secara normal dan mengatur ukurannya menjadi sedikit lebih besar.

Mokubai
sumber
2
Terima kasih atas jawabannya. Saya tidak tahu tentang yang resmi tetapi keduanya powercfg -H -size 100%dan PowerCfg.exe /HIBERNATE /SIZE 75berfungsi dengan baik
1
Sepertinya pada Windows 10, powercfgperintah tidak lagi menerima /SIZEargumen - setidaknya tidak didokumentasikan, tetapi tidak ada kesalahan yang dihasilkan jika Anda menentukannya.
Martineau
Saya menemukan waktu untuk melanjutkan dari hibernasi meningkat secara substansial ketika saya menurunkan persentase menjadi 60% (Windows 7 SP1). Apakah saya satu-satunya?
deddebme
@martineau sepenuhnya mungkin karena shutdown hybrid di Windows ukuran file hibernasi menjadi adaptif dengan cara yang sama seperti file swap. Saya tidak memiliki kesempatan untuk menyelidiki, kecuali untuk melihat bahwa file hibernasi saya sekitar 35% dari ukuran RAM sistem saya, tetapi saya tidak terkejut.
Mokubai
1
@intrepidis: Saya sepenuhnya sadar akan hal itu. Tahukah Anda bahwa jika Anda hanya menggunakan powercfg /?Anda akan disuguhi daftar yang lebih panjang dari semua parameter yang mungkin. Yang, jika Anda melihat melalui mereka, Anda akhirnya (mereka tidak dalam urutan abjad) melihat entri untuk -HIBERNATE, -Hdan bahwa selain -H <ON|OFF>itu juga akan menerima di -H -Size <PercentSize>mana -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.- yang cocok dengan dokumentasi MS tertaut.
martineau
4

Sintaks di Windows 10 sedikit berbeda

PowerCfg /h[ibernate] off

akan mematikan hibernasi dan menghapus file C: \ hiberfil.sys

PowerCfg /h[ibernate] on

Akan mengaktifkan kembali fungsi dan membuat file C: \ hiberfil.sys dengan ukuran yang sama dengan memori yang tersedia (sistem RAM 16GiB menciptakan hiberfil.sys berukuran 15.9GiB)

PowerCfg /h[ibrnate] size 75

Akan membuat file hiberfil.sys atau memperkecil ukurannya menjadi sekitar 75% (12GiB)

PowerCfg /h size 100

Efeknya sama dengan mengaktifkan fitur

Nilai ukuran yang lebih besar dari 100 menghasilkan pesan kesalahan parameter, ukuran yang lebih kecil dari 40 mengatur ukuran efektif hingga 40%.

pengguna718960
sumber