Skip site navigation (1)Skip section navigation (2)
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>