Linux 3.10.0-229.14.1.el7.x86_64 #1 SMP Tue Sep 15 03:49:05 PDT 2015 x86_64 x86_64 x86_64 GNU/Linux
I cannot re-open
ZBX-10710 so I post in a new ticket.
Zabbix agent incorrectly interprets man(5) of /proc/stat:
user includes guest time
nice includes guest_nice time
It is done for compatibilty with legacy software which reads all but 'guest' fields.
You can verify that in kernel sources kernel/sched/cputime.c:account_guest_time or, for example, in mpstat (from sysstat package) pr_stats.c: print_cpu_stats.
Due to this 'double' accounting zabbix agent may report almost twice as low values in system.cpu.util[,XXX,] for virtualization hosts where 'guest time' =~ 'user time' so that percentage is computed incorrectly (src/zabbix_agent/cpustat.c: get_cpustat)
Whether zabbix needs to retain compatiblity with older client (and thus report system.cpu.util[,user,] with guest time included) or be more like mpstat (which reports a user time without a guest time) - that is a decision for core developers. I would prefer the latter.