Help me understand pagefile usage

Joined
Dec 24, 2004
Messages
588
If this has been answered before, sorry, I did do a search on "pagefile" and came back with enough hits to spend months digging though them.

Sitting at work now with Task Manager open. This machine has 1.5GB of physical RAM in it. Looking at the Performance tab in Task Manager, it shows 774MB of Physical Memory available. But for some reason I'm still 743MB into my pagefile.

Same thing happening at home. Have a new machine running nothing more than two console threads of F@H (X2 chip). Machine has 2GB of physical RAM, shows nearly a gig available, but I'm still around 500MB into the pagefile.

Is Task Manager known to be wrong on reporting pagefile usage, or is Windows XP just very inefficient at handling memory? Maybe Windows keeps some physical RAM available if it needs it? I'd add up all the Processes memory usage to see what the true total being used is, but by the time I finished it wouldn't be accurate anyways.
 
Thanks. Going to have to take some time to digest all that.

How did you find it without involving a search?
 
Uhhh, the sticky's title is "How to size your pagefile". The answer to that, I got from Microsoft. Sorry if I didn't read it anyways.

I was asking what was using the pagefile even though there is free physical RAM left.

Think I got the answer from that sticky though...but I sure ain't gonna say what I came up with, since another locked thread isn't what I was shooting for.
 
Phoenix86 said:
What is your commit charge peak in task manager on these machines?

Going to go look now...brb...will edit this post.

(edit)

Commit Change
Total = 476532
Limit = 6117156
Peak = 869668

Physical memory
Total = 2096352
Average = 1510508
System Cache = 1023140
 
It's the system cache, which also stroed the PF.

Commit charge peak is what you are using in programs/services.

Commit charge+system cache=1.9GB.

edit: in short, don't worry about it. :D

edit2: Why? Because RAM>commit charge peak.
 
Phoenix86 said:
It's the system cache, which also stroed the PF.

Commit charge peak is what you are using in programs/services.

Commit charge+system cache=1.9GB.

edit: in short, don't worry about it. :D

edit2: Why? Because RAM>commit charge peak.

Excellent (now why can't everyone answer questions as clear and precise as that?).

So my plan on using a software-emulated RAMDisk for the pagefile at 512MB wouldn't be a good one, since if I threw something else on for the machine to do I'd run dry quickly.

I know it's not a good idea to span a pagefile over multible drives, which is what it appears I'd be doing if I created a 512MB software PF and put another 512MB on a HD, but (without having read the ENTIRE "How to size you pagefile" thread), is there a way to tell Windows to use the RAM PF until it runs dry, THEN use the HD portion? I realize if there isn't, and Windows treated it as a spanned PF I'd be losing any benefit of the RAM PF (in fact probably confusing the hell out of Windows).
 
HTPC Rookie said:
Excellent (now why can't everyone answer questions as clear and precise as that?).

So my plan on using a software-emulated RAMDisk for the pagefile at 512MB wouldn't be a good one, since if I threw something else on for the machine to do I'd run dry quickly.

I know it's not a good idea to span a pagefile over multible drives, which is what it appears I'd be doing if I created a 512MB software PF and put another 512MB on a HD, but (without having read the ENTIRE "How to size you pagefile" thread), is there a way to tell Windows to use the RAM PF until it runs dry, THEN use the HD portion? I realize if there isn't, and Windows treated it as a spanned PF I'd be losing any benefit of the RAM PF (in fact probably confusing the hell out of Windows).
Paging, and VMM are not easy to understand. It's taken me some time, and I'm sure I'm leaving out something. :D

*Basically* the PF is a supplement for RAM and storage of system cache. What isn't stored in RAM, goes to the PF, except system cache which is stored in both places. So if you want everything to stay in RAM, just disabled the PF. However, that will likely slow the PC down a bit since you are disabling the space for system cache. Also, this is why disabling the PF doesn't help with bechmarks. Since the PC isn't using the PF (except for system cache which won't help a app once it's loaded) disabling it doesn't really affect the end result.

Creating a RAMdisk just make you page from RAM to RAM, totally pointless, and it adds the overhead of the software RAMdisk.

As far as what is paged where/when/why, the OS does a good job. If you have available RAM the system will use it. What's being used in your PF is just system cache, and even though you are using hundreds of MBs of PF space, it's not used that much at all.

You can setup perfmon to monitor your memory counters and watch this, but I'll give you the quick and dirty. On a system with enough RAM to supply commit charge peak, the PF will only be read from at a VERY slight rate. Once the PF is filled with system cache it's read from very little, and never really written to since you have "enough" RAM.

End result, your PC *IS* using all your RAM.
 
Didn't even consider that, paging RAM to RAM. Guess that would be an excersize in futility!

I think I'm just going to let things be the way they are, PF-wise. I'm regretting having bought 4 half-gig sticks, when 4 full gig sticks wouldn't have been that much more $$$. Then for sure I wouldn't worry about running out of actual RAM, even with it folding and running my 3D stuff. Maybe in the near future...

Thanks for the excellent info.
 
HTPC Rookie said:
Didn't even consider that, paging RAM to RAM. Guess that would be an excersize in futility!

I think I'm just going to let things be the way they are, PF-wise. I'm regretting having bought 4 half-gig sticks, when 4 full gig sticks wouldn't have been that much more $$$. Then for sure I wouldn't worry about running out of actual RAM, even with it folding and running my 3D stuff. Maybe in the near future...

Thanks for the excellent info.
And that would probably be a mistake. ;) Since most things won't use that memory, and the address space of about half a gig of the ram would be wasted unless you ran the PAE kernel, and your mobo bios supported it,

Ramdisks are also bad since they suck up Address Space, (Quite a bit of it) that your perf may go down.
 
Ranma_Sao said:
And that would probably be a mistake. ;) Since most things won't use that memory, and the address space of about half a gig of the ram would be wasted unless you ran the PAE kernel, and your mobo bios supported it,

Ramdisks are also bad since they suck up Address Space, (Quite a bit of it) that your perf may go down.

[[edit] I read your post wrong about the mount of memory wasted.] Between Bryce 3D and two folding threads with no memory limits, I could fill 4GB. But, the motherboard I have A8V Deluxe, even the manual says the Via chipset {paraphrase} 'may have an issue recognizing the full 4GB'. But to keep the dual-channels open I'd fill all 4 slots with 1 gig sticks anyways.

Not sure what you mean by address space and the PAE kernel. (noob time) what's a PAE kernel?

Agree on the ramdisks, esp. since Phoenix bumped my brain into working mode on them.
 
HTPC Rookie said:
[[edit] I read your post wrong about the mount of memory wasted.] Between Bryce 3D and two folding threads with no memory limits, I could fill 4GB. But, the motherboard I have A8V Deluxe, even the manual says the Via chipset {paraphrase} 'may have an issue recognizing the full 4GB'. But to keep the dual-channels open I'd fill all 4 slots with 1 gig sticks anyways.

Not sure what you mean by address space and the PAE kernel. (noob time) what's a PAE kernel?

Agree on the ramdisks, esp. since Phoenix bumped my brain into working mode on them.
Note: This is only for Windows on 32 Bit platforms

Physical Adress Extensions Kernel. Normally you get a 2GB/2GB barrier. 2GB to Kernel, 2GB to user. Now, all those DMA devices, Graphic Cards, HDD controllers, etc, need to be mapped onto memory. That happens at the the 4GB limit down. So the Bios can't assign addresses to 2 different things at the same address. (Physical Ram, and your device) so it pushes the memory above 4GB, or throws it away, depending on the chipset. The PAE kernel knows to look there for the extra memory, and then programs can use the extra memory, if they are coded to use it. (Which I've never seen a non server application coded to use it.)

On my motherboard, if I have all 4GB plugged in, it wont boot. Says the graphics cards is bad. ;)
 
This is also why a 64 bit OS with 64bit apps is a Good Thing. An immensely much bigger address space without any tricks like PAE.
 
HHunt said:
without any tricks like PAE.
...which doesn't always work.

Yet another reason 64bit is needed. People think 4GB limit, bah I can't use that. But when the OS cuts that in 1/2, well 2GB is feasable to use up, pretty quick too. Some games are using over 1GB now...

*hurry up your 64bit drivers you POS slow-ass companies*
 
Back
Top