Originally posted by: goku2100
Yes but like I said, I dont understand why windows need more and more ram as I increase the amount of ram I have. It seems like its going by a multiple. Also this is a problem because I noticed that when programs start eating away at the ram and there is not more left, the system cache still stays the same. I do I limit windows from continuously eating more ram as I put it more. 65MB is fine and is what I had before when I had little ram and windows ran perfectly fine. Seems to me windows just feels like "filling up the space".
It doesn't *need* more RAM... it is using the RAM you have available more efficiently.
You seem to have a misconception about the way the system cache manager works in Windows, and how its size is reported in Task Manager.
There are effectively TWO components that comprise the "System Cache" size that task manager is reporting to you: Standby memory and Mapped file memory.
Standby memory represents memory that happens to have valid file cache data, but that data has already been written back to disk and therefore the memory can be reclaimed instantly by the memory manager and used for any purpose whatsoever (including handing it to apps). My system, for which Task Manager reports as having 420 megabytes of "System Cache", currently has 256 megabytes of memory in the "standby" state. I.e., more than half. You can see this in the kernel debugger, if you so dare.
Mapped file memory, on the other hand, is memory that the System process (in the context of its cache manager thread) has set aside (and can relinquish as conditions suggest) to perform behind-the-scenes file-level caching of any file opened by any process on the system. Files are mapped into the System process and paged in on demand as requested by the NT I/O subsystem (NtReadFile, NtWriteFile, etc). So even if you have no clue what mapped file I/O is or why it's beneficial, the system happens to do it for you behind the scenes for the purposes of caching. According to the kernel debugger, my system is currently using 182 megabytes for this purpose, and it has it completely filled with useful stuff like keeping ntoskernel.exe in memory, plus the code of several device drivers, several opened data files, as well as portions of the system registry (all of which are accessed more than you probably think).
So you're probably asking all this because you want to keep as much memory free for your apps to fill up as possible. Well, as I just pointed out, "Standby Memory" which makes up a sizable chunk of the System Cache *is* readily available to your apps. The rest of the System Cache (mapped file data) is ALSO available to your apps, but it must first be paged out to disk before it can be used.
If your apps start using more physical memory than is available on your system, the Cache Manager recognizes this situation and scales back the size of the Memory Mapped cache accordingly. The cache manager doesn't have to scale back the size of the Standby List at all becaue the memory manager handles that as appropriate (treats it as free memory).
You can view all of this in Perfmon if you play with it for a while. The Win2k resource kit came with an app called "Leakyapp.exe" that was very useful for demonstrating how apps that take up lots of virtual memory can cause your system to start paging stuff to disk, and how the cache manager responds, and how the paging file can grow, etc.