I need to watch the CPU usage on a multi-threaded process on Windows servers. To do this, I have created an item with the below configuration. The VirtualDub process in this case is just an example.
perf_counter[\Process(VirtualDub)\% Processor Time]
When the process uses CPU from multiple CPU cores, the performance counter goes over 100%, and this is accurately reflected in the Windows performance console. For example, a process that pins 2 CPU cores should display 200% usage. However, the Zabbix agent only ever reports up to 100% usage, which is NOT right.
As we know perf_counter key can support 2nd key parameter and it affects how agent processes calculation internally. And this fact does a difference.
Up to agent version 1.8.5 (including) if we request "perf_counter[\Process(VirtualDub)\% Processor Time,10]" this key returns correct data (more than 100)
In the same case "perf_counter[\Process(VirtualDub)\% Processor Time]" returns 100 as maximum, i.e. still incorrectly.
In latest agent versions (after 1.8.5) any key returns 100 as maximum.
Confirmed for WinXP and Win7 and for agents versions 1.8.16 and 2.0.6
On a screenshot I'm attaching hills for one of items related to agent versions 1.8.2-5
This difference supposedly introduced in
ZBX-3547 for agent version 1.8.6