High Memory Usage on a server when nothing is running
Posted by - NA -, Last modified by Kevin Stange on 03 November 2010 04:32 PM
The common philosophy with respect to system memory is that unused memory is wasted. Most operating systems, including both Windows and Linux maintain what's called a memory "cache." Technically this memory space is in use, however it is designed to be freed immediately if applications actually need the memory.
In the meantime, if a program that is running accesses data from a slow I/O device such as a disk, the data is stored in this cache space so that if it needs to be accessed again in the near future, the operating system can skip reading the disk and just deliver data directly from the cache. Since RAM is much faster than the hard drives, this produces better performance for the program and gives the RAM something to do when it's not needed for other purposes.
If you are using Windows, you can see the amount of memory being used for cache in the Task Manager, on the Performance Tab. The Physical Memory section lists your total installed RAM, as well as how much is "Available" and how much is used for the "System Cache." Both of these numbers, summed together will equal the amount of RAM that can reasonably be used for running programs.
In Linux, running the command "free -m" will show you two rows of data about your RAM. The first shows the information as if your cache and buffer space are used memory. The second row shows the adjusted totals if you consider those values as free.
There is an excellent and reasonably non-technical explanation of how this works on a Linux system at the Gentoo Linux forums.