Date: Mon, 05 Apr 2004 14:08:39 +0200 From: Jose Marcio Martins da Cruz <Jose-Marcio.Martins@ensmp.fr> To: Dan Nelson <dnelson@allantgroup.com> Cc: freebsd-hackers@freebsd.org Subject: Re: Pointers about CPU load measuring Message-ID: <40714C47.20802@ensmp.fr> References: <406D6CEF.9030501@ensmp.fr> <xzpsmfm5dn8.fsf@dwp.des.no> <20040402205301.GD6724@dan.emsphone.com>
next in thread | previous in thread | raw e-mail | index | archive | help
Hello, Thanks Dan. This is the best. I also tried using kvm, but code is longer and the program shall run as root. I'm working on a daemon which shall evaluate CPU load and SHALL not run as root. Best regards, Jose-Marcio Dan Nelson wrote: > 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. > -- --------------------------------------------------------------- Jose Marcio MARTINS DA CRUZ Tel. :(33) 01.40.51.93.41 Ecole des Mines de Paris http://j-chkmail.ensmp.fr 60, bd Saint Michel http://www.ensmp.fr/~martins 75272 - PARIS CEDEX 06 mailto:Jose-Marcio.Martins@ensmp.fr
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?40714C47.20802>