Take the 2-minute tour ×
Super User is a question and answer site for computer enthusiasts and power users. It's 100% free, no registration required.

I have a 4GB RAM 500GB 7200 rpm HDD laptop and when I hibernate the laptop it takes in the region of 3 or 4 minutes(*) to hibernate. not the 24 seconds it used to take.

It takes this long whether or not my external USB drives are plugged in.

When I got it it was pre-installed with Vista Home Premium, I have since restored the OS from the backup DVD's I created, and also upgraded to Vista Ultimate.

What should I be checking in order to track down the source of this rather sloth-like hibernate process.

I'm looking to tips, techniques and tools please peeps.

Thanks in advance.

I will be back to update / answer this question as I investigate, and also if I find a solution.

(*) Timed it - it took 4 minutes 38 seconds. 31 seconds after enabling disk write caching

share|improve this question
    
Any entries in your Event Viewer that seem germane to this issue? Did this start happening after installing any new software or windows updates? –  Garrett Oct 6 '09 at 18:18

6 Answers 6

up vote 4 down vote accepted

In my experience, a slow hibernate is a result of write caching that has been disabled on the disk. Have a look at the properties of the drive, under the Policies tab.

share|improve this answer
    
enabled write-caching, hibernate took 33 seconds. Disabled it, took ages again, re-animated the machine and timed the hibernation, hibernate took 4 minutes 38 seconds, enabled it again. Took 31 seconds. Great work Randolph, you get the accepted answer award. –  cometbill Oct 7 '09 at 0:15
    
Randolph - any idea how it gets disabled? I'd think that would something that would default to on. –  Michael Kohne Oct 7 '09 at 0:33
    
@cometbill - thanks - I found it out the hard way with XP once. –  user3463 Oct 7 '09 at 16:43
    
@Michael - on some laptops it can be off by default, depending on the chipset (was off on my Asus until I downloaded the Intel drivers), though logic would dictate it should be on since a laptop has a battery. That's life I guess. –  user3463 Oct 7 '09 at 16:43

make sure hiberfil.sys is a contigeous file (disable hibernation, defragment the drive, re-enable hibernation).

share|improve this answer

Some advice for speeding hibernation:

  1. See if there are any suspicious events in the Event Log.
  2. Disable Readyboost and Superfetch (if enabled).
  3. Run Windows Update, paying attention to optional driver updates.
  4. Check new versions for non-Microsoft drivers and especially for display, bluetooth, USB.
  5. Download TweakVista - it may tell you which parts of the system are affecting sleep/hibernation performance
  6. Remove the hibernation file by switching the feature off and defrag your primary drive (ensure you have at least 20% disk space free), then re-enable hibernation.
share|improve this answer

When you hibernate (go into a suspend-to-disk state) your OS needs to write copies of data in any active memory pages in RAM to disk (to the hibernation file in the root of your system drive usually in Windows) - in your case that could mean writing up to 4Gb of information to disk.

Writing 4Gb in three minutes is an average of just under 22Mbyte/second which while a good chunk slower than most modern drives can write isn't outrageously so it is unlikely that Windows has decided to run your drive in PIO mode, but it might be worth checking to see if it is using an old standard DMA mode instead of the shine newer UDMA modes your drive will support. Windows should drop the standard down a step or few in the presence of certain drive anomalies, though I've also seen it do this for no readily apparent reason. In case it has dropped the standard down (you can check this, and try revert, in the device manager entry for the drive controller) for good reason I suggest you get some software that can read the SMART properties of the drive to make sure it still thinks it is healthy.

A quick question (which might be a little patronising in which case I'm sorry!): are you sure that you were hibernating (suspend to disk) before rather than sleeping (suspend to RAM)? Though I would expect suspend-to-RAM to be quicker than 24 seconds, writing a full 4Gb of state in 24 seconds is ~170Mbyte/second on average which seems a mite high. I could be barking up the wrong end of the stick here as there are reasons why a susend-to-disk can be much faster (not all RAM in use, recently un-hibernated so most of the hibernation file is still valid and doesn't need to be rewritten (assuming Windows uses a one-to-one mapping for RAM pages to file blocks and uses a mark-on-access-and-only-write-if-dirty algorithm when hibernating, etc...)

share|improve this answer
1  
I don't think it writes the entire RAM, just the used part. –  harrymc Oct 6 '09 at 18:28
    
yes, definitely hibernating to disk, not suspending. I change the power properties as soon as I install windows to do nothing when I close the lid, and hibernate to disk when I press the power button. –  cometbill Oct 6 '09 at 23:51
    
@harrymc: yes, it will only write active pages (and if it has recently come out of hibernation I suspect it will not rewrite those pages that are not yet marked as modified since last time), that is why I said "up to 4Gb". IIRC it will include pages used for disk caches so it is not unlikely that, on a machine that has been running a while, you will be using most of your physical ram and so it will all need writing. –  David Spillett Oct 7 '09 at 11:56

Slow hibernation can be caused by services taking too long to shutdown. Your use case seems to indicate this:

Under regedit, check the following key:

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control

Open it and locate WaitToKillServiceTimeout. You should see a big number in milliseconds. I do not know what is the default Vista sets it at. But you want to reduce this to 5000. That's 5 seconds of waiting before forcefully shutting down a service.

share|improve this answer
    
I don't see how that can help : services don't shutdown for hibernation. –  harrymc Oct 6 '09 at 19:24

You can decrease the size of hiberfil.sys...dunno if that will make it any faster.

  1. Open a command prompt as administrator
  2. Type powercfg -h -size 50 to reduce it down to 50% size (the minimum).
share|improve this answer
    
This is interesting. I think I shall give this a look. –  user3463 Oct 7 '09 at 16:48

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.