Hi,
I'll show an example server. The agent responds with the following on a server that has 8 GB of physical memory:
<<<mem>>>
MemTotal: 8388148 kB
MemFree: 6048328 kB
SwapTotal: 1310720 kB
SwapFree: 795080 kB
PageTotal: 9698868 kB
PageFree: 6843408 kB
VirtualTotal: 2097024 kB
VirtualFree: 2080424 kB
The report says, leading one to believe that there's really a 9,2 GB pagefile on the server.
OK - Memory usage: 28.1% (2.2/8.0 GB), Page file usage: 29.6% (2.7/9.2 GB)
However, in this case this is what's seen on the drive, a 1,2 GB pagefile:
12.12.2013 16:56 1 342 177 280 pagefile.sys
So what actually occurs is that that 9,2 GB is the available combined memory (physical + pagefile).
So the term "Page file usage" is definitely not correct - for that to be accurate, the test should use Swaptotal and SwapFree. And like I said, this leads to error situation if we for example have memory limits set to 80% W and 90% C, but pagefile limits to 50% W and 60% C - if we have small pagefile (or none at all), the true triggers for alert are actually the supposed pagefile limits.
I hope this clarifies what I meant.
Thanks.
···
--
- Dr. Antti Mäkelä | Senior Architect | CCIE #20962 -
- Phone: +358 9 88611538 -
- Vintor Oy, Itsehallintokuja 6, 02600 Espoo | www.vintor.fi -
-----Original Message-----
From: Mathias Kettner [mailto:feedback@mathias-kettner.de]
Sent: 9. tammikuuta 2014 12:35
To: Mäkelä, Antti; checkmk-en@lists.mathias-kettner.de
Subject: Re: [Check_mk (english)] Windows pagefile check does not actually report pagefile usage
Hi Antti,
to be honest, I'm confused. We already hat long Email discussions with various people and everybody seems to have a different understanding of what's going on in Windows memory management.
In fact here is the code of the Windows agent:
output(out, "MemTotal: %11d kB\n", statex.ullTotalPhys / 1024);
output(out, "MemFree: %11d kB\n", statex.ullAvailPhys / 1024);
output(out, "SwapTotal: %11d kB\n", (statex.ullTotalPageFile -
statex.ullTotalPhys) / 1024);
output(out, "SwapFree: %11d kB\n", (statex.ullAvailPageFile -
statex.ullAvailPhys) / 1024);
output(out, "PageTotal: %11d kB\n", statex.ullTotalPageFile / 1024);
output(out, "PageFree: %11d kB\n", statex.ullAvailPageFile / 1024);
output(out, "VirtualTotal: %11d kB\n", statex.ullTotalVirtual / 1024);
output(out, "VirtualFree: %11d kB\n", statex.ullAvailVirtual / 1024);
The check just uses MemTotal/Free and PageTotal/Free. *No* computation is done. There was one in some ancient Check_MK version and that turned out to be bad.
Mathias
Am 27.08.2013 15:58, schrieb Mäkelä, Antti:
Hi,
We have noticed something when monitoring our Windows servers. The "Memory and pagefile" check (mem.win) does not actually show how much of pagefile is in use. In "pagefile", it actually shows committed memory and total memory, counting both real and virtual memory (RAM + pagefile). Is this intentional?
We were wondering why some of our servers started alerting even when pagefile wasn't really in use. The reason was that we had limited the pagefiles' size, and with a tiny pagefile, the committed memory started is almost equal to the amount of RAM. And when the default alert level is 50% then this kind of created false alarms..
Is this by design, or is this a bug? It would be much better if the agent would actually measure *pagefile* usage, meaning substracting physical memory from committed memory.
Thanks.
--
Mathias Kettner
---
Mathias Kettner GmbH
Kellerstraße 29, 81667 München, Germany
Registergericht: Amtsgericht München, HRB 165902
Geschäftsführer: Mathias Kettner
http://mathias-kettner.de
Tel. +49 89 1890 435-0
Fax. +49 89 1890 435-29