[comment]: # ({4acc02f5-c330b6f6})

# 20 Notes on system.cpu.util items on Windows

[comment]: # ({/4acc02f5-c330b6f6})

[comment]: # ({ecbdf139-6caaec39})

[system.cpu.util](/manual/config/items/itemtypes/zabbix_agent#system.cpu.util) item provides the CPU utilization percentage.

When a collector process is started on Zabbix agent for Windows, a buffer for N items for N logical processors (threads)
is initialized. Values are periodically updated in the buffer using Windows performance counters. These values are
reported when `system.cpu.util[n]` is requested, where 0 <= n < N.

One more item in the buffer is used for `system.cpu.util[total]`.

Zabbix automatically selects different performance counters to support both NUMA systems and older Windows versions with
no processor group support.

If logical processor (thread) count is less or equal than 64 and number of processor groups is equal to 1, then:

```bash
N is logical processor (thread) count.

\Processor(_Total)\% Processor Time
\Processor(0)\% Processor Time
\Processor(1)\% Processor Time
\Processor(2)\% Processor Time
...
\Processor(N-1)\% Processor Time
```

Else:

```bash
G is processor group count and N is logical processor (thread) count in group.

\Processor Information(_Total)\% Processor Time
\Processor Information(0,0)\% Processor Time
\Processor Information(0,1)\% Processor Time
\Processor Information(0,2)\% Processor Time
...
\Processor Information(0,N-1)\% Processor Time
...
\Processor Information(G-1,0)\% Processor Time
\Processor Information(G-1,1)\% Processor Time
\Processor Information(G-1,2)\% Processor Time
...
\Processor Information(G-1,N-1)\% Processor Time
```

[comment]: # ({/ecbdf139-6caaec39})
