# Resource Monitor reading



## brokenhead (Oct 11, 2006)

Hi all

I was wondering if anyone could shed some light something I am seeing in Resource Monitor on a Win 2K8 x64 server on which my customer is running an application I support.

Please see the attached screen capture.

To my understanding, every process is allotted 2 GB on memory, virtual and physical combined, in NT. The memory can be free, reserved, or committed. How is it I am seeing a value for committed memory in excess of 2 GB? This value has been as high as 30 GB, according to my client. The page file (one) on this server is only 12 GB.

What is this figure of 10 GB telling me? It is a tiny polling service. Maybe relevant is that I have a scheduled task restart this service once a day during off hours just to be sure it doesn't miss more than a day at a time.

I have researched this on the web and feel as if I am learning a lot about everything else besides what I need, which is an answer to how this figure could be so huge? It cannot be an instantaneous reading of any sort. It just seems to keep growing.


----------



## Elvandil (Aug 1, 2003)

Maybe. But I'm not responding to text that large. Bye.


----------



## Rockn (Jul 29, 2001)

That font is obnoxious isn't it. Anyway, I am sure there is some disk caching going which does show up as memory. It looks like your memory and network are being hammered by this particular app. What sort of network infrastructure do you have.?


----------



## valis (Sep 24, 2004)

edited font size down.


----------



## brokenhead (Oct 11, 2006)

Before you guys act all huffy over the font size - I was having trouble reading my own post and changed the font size. When I previewed it, it was the same small size, same after I submitted. I didn't know it would show up large to others since it didn't to me.

Thanks for all the useful responses, though.


----------



## brokenhead (Oct 11, 2006)

Now if someone would kindly take my question seriously I would greatly appreciate it. What I need is a better idea of what the Resource Monitor is measuring under the "committed" heading. Again, as I understand it, NT allows each running process 2 GB of memory addresses. Each process has the same range of address numbers - the memory manager keeps the processes distinct. A single process will not ever require all 2 GB worth of addresses, since the system might have 100 processes running at once - this would require 200 GB of memory (physical and virtual) at once, which few systems at present have.

Obviously there is something different going on with "my application." Anyone who has seen this behavior before, please feel free to think out loud.


----------



## Rockn (Jul 29, 2001)

I think your question was answered. Committed is exactly what it says it is. The system is allocating 10GB or memory, physical and virtual to running that application. It is dynamic so it will change as needed and other processes end and others start. There are probably better tools that can be used than the resource monitor to evaluate an apps performance.


----------



## brokenhead (Oct 11, 2006)

But I don't agree it was answered for the reasons I have given.

The "committed" column is reading 10 GB in the screen shot. As I mentioned, he claims this value has been more than 30 GB at other times. In a system that has less than 15 GB memory TOTAL - virtual plus RAM - how can 30 GB be committed to a single process, one out of 100 concurrently running?

I am aware I may be misunderstanding what is meant by "committed." Per what I read on the web - NT allots 2 GB to each process, which can be broken down into 3 kinds: free, reserved, and committed. Therefore, what is committed to any one process must be less than this 2 GB. If so, what is the 10 GB in the "committed" column? Is this a running total in the following sense: x amount is "committed" at a certain time t1. "Committed" means a certain address range (and the address ranges are identical for all processes because they are not physical address ranges as such,) It has to total less than 2GB at any one time. If at time t2 y is committed (consisting of different address ranges than at time t1), then the column reads x + y. After a certain number of times (...tn), a total of x + y + z +...n) gets listed in that column and can exceed 2 GB.

Is this what is going on?



> It is dynamic so it will change as needed


But "dynamic" in the sense that it can only increase over time, not decrease, if my above speculation is correct. If it could decrease, then it could never exceed 2 GB, since it cannot exceed 2 GB at any given time. Therefore, "committed" must be a running total, not an instantaneous measure at any time except maybe right after the system is restarted.

This is what I need to know so I can tell my customer not to worry about my application. I am asking because as it shows in the screen shot, no other process exceeds 2 GB, which one would expect if RM measured quantities in a truly dynamic way - that is, the value can go down as well as up.

The reason I am asking here is that I can research it on the web a million times, but there are only a few places where I can ask experts questions, TF being one of them.

If there are better utilities than Resource Monitor - and I do not doubt this - could someone pease recommend one?


----------



## Rockn (Jul 29, 2001)

I am assuming that this is a 64bit OS if you are running 15GB of memory. Read up on Windows memory management:

http://msdn.microsoft.com/en-us/library/windows/desktop/aa366525


----------

