[ZBXNEXT-2225] system.swap.size[,pfree] broken on Windows Created: 2014 Mar 26  Updated: 2014 Apr 15  Resolved: 2014 Apr 10

Status: Closed
Project: ZABBIX FEATURE REQUESTS
Component/s: Agent (G)
Affects Version/s: None
Fix Version/s: 2.3.0

Type: New Feature Request Priority: Minor
Reporter: Oleg Ivanivskyi Assignee: Unassigned
Resolution: Fixed Votes: 0
Labels: swap, windows
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified
Environment:

Zabbix agent 2.0.6, Zabbix agent 2.2.2 x64.
Windows server 2008 R2 x64.


Issue Links:
Duplicate

 Description   

From debug log:
3672:20140326:150111.388 Requested [system.swap.size[,pfree]]
3672:20140326:150111.388 Sending back [ZBX_NOTSUPPORTED]

At the same time, system.swap.size[,free] works.



 Comments   
Comment by Alexander Vladishev [ 2014 Mar 26 ]

It's already documented. Zabbix does not support system.swap.size[pfree/pused] under Windows. Moved to ZBXNEXT.

Comment by Juris Miščenko (Inactive) [ 2014 Mar 31 ]

Implemented in svn://svn.zabbix.com/branches/dev/ZBXNEXT-2225

Comment by Andris Zeila [ 2014 Apr 07 ]

Successfully tested

Comment by Juris Miščenko (Inactive) [ 2014 Apr 07 ]

Implemented in 2.3.0 (trunk) r44094

Comment by Aleksandrs Saveljevs [ 2014 Apr 08 ]

(1) The ChangeLog entry should probably mention Windows. Otherwise, it implies that the change applies to all platforms. The entry should also not include "P" and "S" components, because the change is agent-only.

jurism Will change upon remerging into upstream.

Comment by Aleksandrs Saveljevs [ 2014 Apr 08 ]

(2) The change introduces bad formatting into variable declaration.

jurism
Corrected. RESOLVED.

asaveljevs CLOSED.

Comment by Aleksandrs Saveljevs [ 2014 Apr 08 ]

(3) In "pfree" calculation, it divides integer by integer, yielding either 0 or 100.

jurism
Added typecasts to correct this. RESOLVED.

asaveljevs Good, but please see r44395 before merging. CLOSED.

Comment by Aleksandrs Saveljevs [ 2014 Apr 08 ]

(4) It might be useful to clarify in swap.c comments what exactly the problems with Windows functions are.

For instance, the second paragraph talks about "free memory size". Which API functions does it refer to? The functions we use (see documentation below) do not use the term "free". They talk about paging file, physical memory, and virtual memory.

The comment also talks about "special circumstances" and says "depending on the system and the environment". What are those circumstances and dependencies?

jurism
Commentary expanded. RESOLVED.

asaveljevs Andris Z. helped to improve the comment in r44422 (e.g., by clarifying that negative values do not come from Windows API functions, but arise as results of calculations). CLOSED.

Comment by Aleksandrs Saveljevs [ 2014 Apr 08 ]

(5) According to the documentation on MEMORYSTATUSEX (see http://msdn.microsoft.com/en-us/library/windows/desktop/aa366770(v=vs.85).aspx), field "ullAvailPageFile" refers to the limit for the current process and suggests the use of GetPerformanceInfo() to get the system-wide limit. Why did we decide to use the process limit instead?

wiper GetPerformanceInfo() is not available on Win2K, plus it returned 0 total physical memory on my virtual machine.

asaveljevs CLOSED.

Comment by Juris Miščenko (Inactive) [ 2014 Apr 15 ]

Implemented in 2.3.0 (trunk) r44444

Generated at Sun Apr 19 14:27:25 EEST 2026 using Jira 10.3.18#10030018-sha1:5642e4ad348b6c2a83ebdba689d04763a2393cab.