cpu utilization break down via sysctl
Stefan Parvu
sparvu at systemdatarecorder.org
Mon Aug 4 16:41:11 UTC 2014
> Sure; I've done the data acquisition with sysctl & awk, then
> post-processed that with a bit of Perl. I wrote some code in R to
> generate graphs.... I did some similar stuff using RRDTool a whlie
> back.
Im planning in using BSD::Sysctl to fetch all needed values.
> kern.cp_time output is an ordered quintuple showing (aggregate) CPU
> counters for:
>
> * user
> * nice
> * system
> * interrupt
> * idle
>
I see. Cool. If I understood right these will be the break down for 4 vcpu system:
$ sysctl kern.cp_times
kern.cp_times: 28845 2060 22253 1805 1197920 27677 1477 22399 2109 1199180 32342 1649 19499 894 1198458 29670 1678 20324 1471 1199699
which maps to:
time1: cpu0: user_28845: nice_2060: system_22253: intr_1805: idle_1197920
time1: cpu1: user_27677: nice_1477 system_22399 intr_2109: idle_1199180
time1: cpu2: user_32342: nice_1649: system_19499: intr_894: idle_1198458
time1: cpu3 user_29670: nice_1678: system_20324: intr_1471: idle_1199699
> For each core (or the aggregate), you need to look at an interval. Get
> the differences for each of the 5 possible CPU states; the sum of those
> differences is the total of CPU resources available during that
> interval.
Right I need to do delta between 2 readings to get the correct values. Same as in KSTAT
in Solaris perl interface.
One more check here:
CPU_Utilization = User + System + Nice + Intr ?
Many thanks indeed. I need to experiment with these ...
--
Stefan Parvu <sparvu at systemdatarecorder.org>
More information about the freebsd-hackers
mailing list