Wednesday, January 28, 2015

memory - How can I make Windows XP use more than 2.5GB of RAM?


At work, I have four system with Windows XP SP 3 with 4GB RAM installed. When I start a lot of apps, I see that Windows gets unstable when more than 2.5GB of RAM is in use with the usual effects: Explorer crashing, icons disappearing.


So it seems that Windows runs out of memory even through at least 1GB of RAM should be free (as a 32bit OS, WinXP can't use more than 3.5GB max but I'm still 1GB short).


Another thing is that Windows is trying to extend the swap file (which is set to a fixed 512MB) which isn't exactly what I want. I know that XP tries to make my system more snappy by swapping prematurely (so it can simply free pages which haven't been used for some time) but I'd prefer a system which never swaps -- I do have enough free RAM.


[EDIT] My gfx card has 512MB and the mapping is FD000000-FDFFFFFF, E0000000-EFFFFFFF and FA000000-FBFFFFFF.


This means there is a pretty big gap between EFFFFFFF and FA000000 plus a smaller one between FBFFFFFF and FD000000. This is an NVidia GeForce 8400GS. Anything I could do here to move the maps? Or can I artificially unmap part of the gfx RAM? This is my development PC, I need no 3D at all ...


[EDIT2] My device manager says that free memory goes from 0x0100'0000 to 0xDFE8'6BFF which is roughly 3.3GB. So I'm still missing 0.8GB.


Answer



First of all, do not statically set or get rid of your swap. Doing so is more or less saying that you know more about what is going on in the internals of your operating system than Microsoft does.


One thing to keep in mind is that all of your graphics cards, all pci devices, etc that have addressable memory on them are taking away from the maximum amount of memory in your system. After you subtract that memory from your physically addressable memory, you will have the portion that your OS and Applications share.


If you need to extend the amount of RAM your apps have access to, there is a switch that can be set in boot.ini, but this can constrain the amount of memory windows has to work with.


Tim Slattery did a good article on windows ram usage.


There is a great explanation of the page file's importance and usage in response to this serverfault question.


To gain more usable memory your best bet is to upgrade to a 64-bit OS which will be able to make use of a full 3.5+ gigs of RAM.


No comments:

Post a Comment

linux - How to SSH to ec2 instance in VPC private subnet via NAT server

I have created a VPC in aws with a public subnet and a private subnet. The private subnet does not have direct access to external network. S...