Take the 2-minute tour ×
Server Fault is a question and answer site for professional system and network administrators. It's 100% free, no registration required.

Our server is always very low on available memory. And yet the top processes only take up a portion of what should be available on our server (with 10 GB of memory).

I ran tasklist to get a listing of all of the processes and added up the total amount of memory they were using. The total memory usage was 6GB, with around 1GB of memory "available".

Unless I'm missing something, that means a shortfall of around 3GB (10GB total memory - 6 GB used - 1 GB "available").

I'm wondering what could be going on. Every so often "Free" memory goes down to 0, at which point we experience slowdowns.

share|improve this question
    
what type of processes/apps are running on the server? –  TheCleaner May 16 '13 at 21:21
    
There's all kinds of memory that is not charged to a particular task but that is also not included in available memory. This includes modified pages not written back, kernel non-paged memory usage, kernel code, NTFS metadata caches, session private data, and so on. You can get detailed information with rammap. –  David Schwartz May 16 '13 at 21:43

1 Answer 1

up vote 6 down vote accepted

Memory management is already a complex topic, and unfortunately, Microsoft has altered its exact definitions and terms regarding different types of memory with pretty much every single release of Windows. So trust me, you aren't the only one confused by it.

When you use tasklist, tasklist shows you the Working Set that is assigned to each process. A working set is the recently-touched physical pages of RAM assigned to a process, and that does not account for all the total virtual memory that a process may be using (in a sense, processes only use virtual memory, as physical memory is abstracted into a larger pool of virtual memory and combined with other sources of virtual memory such as the page file.) Nor does it account for file caching, etc.

You should never have much "Free" memory on your system. That is wasted RAM that is literally doing nothing. When there are no processes that need any more memory, Windows uses the free memory to cache files, until the Free memory is back down to zero or close to zero.

But that cache can be very quickly reallocated to a process, at which point it would become part of that processes Virtual Bytes and subtracted from available memory.

As for your slowdowns, you could be experiencing a lot of things. When Windows gets low on available memory, it starts eating away (or trimming) processes working sets, which can lead to noticeable slowdowns.

Use the descriptions found in Performance Monitor to get the most accurate descriptions when you're talking about these types of memory. (As opposed to Task Manager, which has some conflicting/confusing terminology for some of the terms.)

Lastly, I highly recommend that you watch this two-part video series: http://channel9.msdn.com/Events/TechEd/NorthAmerica/2011/WCL405

share|improve this answer
2  
It is a very common mistake to see low free memory and poor performance and assume a connection. High free memory usually rules out memory as a source of the problem. Low free memory doesn't tell you anything as that's pretty much every modern operating system's normal state. –  David Schwartz May 16 '13 at 21:45

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.