Mengapa komputer lambat untuk kembali dari hibernasi?

22

Hibernasi seharusnya menulis konten RAM ke disk, dan kembali dari hibernasi seharusnya mengisi kembali RAM dengan konten yang disimpan. Mengapa kembali dari hibernasi lambat, mis. Sistem sangat tidak responsif secara umum untuk beberapa waktu?

enthrops
sumber
1
Anda harus mencoba komputer yang menggunakan solid-state drive (SSD), seperti MacBook Pro. Hampir instan, sebagian besar waktu.
Stewart
1
tangkap jejak hibernasi / lanjutkan dengan xbootmgr dan analisis apa yang lambat: msfn.org/board/index.php?showtopic=140247
magicandre1981
Saya menggunakan hibernate pada laptop kantor saya, tetapi untuk mempercepatnya saya menutup semua aplikasi saya terlebih dahulu (menggunakan utilitas kecil bernama closeall ntwind.com/software/utilities/close-all.html )
Morgan T.

Jawaban:

19

Penyebab utama adalah disk I / O. Membaca dan menulis ke disk fisik jauh lebih lambat daripada dari RAM. Ketika komputer Anda melanjutkan dari disk (hibernasi) itu juga harus menyalakan komponen yang dapat menyebabkan beberapa perlambatan. Ini sangat tergantung pada komputer. SSD akan memiliki kecepatan resume yang hampir sama dari disk seperti dari RAM. Beberapa komputer memungkinkan Anda memindahkan mouse sebelum ram diisi penuh lagi, menyebabkan waktu respons rendah.

Catatan: Asumsikan Anda memiliki 8GB RAM dan SSD dengan throughput 400MB / s. Masih akan membutuhkan 8 * 1024MB / 400MB / s = 20,48s. Ini bukan kecepatan yang sama dengan resume dari RAM.

Dengan asumsi throughput RAM 15,000MB / s, waktu resume adalah 0,55 detik.

Wolfizen
sumber
5
Reading and writing to a physical disk is much slower than from RAM. Ya, tetapi membaca lebih cepat daripada menulis, jadi mengapa perlu waktu lebih lama untuk membaca HDD daripada menulisnya?
Synetech
1
@ Synetech bukan? Jika Anda hanya mengatur waktu hibernasi dari memukul opsi ke pengosongan layar (berlawanan dengan aktivitas drive yang berhenti) OS mungkin mengosongkannya lebih awal sehingga sepertinya tidak macet. Jika Anda mengukur shutdown melalui waktu IO, ada beberapa kemungkinan. Dengan SDD saya akan memeriksa untuk melihat apakah file halaman terfragmentasi karena SSD lebih cepat pada penulisan acak daripada membaca acak. Kalau tidak, saya akan berspekulasi bahwa dehibernate lebih lambat karena keterlambatan restart beberapa komponen perangkat keras yang dimatikan bukan karena kinerja IO.
Dan Neely
@DanNeely, sebenarnya saya tahu apa yang Anda maksud. Saya sering kesal ketika saya mengklik Hibernate, layar cepat mati, tetapi drive itu sendiri masih meronta-ronta untuk beberapa waktu (sering satu atau dua menit lebih). Ini benar-benar menjengkelkan karena Anda tidak bisa hanya mengambil laptop dan melemparkannya ke dalam tas karena drive masih berputar dan bergerak itu akan meningkatkan kemungkinan head-crash (standby lebih baik untuk shutdown cepat). Namun, saya juga tahu apa yang dikatakan enthrop; kadang-kadang resume membutuhkan waktu lama (well Windows melanjutkan dengan cukup cepat, tetapi LED HDD tetap menyala untuk waktu yang lama).
Synetech
@Synetech, alasan lain untuk berharap SSD cukup murah untuk bisa universal
Dan Neely
3

Sementara RAM sangat cepat, hard disk adalah kebalikannya. Bayangkan Anda harus menyalin konten RAM Anda, yang mungkin sekitar 16 GB, dari hard disk. Itu 4 DVD. Lihat?

KamikazeCZ
sumber
3

Ini tradeoff. Apakah kita menarik semua yang ada di RAM sebelum hibernasi kembali dari disk ke RAM sekaligus, atau hanya sedikit demi sedikit, sesuai kebutuhan?

Kita semua tahu bahwa membaca suatu sektor dari disk pemintalan secara praktis membutuhkan waktu yang sama dengan menulis sektor tersebut ke disk pemintalan yang sama - waktu pencarian + putar. Jadi kita mungkin berharap bahwa menulis informasi dari RAM ke disk (pada hibernasi) akan memakan waktu yang sama seperti membaca RAM yang sama dari disk (melanjutkan dari hibernasi). Tapi itu tidak terjadi seperti itu, karena permintaan paging.

Jika OS melakukan semuanya sekaligus, maka melanjutkan dari hibernate akan memakan waktu puluhan detik, tetapi setelah itu akan bertindak sama seperti jika Anda tidak pernah hibernasi sama sekali.

Pemrogram OS biasanya memilih paging permintaan . Dengan kata lain, OS hanya menarik sedikit demi sedikit dari disk, sesuai kebutuhan. Itu memiliki keuntungan bahwa melanjutkan dari hibernate membutuhkan waktu jauh lebih sedikit sebelum mulai menanggapi keyboard dan mouse. Di sisi lain, ketika Anda menggunakan sesuatu untuk pertama kalinya setelah hibernasi, ada sedikit keterlambatan tetapi nyata ketika OS akhirnya sempat memuatnya. Itu terjadi bahkan ketika "pertama kali" Anda menggunakan sesuatu mungkin beberapa menit setelah hibernasi. Jadi setelah melanjutkan dari hibernasi (yaitu, setelah Anda melihat layar yang tampaknya lebih atau kurang identik dengan layar sesaat sebelum hibernasi), bekerja dengan mesin mungkin tampak lamban untuk sementara waktu.

Seperti yang ditunjukkan Synetech, ada sedikit psikologi manusia yang terlibat: Karena layar mati segera di awal hibernasi, sepertinya ia mati dengan cepat. Dan pengguna dapat langsung melanjutkan apa pun yang ingin Anda lakukan. Tetapi setelah resume dari hibernasi, pengguna mencoba melakukan sesuatu, dan sedikit penundaan itu mengganggu karena menghalangi apa yang coba dilakukan oleh pengguna.

David Cary
sumber
2

Saya mengerti maksud Anda. Memang terlihat seperti LED HDD berkedip untuk waktu yang lama setelah melanjutkan dari hibernasi.

Beberapa penjelasan yang masuk akal telah diberikan tentang penundaan karena memulai perangkat keras (dan akselerasi driver?) Dan fragmentasi (Anda akan melihat bahwa sistem yang baru dari pabrik umumnya akan hibernasi dan melanjutkan dengan cukup cepat sedangkan yang telah digunakan selama beberapa waktu akan lebih lambat untuk melakukannya). Ada beberapa penjelasan lebih lanjut untuk perilaku ini.

Saat Anda hibernasi, Windows mem-flush RAM ke drive. Meskipun kecepatan tinggi untuk membaca RAM dan menulis ke disk (bahkan dengan file hibernasi defragmented pada drive kosong yang besar), masih perlu waktu cukup lama untuk menulis beberapa gigabytes (Anda akan melihat bahwa hibernasi dan melanjutkan sistem dengan sejumlah kecil RAM jauh lebih cepat). Layar mati dengan cepat, tetapi drive (dan motherboard, kipas, dll.) Semua tetap berjalan untuk sementara sampai selesai membilas RAM ke disk. (Pastikan untuk tidak membuang laptop dengan HDD di sekitar sampai setelah selesai dan benar-benar mematikan drive).

Anda dapat melakukan beberapa pengujian eksperimental untuk mengukur waktu yang diperlukan mulai dari mengklik Hibernate hingga sistem dimatikan, dan waktu yang diperlukan mulai dari saat Anda melihat layar Melanjutkan Windows sampai LED HDD berhenti berkedip. Mereka kemungkinan akan kira-kira sama. (Windows memang berusaha membuatnya seolah-olah kembali dari hibernasi sangat cepat dengan menulis dan kemudian membaca kernel dan hal-hal ke file hibernasi terlebih dahulu, sehingga ia dapat kembali dan berjalan segera dan kemudian terus memuat sisanya di dalam latar belakang dan sesuai kebutuhan hingga semuanya dilanjutkan kembali — Anda dapat melihat perilaku ini dalam tindakan karena layar masuk ditampilkan dengan sangat cepat.)

Lalu mengapa sepertinya melanjutkan membutuhkan waktu lebih lama. Ada dua penjelasan untuk ini.

  1. Ini psikologis . Seperti yang ditunjukkan Dan, karena layar langsung mati saat Anda hibernasi, sepertinya dimatikan dengan cepat, sementara Anda melihat seluruh proses resume (membuka layar dan HDD LED berkedip).

  2. Ini paging. Karena kebanyakan orang menggunakan hibernate daripada shutdown karena mereka ingin menghindari keluar dari program dan sedemikian rupa sehingga mereka dapat mengambil di mana mereka tinggalkan, itu berarti bahwa ketika Windows kembali, ada banyak program yang sudah berjalan dan sudah menghabiskan memori. Karena sejumlah besar waktu telah berlalu sejak terakhir kali manajer memori Windows memeriksa sistem, ia kemungkinan akan berakhir dengan melakukan pertukaran memori sejak dari sudut pandangnya, beberapa program telah tidak aktif untuk sementara waktu dan yang lain telah menjadi aktif. Pertukaran ini tentu saja membutuhkan waktu dan meronta-ronta drive untuk beberapa waktu.

Hasil akhirnya kemungkinan merupakan kombinasi faktor dan interaksi antara aktivasi perangkat keras, paging, psikologi, dan fragmentasi.

Jika Anda sanggup melakukannya, Anda dapat secara pasti mencari tahu (setidaknya pada sistem Anda) apa hambatannya dengan melakukan beberapa tes sederhana seperti menggunakan Proses Monitor untuk mengamati aktivitas drive / file sementara Windows hibernasi dan dilanjutkan untuk melihat apakah semua itu meronta-ronta adalah karena akses ke hiberfil.sysatau pagefile.sys.

Synetech
sumber
1
Saya suka pendekatan psikologis. Hibernasi pada hard drive biasa tidak dirancang dengan cara UX, atau seharusnya tidak pernah ada.
smonff