Commits
Andris Mednis authored 989ed6cee72
...G...... [ZBX-6576] fixed heavy CPU usage when collecting CPU stats on Solaris Before: Every second CPU statistics update was creating a new kstat chain copy, searching each CPU core statistics in the kstat linked list and reading the data. This was causing a noticeable CPU load on systems with many CPUs (e.g. 32 and more). After: The kstat chain copy is created once and pointers for fast access to each CPU core statistics in the kstat linked list are cached. Every second CPU statistics update checks the kstat chain ID. If the chain is up-to-date, access is done using the cached pointers. If the chain is out-of-date, it is updated and the pointers to CPU statistics are refreshed. This makes CPU load lower than before. Code was added to deal with dynamic removal and adding of CPUs. If a new CPUs are added then Zabbix agent needs to be restarted in order to collect data on new CPUs.