10-16-2001
Kernels always have some code built in to gather statistics. In the case of cpus, several times a second a clock routine fires off and increments one element of a structure. The structure will have counters for idle, user, system, and so on.
In the old days, you could get the structure if you knew its name. You would run nlist(3) on the kernel's symbol table to get the address of the structure. Then you opened /dev/kmem. did a seek to the address and read the structure. The c definations of the structures were usually in /usr/include. This still can be made to work on hp-ux, but the required information is no longer supplied in /usr/include. Skilled gurus can reverse-engineer it, but it's difficult. Vic Able has done this to get lsof to work on recent versions of HP-UX, a feat that very few could match.
New system calls like pstat are the way of the future. And pstat works well enough. Why do you want an alternative?
10 More Discussions You Might Find Interesting
1. Shell Programming and Scripting
I wonder how I shall read the result below, especially 'what'
shown below.
The result was shown when I entered 'w'.
E.g what is TOP? What is gosh ( what does selmgr mean?)?
login@ idle JCPU PCPU what
6:15am 7:04 39 39 TOP
6:34am 6:45 45 45 TOP
6:41am ... (1 Reply)
Discussion started by: Aelgen
1 Replies
2. UNIX for Dummies Questions & Answers
I have a question. Is Linux (Redhat 7.2 specifically) set up to run better/faster on a Pentium cpu vs. an AMD? The reason I ask is, I have a PIII 733 w/512 pc133, and a 4mb video card at work, and an AMD 1.4 w/1gb ddr, and a Radeon 64mb DDR at home, and the PIII at work runs a lot faster. I have a... (1 Reply)
Discussion started by: jeremiebarber
1 Replies
3. HP-UX
Using HP-UX v11
Need to monitor cpu and memory usage, total for system and separately for each user in command-line mode.
Found out next ways to monitor total cpu usage under hp-ux:
1) vmstat, also shows free memory
2) sar -M
ps -eo user,pcpu - does not work, means 'user-defined format'... (4 Replies)
Discussion started by: hp-ux-user
4 Replies
4. AIX
Hallo,
does anybody knows a trick to change the Processor ID in
AIX 4.3.3.
Thanks a lot (9 Replies)
Discussion started by: UXNI
9 Replies
5. Shell Programming and Scripting
Hi all,
I need a script that will check the cpu usage of a certain process and then kill the process if the % cpu is greater than 25%.
I know i can get the pid of a process by doing pidof <processname>.
Once I have the pid number is there a command in bash to return the current % cpu? (2 Replies)
Discussion started by: borderblaster
2 Replies
6. Shell Programming and Scripting
I'm writing a bash script to log some selections from a sensors output (core temp, mb temp, etc.) and I would also like to have the current cpu usage as a percentage. I have no idea how to go about getting it in a form that a bash script can use. For example, I would simply look in the output of... (3 Replies)
Discussion started by: graysky
3 Replies
7. Shell Programming and Scripting
Hi,
How can I find total CPU usage in percentage? e.g. if my system has 8 CPUs and I want to list total usage for all of them, is it possible through a command?
I have tried some of the commands like top, mpstat, sar. The output of those commands has to be manipulated to derive the percentage... (14 Replies)
Discussion started by: jal_capri
14 Replies
8. Hardware
Hello,
can anyone explain me this jargon "Nodes/Processor/CPU's/threads/packages":confused:
and what's the relation between these, I need to work on a cluster and I can not figure out the terminology. Thanks!
any good link to read about these would also be very helpful
Thanks!
... (1 Reply)
Discussion started by: nonothing
1 Replies
9. Solaris
Hi Gurus
Can someone help me in explaining the below outputs .
psrinfo -p
4
/usr/sbin/psrinfo -pv
The physical processor has 4 virtual processors (0-3)
SPARC64-VI (portid 1024 impl 0x6 ver 0x93 clock 2150 MHz)
The physical processor has 4 virtual processors (8-11)
SPARC64-VI... (3 Replies)
Discussion started by: ningy
3 Replies
10. Solaris
Hi,
Recently i have write a simple script to capture CPU high usage based on prstat but i found out that it did capture correctly. I need to capture the rows that contains CPU usage more than 3%. Below line which i thought will capture CPU usage based CPU column in prstat(9th parameter) which is... (3 Replies)
Discussion started by: tharmendran
3 Replies
LEARN ABOUT DEBIAN
sg_get_cpu_percents
sg_get_cpu_stats(3) Library Functions Manual sg_get_cpu_stats(3)
NAME
sg_get_cpu_stats, sg_get_cpu_stats_diff, sg_get_cpu_percents - get cpu usage
SYNOPSIS
#include <statgrab.h>
sg_cpu_percents *sg_get_cpu_percents(void);
sg_cpu_stats *sg_get_cpu_stats(void);
sg_cpu_stats *sg_get_cpu_stats_diff(void);
DESCRIPTION
sg_get_cpu_stats() and sg_get_cpu_stats_diff() both return static pointers of type sg_cpu_stats. sg_get_cpu_stats() returns the total
amount of "ticks" the operating system has spent in each of the different states. sg_get_cpu_stats_diff() returns the difference in "ticks"
for each of the states since last time sg_get_cpu_stats_diff() or sg_get_cpu_stats() was called. If it has never been called, it will
return the result of sg_get_cpu_stats().
The value stored (the "ticks") will vary between operating systems. For example Solaris has a total of 100 per second, while Linux has sub-
stantially more. Also, different operating systems store different information - you won't find nice cpu on Solaris for example.
Because of this, you will ideally always want to work on a scale against the total, or in percentages.
sg_get_cpu_percents() returns a pointer to a static sg_cpu_percents. The function calls sg_get_cpu_stats_diff() and changes the values into
percentages. If it has never been called before (and nor has sg_get_cpu_stats() or sg_get_cpu_stats_diff()), the returned percentages will
be the systems total ever since its uptime. (Unless the counters have cycled)
RETURN VALUES
There are two structures returned by the CPU statistics functions.
typedef struct{
long long user;
long long kernel;
long long idle;
long long iowait;
long long swap;
long long nice;
long long total;
time_t systime;
}sg_cpu_stats;
typedef struct{
float user;
float kernel;
float idle;
float iowait;
float swap;
float nice;
time_t time_taken;
}sg_cpu_percents;
user kernel idle iowait swap nice
The different CPU states.
systime time_taken
The time taken in seconds since the last call of the function, or the system time.
SEE ALSO
statgrab(3)
WEBSITE
http://www.i-scream.org/libstatgrab/
i-scream $Date: 2005/04/25 11:25:45 $ sg_get_cpu_stats(3)