Open Aleksey-Maksimov opened 4 months ago
Almost all the time, the plugin correctly shows % values, which are similar to what we see in Windows Task Manager. But sometimes something strange happens to the plugin and it shows an unrealistically high % value.
Hello,
thank you for your issue. This is actually not a bug, but a feature which was introduced with Windows 8 and beyond.
The performance counter we use since the latest version of Icinga for Windows, are using the same information as the task manager. How ever, while the task manager simply caps the CPU usage to 100%, the Icinga for Windows plugins print the correct usage.
There is a detailed docs entry available from Microsoft
The short version: Systems that use Intel Turbo Boost or AMD PBO (Precision Boost Overdrive), will report the current usage different, depending if they are in the boost window and use the boost clock for completing tasks, or if they are working with the base clock.
The article you mentioned https://learn.microsoft.com/en-us/troubleshoot/windows-client/performance/cpu-usage-exceeds-100 says that Task Manager can show more than 100%. But we've never seen more than 100% in Task Manager. In general, our virtualization hosts are not very heavily loaded and Task Manager never provides data on high load. But the plugin shows us some completely unrealistic numbers of 1600%, 1900% (screenshot above). With such mathematics, the values that we indicate in the Critical and Warning thresholds completely lose their meaning.
I think that in the plugin it is more correct to use the \Processor Information(*)\% Processor Time
counter instead of \Processor Information(*)\% Processor Utility
. In this case, at peak loads we will see a clear figure of 100%.
There was a discussion of a similar issue in microsoft/Windows-Dev-Performance: https://github.com/microsoft/Windows-Dev-Performance/issues/78
Thank you for the feedback. The % Processor Time
counter was replaced a while ago, as the Task Manager is using different performance metrics and users complained, that the load reported by Icinga for Windows did not match the Task Manager numbers.
We are currently investigating the reported numbers, but as of now it seems the performance counter library of Windows is reporting odd values. While a usage beyond 100% can happen, a 400% load or even higher is not possible.
Are you running these Windows machines as virtual machines on ESXi by any chance?
This issue is observed on both virtual servers and Hyper-V virtualization hosts with Windows Server 2022.
Hello.
Sometimes Invoke-IcingaCheckCPU shows strange load % data greater than 100%
This behavior has been observed on different systems - on virtual servers with a small number of cores and on physical servers with two sockets and a large number of cores