The available memory is (roughly) how much physical memory you have left. It is a snap shot in Task Manager. The system cache represents the amount of memory that the OS is maintaining for caching primarily I/O operations – e.g. Network and Disk traffic. They do not add up and are not supposed to. The rest of memory is being used by user mode processes and kernal mode operations. Each user mode process has a kernal mode component. The OS is constantly adjusting the values based on demand.
The Kernal maintains some memory for itself. It is typical for the larger portiong of the kernal memory to be swappable (pageable). The non-pageable memory is intentional small. As a side note, this can be adjusted to keep more of the kernal in memory to improve OS performance in special cases.
When you are looking at the available memory, you will want to look at that with the system cache. The system cache is potentially usable memory. The OS will automatically trim the system cache to feed processes. The critical point for available memory is 4 MB – anything less and the system will begin to page wildly, a condition known as thrashing.
There are a couple of ways to determine how much memory you can use. You could assign approximately half of the file system cache to Oracle. This will take some of the system cache, but the OS will also end up trimming the memory from the other processes to maintain a balance. Keep in mind that the available memory has a minimum of 4 MB before critical problems occur. Trimming the working sets (memory assigned to the processes) has the affect of more of the processes memory being put out to disk (paged). Thus, you can end up slowing down the other processes. Of course, if Oracle is the major application on the system you won’t be too concerned about this. You will want to watch the pageing (page Faults) and the available memory. In the Task Manager, you can click the VIEW menu drop down and then click on other statistical columns to view. You would include:
Peak Mem Usage
Virtual Memory Size
Page Fault Delta
Take a look at this and get a feel for how your systems and the processes are working and utilizing resources. Then, change the Oracle memory allocation. Let the system run for a bit (30 minutes or so). Review the settings again. You will see some applications running leaner. On average you will see more paging. Large deltas will represent processes begining to suffer due to memory starvation.
More detailed analysis can be achieved by using Performance Monitor to collect the counters for memory and processes on a system. You can collect these into a comma delimited file and due quantitative analysis.