Sunday, January 20, 2013 4:59 PMHello
I am running a server with Windows 2008 Server SP2. The application is working ok, but I'm slightly worried that we're running out of memory.
The server has 4GB RAM. The application installed is a 32bit application, however it has 3 main processes.
I went to Perfmon, and looked at the following counters:
Available Mbyes: Average is 300MB
% Commited Bytes in Use: Average is 22%
Pages/ Sec: Average is 5
Commited Bytes: Average is 2.5 GB
Pages Output/Sec: 0
I've been reading a couple of articles on the Net, and a lot seem to contradict each other!
om/en-gb/m agazine/ 20 08.08.puls e.aspx
.com/tag/p erfmon-tro ubleshooti ng/
The later says that if Available Mbytes is less than 20-25% of installed RAM, then we have an issue, but the first one says 5%.
Likewise, for Pages/Sec, the latter says anything higher than 5 is a problem. The second says 1000! Whereas for Pages/ Sec, this article says 40
/askperf/a rchive/200 8/01/25/an - overview- of-trouble shooting-m emory-issu es.aspx
Could someone confirm?
Basically, I need a reliable counter that will tell me:
i. How much Physical memory I have left
ii. How much memory applications get from RAM as opposed to paging?
Any help appreciated!!!
Monday, January 21, 2013 8:50 AMHiya,
at the top of my head I can't give you a straight answer to your question, however I can address why the answers are so different. When your dealing with physical memory and paged memory, it really depends on how the application works.
Paging is done if the memory is not accessed within a time period (O/S maintenance) or insufficient physical memory is available. So in other words, paging alone is not a factor on how much or how little memory you have. Pages/sec is also not a factor, as it can be done due to performance or maintenance.
Secondly the amount of memory an application will consume is different, dependent on how its written. MS SQL as an example, will take everything and not release it can grab up to what is defined in Maximum memory settings. Meaning that it will actually hamper the O/S if the workload is sufficient. This is by design in order to queries to return faster. Data results stored in memory, will be fetched faster than data on disk. Other applications have employed "waste management" which will get rid of application code that is no longer needed, as appropriate. While others again will rely on O/S maintenance.
I think its better to understand the concept of memory than just to go by performance counters. The below article is the best one on the matter I've found so far.
RAM, Virtual Memory, PageFile and all that stuff
- Marked As Answer by Cheers ZHANGMicrosoft Contingent Staff, Moderator Monday, January 28, 2013 4:30 AM