From owner-freebsd-hackers@FreeBSD.ORG Fri Apr 2 13:40:19 2004 Return-Path: Delivered-To: freebsd-hackers@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id 8313C16A4CE for ; Fri, 2 Apr 2004 13:40:19 -0800 (PST) Received: from dan.emsphone.com (dan.emsphone.com [199.67.51.101]) by mx1.FreeBSD.org (Postfix) with ESMTP id 22C4C43D41 for ; Fri, 2 Apr 2004 13:40:19 -0800 (PST) (envelope-from dan@dan.emsphone.com) Received: (from dan@localhost) by dan.emsphone.com (8.12.10/8.12.10) id i32LeCQc009101; Fri, 2 Apr 2004 15:40:12 -0600 (CST) (envelope-from dan) Date: Fri, 2 Apr 2004 15:40:12 -0600 From: Dan Nelson To: Mark Message-ID: <20040402214012.GA49311@dan.emsphone.com> References: <406D6CEF.9030501@ensmp.fr> <20040402205301.GD6724@dan.emsphone.com> <200404022110.I32LASTU007692@asarian-host.net> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <200404022110.I32LASTU007692@asarian-host.net> X-OS: FreeBSD 5.2-CURRENT X-message-flag: Outlook Error User-Agent: Mutt/1.5.6i cc: Dag-Erling Smorgrav cc: Jose Marcio Martins da Cruz cc: freebsd-hackers@freebsd.org Subject: Re: Pointers about CPU load measuring X-BeenThere: freebsd-hackers@freebsd.org X-Mailman-Version: 2.1.1 Precedence: list List-Id: Technical Discussions relating to FreeBSD List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 02 Apr 2004 21:40:19 -0000 In the last episode (Apr 02), Mark said: > Dan Nelson wrote: > >>> 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 ) > > > > Actually the kern.cp_time variable might be better if you want > > idle/kernel/user values. > > I current let snmpd do the job. Is that as accurate as manually > reading the kern.cp_time variable? If you're talking about enterprises.ucdavis.systemStats, then yes. Snmpd digs directly into /dev/kmem instead of using sysctl (so it can run on older kernels that didn't provide the sysctl variable), but the values are the same. enterprises.ucdavis.laTable is populated from the vm.loadavg sysctl variable. -- Dan Nelson dnelson@allantgroup.com