It might be that some device doesn't want to hibernate.
Under Win7 you can use the powercfg command to analyze such problems, See:
Evaluate System Energy Usage and Get Power Management Report with PowerCfg -Energy Switch in Windows 7
I also recommend going through these articles:
Sleep and hibernation: frequently asked questions
Troubleshooting Windows 7 Sleep Problems
Hibernate is not done in the RAM, so 2 GB or 4 do not matter. What matters is if there is enough contiguous free space on your system disk to allocate the hibernation file hiberfil.sys. If there isn't enough space, then the file won't be allocated and hibernation won't be available. In your case, 2 GB of available disk-space are required, as this file basically contains an image of the RAM. In addition, it's advisable to have at least 1 GB of free space at all times.
I suggest that you regard in the root of your C: drive if the file exists. As this is a hiddeb system file, see this article : How to view hidden files, folders and extension for known file types on Windows 7, Vista and XP.
If the file doesn't exists, then try to turn hibernation on. Else turn hibernation off, ensure that you have at least 3 GB of free space, defrag the system drive, then turn it back on again and watch for error messages. The way to turn hibernation off or on is by opening the command shell with administrator rights and typing:
powercfg -H off
powercfg -H on
If nothing helps, I suggest that you post somewhere the file that is produced by "PowerCfg -ENERGY >file.txt" so that we could have a look at it.