Tek-Tips is the largest IT community on the Internet today!

Members share and learn making Tek-Tips Forums the best source of peer-reviewed technical information on the Internet!

  • Congratulations TouchToneTommy on being selected by the Tek-Tips community for having the most helpful posts in the forums last week. Way to Go!

Why does my 4GB of RAM show up as 3GB in XP? 4

Status
Not open for further replies.

beeej21

Technical User
Jul 7, 2003
67
US
Just installed 2 more 1GB Patriot RAM sticks onto my MB this evening, but my Windows XP Pro only shows me as having 3GB of RAM installed in Sytem Properties...

MB is an ASUS A8N-SLI Premium

CPU is an AMD Athlon 64 X2 4200, 2.21 GHz

RAM is 4 1GB Patriot sticks, premium with heat dispensers

O/S is Windows XP Pro version 2002 with SP 2

In my BIOS it shows that I have 4GB of RAM, but not in the O/S. Is there something I need to do.. or is there something I may have done wrong or overlooked?

Any answers or advise would be really appreciated. Thanks in advance.
 
You could try

Googling for memtest86 - build the bootable floppy and run it to see if it finds 4Gb of RAM.

Assuming it does, then you have the following problem.

4Gb is the limit for XP - which it splits as 1/2 for itself and 1/2 for your apps. Unless you add the /3Gb switch - details here.
Memory Support and Windows Operating Systems

Your old swap file may be confusing XP.

You presumably have a swap file, so you have exceeded 4Gb. The /3Gb switch may fix it, try that first. If that fails then remove the swap file by saying you don't want any virtual memory. Then after re-booting you can re-add a swap file if you wish, but you don't really need one.
 
Thanks a million stduc for the info... I'll try that out. In the meantime, I went to the ASUS website and they recommend that I run less that 3GB on this MB... they said even if I have the correct chipset on the MB, I'd need the new 64 Win O/S... that sucks for me. As a graphic designer, I was hoping I could get as much RAM as possible for those large .psd and video files. sigh. But thanks again for your input... I'm gonna check on the /3Gb switch.
 
Hey stduc,
I added the /3GB switch just like the link said to do but that didn't help.. I am running a dual boot machine, but both operating systems are running Win XP Pro SP/2... this is what my boot.ini file looks like now:

[boot loader]
timeout=5
default=multi(0)disk(0)rdisk(0)partition(1)\WINDOWS
[operating systems]
multi(0)disk(0)rdisk(0)partition(1)\WINDOWS="Windows XP Pro" /3GB /fastdetect /usepmtimer
multi(0)disk(0)rdisk(0)partition(2)\WINDOWS="Windows XP Pro Games" /3GB /fastdetect /NoExecute=OptIn

In my taskmanatger, the total physical memory still says "3145192".

How do I remove the swap file by saying I don't want virtual memory?

Thanks a ton for your help.
 
studc above gave the reasoning behind not disabling the paging file. In short, you will waste ram if you do so.
See:
As for your XP only shows 3gb issue, this is a Motherboard issue and not an XP one. See, for example:

A google on ""ASUS A8N-SLI Premium" and 3gb" will return many discussions of the issue.
 
bcastner is probably correct. However, it may just be worth the effort of double checking.

Let's take XP out of the equation for a moment.

Obtain & run memtest86 - if that shows 4GB then it isn't your mobo (unless someone knows better)

If it doesn't then search the mobo manufacturer's site and see if you can update your BIOS.

If memtest86 does show 4GB then it has to be XP - surely. Now, I didn't mean to suggest you remove virtual memory permanently, as bcastner correctly says - you need it or you waste RAM. But you don't need it to boot successfully to fix things. So remove virtual memory, re-boot and then re-add it.

To do this, go to My Computer properties, advanced tab, performance, advanced tab, and change virtual memory to 'no paging file' - reboot.
Now - defrag the drive you are going to put the paging file on - C probably
Then navigate to virtual memory and select custom size and make an educated guess - say 6GB? so set the size on drive C (say) to 6000 (both initial and maximum)

Re-boot and see if more than 3GB of physical memory is reported. If it isn't - then you have a mobo issue, I guess.
 
Okay,... I ran Memtest86 off a bootable CD, and it showed my system as having 4GB of RAM. It was actually 4086MB or something like that.

I then called ASUS, and the technician told me that my mobo can definitely read the 4GB or RAM... and that in fact so can Windows to some extent. According to him, the missing 1GB of RAM is still there and accounted for, it's just that it is being allocated for hardware and peripheral devices ( he mentioned like video cards ). He then told me that this is a good thing because it frees up the entire 3GB of RAM ( remaining ) for my software applications.

I am sort of confused. I guess this is a good thing, but I still wish my O/S could read and utilize the entire 4GB because I am not running many hardware items that would need a whole 1GB of RAM.

So as it stands, it looks like this is the way it is supposed to be.. so I'll leave it like that. (sigh)

Thanks to everyone for your suggestions and help. If you got anymore info for me on the issue, I am all ears! :)
 
Remember, you are using a 32-bit operating system. The maximum amount of virtual address space 32 bits give you access to is 4GB. The hardware, software, and OS kernel all require address reservations. All those reservations are "virtual" and do not necessarily take up any space in RAM or the swap file (not until it is committed).

Though it may sound like Greek to you, there's actually an easy way to understand it. Let's imagine for a moment that all the hardware in your system requires a maximum of 1GB in address space. At bootup, 1GB worth of [maroon]addresses[/maroon] is then reserved in case it is ever needed. At this point, only a small portion of that is actually pointing to a location in physical RAM or in the page file on the hard drive. This is especially true if you don't have that much of either available (i.e. like if you only had 256MB of RAM with a 384MB swap file).

Say you start with 1GB of RAM. The entire amount can be reported in Task Manager, because it's active and available to the OS. Same goes for 2GB, 2.5GB, all the way up to 3GB. As soon as you go over 3GB, the operating system has to limit the amount of available RAM that applications and the OS kernel can see, because up to 1GB could be requested by the hardware at any time in our example. That doesn't mean it's not being used. It just means that any byte of RAM over 3GB is reserved EXCLUSIVELY for the hardware. This makes sense, because in order for the OS to use more than 3GB, it would have to also map more than 3GB worth of virtual memory addresses. Because 1GB of the 4GB is already mapped at bootup, we know that's not possible.

Hopefully that gives you a sense of what you're seeing. If you look around on the net, you will see all sorts of similar issues with 4GB of RAM installed. The amounts in task manager vary. I've seen 3GB, 3.2GB, 3.56GB, etc. It all depends on the hardware you have in your PC and its requirements for address space. Motherboards with PCI-Express see the worst hits. I've read that it easily takes up to 512MB of addresses for all the different ports, and those boards with SLI capabilities take up even more. Factor in your video card, BIOS, and other hardware using DMA and you can see how quickly that 1GB or so can disappear.

There is a setting you can enable in Windows XP that helps give more address space beyond the 32-bit limitation. It's called the /PAE switch developed by Intel and you can read more about it here:

I'm not sure if that switch is limited to only Intel chipsets or not, but you should definitely make sure your motherboard supports it before turning it on. In addition, updating your BIOS can help too. The /3GB switch doesn't do anything for the issue you're seeing. It should only be used when you're positive that applications will benefit. It is not a smart move in general because it takes 1GB away from the kernel and hardware making it available to applications instead. That can impact network functionality, such as the number of connections the PC can handle, which is vital to a server. Unless you have software (like Adobe CS) that can make use of it, I'd would disable that switch.


Here are a few more links that might help:

[thumbsup2]

~cdogg
"Insanity: doing the same thing over and over again and expecting different results." - Albert Einstein
[tab][navy]For general rules and guidelines to get better answers, click here:[/navy] faq219-2884
 
My head hurts now.

So it seems to boil down to.

memtest86 will prove that the mobo supports 4GB.

Only use the /3GB switch if you have an app that will benefit (it certainly enables Panorama Factory to stitch bigger panoramas which is why I use it)

I still think refreshing the swap file is a good idea - and you certainly want to ensure it's the proper size and contiguous.
 
Yeah, sorry for the novel! I guess it wasn't as easy as I thought it was going to be to explain it...

Memtest is definitely a good tool, but not necessary here. beeej21 already reported that 4GB shows up in the BIOS. That's all you need to see in order to know that your motherboard supports it.

Setting the minimum and maximum for the swap file is not really necessary either. That's an old trick that worked well in older versions of Windows, when most of us only had a few GB of free space. On modern systems, there's so much space that it makes more sense to give it some breathing room. I generally set a range of 1 to 1.5 times the amount of RAM installed. When you set a range, it will start at the minimum size you set and only grow if more space is needed. You don't want to sell yourself short here, or at the same time waste a lot of space.

Windows XP does a pretty good job of keeping it contiguous on its own.

~cdogg
"Insanity: doing the same thing over and over again and expecting different results." - Albert Einstein
[tab][navy]For general rules and guidelines to get better answers, click here:[/navy] faq219-2884
 
Thanks cdogg and stduc!

Okay, so the fact is, I am a graphic designer that is constantly using large files in Photoshop CS2, InDesign, and Illustrator. Sometimes when working on large format print stuff at 3oodpi or higher, my .psd files become HUGE!!

So would you say that it is not only safe, but recommended that I use the /3GB switch?

In a previous post on this thread, I copied the boot.ini file after adding the /3GB switch.. it looked like this:

[boot loader]
timeout=5
default=multi(0)disk(0)rdisk(0)partition(1)\WINDOWS
[operating systems]
multi(0)disk(0)rdisk(0)partition(1)\WINDOWS="Windows XP Pro" /3GB /fastdetect /usepmtimer
multi(0)disk(0)rdisk(0)partition(2)\WINDOWS="Windows XP Pro Games" /3GB /fastdetect /NoExecute=OptIn


Reminder: I am running a dual boot system, but both partitions are running Win XP Pro. Yeah.. one partition is just for my games, hee hee. :)

Does that code look okay? Is that all I need to do in order to free up more RAM for applications like Photoshop?
 
Code looks fine to me. Though I put my /3GB switch at the end. I don't think it matters. However it does force XP to steal 1GB from itself to give to apps. In a nutshell you have 2 choices. Without it the maximum memory any one program can allocate is 2GB - with it, its 3GB. But (there's always a but) By stealing 1 GB from XP it will allocate smaller disk buffers, amongst other things. So your PC can actually slow down. You should only use the /3GB switch if programs are failing with an 'out of memory' error. Large files in themselves will benefit from XP using larger disk buffers.

BTW I suggested memtest86 as a means over verifying the BIOS.

Finally - in my experience XP is not so hot at handling its own swap file. I have found it pays to fix the size and create one after defragging the disk so it is contiguous. 1 - 1.5 time RAM is about right and today - who cares about wasting 4 - 6 GB of disk space?
 
Thanks again stduc,
That made sense... Since it looks like the benefits are greater right now NOT using the /3GB switch idea, ( like larger disk buffers ) I think I'l just leave things as they are. Hopefully having 3GB now for my applications will help improve my workflow.
 
Just my 2 cents...

In most cases trying to improve performance, it is best to develop some kind of benchmark for yourself.

Pick 2 or 3 typical test cases and time them both with the /3GB switch and without. See which performs best for you.

 
cdogg,

What a nicely done explanation(s) by you above.
My continued admiration.

Best,
Bill Castner
 
Bill,
Much appreciated, and it's great to see that you're back in full force on this site again!

beeej21,
Yes, I'd say if you're a heavy CS2 user, then it makes sense to have the 3GB switch enabled. Here is a document from Adobe that lists many ways to optimize performance in CS2, including information about the 3GB switch:

However, I'm not sure that enabling it on a partition that you only use for games will make a difference. Realize that in order for that switch to help a program of any kind, that program must use the /LARGEADDRESSAWARE flag in its process headers. Adobe CS2 does, but very few others out there do, and I'm not sure I've seen a game that does.

~cdogg
"Insanity: doing the same thing over and over again and expecting different results." - Albert Einstein
[tab][navy]For general rules and guidelines to get better answers, click here:[/navy] faq219-2884
 
Thanks cdogg, for the new advise. You guys are all awesome!

Okay,... so now I have another question. Will any of my other programs suffer because of the /3GB switch? Photoshop CS2 is definitely not the only program that I use. I use just every Macromedia product ( now Adobe as well ), a few video and DVD editing programs ( Premiere Pro, After Effects, Encore ), and sometimes a few 3D stuff ( Poser, Bryce, Swift 3D, 3D Studio Max). My system seems to be running fine ( and fast ) without the switch,.. but, hey, I am ALWAYS game for a little better performance. I've heard of aftermarket performance companies for Ferrari's and Lamborghini's... go figure.

I guess I won't add the switch to the games partition. All I play is Battlefield 2, and it runs fine so far without the switch.

Any thoughts about the other partition? And finally.. is adding that little code to the boot.ini file all I really need to do?
 
Status
Not open for further replies.

Part and Inventory Search

Sponsor

Back
Top