Date: Fri, 2 Apr 2004 14:53:02 -0600 From: Dan Nelson <dnelson@allantgroup.com> To: Dag-Erling Smorgrav <des@des.no> Cc: Jose Marcio Martins da Cruz <Jose-Marcio.Martins@ensmp.fr> Subject: Re: Pointers about CPU load measuring Message-ID: <20040402205301.GD6724@dan.emsphone.com> In-Reply-To: <xzpsmfm5dn8.fsf@dwp.des.no> References: <406D6CEF.9030501@ensmp.fr> <xzpsmfm5dn8.fsf@dwp.des.no>
next in thread | previous in thread | raw e-mail | index | archive | help
In the last episode (Apr 02), Dag-Erling Smorgrav said: > Jose Marcio Martins da Cruz <Jose-Marcio.Martins@ensmp.fr> writes: > > Someone can send some pointers on how to measure global CPU load under > > FreeBSD from a C program ? I'm looking for values for > > idle/kernel/user, in a similar way as does top. Is there any pointer > > or doc ?. I'd like to avoir browsing top code. > > Use sysctlbyname(3) to retrieve vm.loadavg, which is a struct loadavg > (defined in <sys/resource.h>) Actually the kern.cp_time variable might be better if you want idle/kernel/user values. It returns a long cp_time[CPUSTATES]; the states are listed in <sys/resource.h>. Top calculates percentages by keeping the previous interval values, calculating diffs, totaling up the diffs, and setting percentage[cpustate] = diff[cpustate]/totaldiff. -- Dan Nelson dnelson@allantgroup.com
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20040402205301.GD6724>