01-19-2006
To find CPU Usage
I am programatically trying to find CPU usage for a particular process. I am writing a C program for this. I am not sure if my approach is good at all. I first of all find the PID using getpid() method. Then I call top -f <filename> and then parse to reach the PID row. I then try to read the 10th field namely %CPU. But this is very tedious and likely to have many bugs in parsing process.
I had to read from file since top command does not terminate automatically. Can anyone, please suggest some better way to do?
Thanks a lot in advance.
10 More Discussions You Might Find Interesting
1. Programming
how can i monitor usages of CPU, Memory, Hard disk etc. under SUN Solaries
through a c program or java program
i want to store that data into database so i can show it graphically
thanks in advance (2 Replies)
Discussion started by: Gajanad Bihani
2 Replies
2. Shell Programming and Scripting
For analysis, I need to gather CPU usage from say 1:00 PM to 2:00 PM every 10 seconds on a given day. I heard this can be done with awk, but my UNIX is kind of rusty. (4 Replies)
Discussion started by: WG1
4 Replies
3. Programming
Please tell me solaris functions/api for getting following information
1- Function that tells how much memory used by current process
2- Function that tells how much memory used by all running processes
3- Function that tells how much CPU is used by current process
4- Function that tells how... (1 Reply)
Discussion started by: mansoorulhaq
1 Replies
4. Solaris
Folks,
I need to find out from the system logs ( or elsewhere ) if the CPU utilization reached say 90% an hour ago from now.
Is there a way out. (2 Replies)
Discussion started by: kavera
2 Replies
5. HP-UX
how can I find cpu usage memory usage swap usage and
I want to know CPU usage above X% and contiue Y times and memory usage above X % and contiue Y times
my final destination is monitor process
logical volume usage above X % and number of Logical voluage above
can I not to... (3 Replies)
Discussion started by: alert0919
3 Replies
6. Solaris
Hi,
I want to monitor the current cpu usage, monitor usage , disk I/o and network utlization for solaris using SNMP.
I want the oids for above tasks.
can you please tell me that
Thank you (2 Replies)
Discussion started by: S_venkatesh
2 Replies
7. Solaris
Hello Friends,
On one of my Solaris 10 box, CPU usage shows 100% using "sar", "vmstat". However, it has 4 CPUs and prstat and glance are not showing enough processes to justify high CPU utilization.
=========================================================================
$ prstat -a
... (4 Replies)
Discussion started by: mahive
4 Replies
8. AIX
How to monitor the IBM AIX server for I/O usage, memory usage, CPU usage, network usage, storage usage? (3 Replies)
Discussion started by: laknar
3 Replies
9. UNIX for Advanced & Expert Users
Hi,
By using time command we can determine the execution time of a process or command.
bash-2.04$ time ls -l
total 0
-rw-r--r-- 1 admin tac 0 Oct 6 04:46 file1
-rw-r--r-- 1 admin tac 0 Oct 6 04:46 file2
real 0m0.002s
user 0m0.000s
sys 0m0.001s... (5 Replies)
Discussion started by: learn more
5 Replies
10. BSD
Hi,
If anyone know Please answer me the following question :
How to find the usage of individual core cpu usage in FreeBsd server?
What command is used for that?
Thanks,
Maruthu (2 Replies)
Discussion started by: maruthu
2 Replies
LEARN ABOUT DEBIAN
cpulimit
CPULIMIT(1) User commands CPULIMIT(1)
NAME
cpulimit -- limits the CPU usage of a process
SYNOPSIS
cpulimit [TARGET] [OPTIONS...]
DESCRIPTION
TARGET must be exactly one of these:
-p, --pid=N
pid of the process
-e, --exe=FILE
name of the executable program file
-P, --path=PATH
absolute path name of the executable program file
OPTIONS
-b, --background
run cpulimit in the background, freeing up the terminal
-c, --cpu
specify the number of CPU cores available. Usually this is detected for us.
-l, --limit=N
percentage of CPU allowed from 1 up. Usually 1 - 100, but can be higher on multi-core CPUs. (mandatory)
-v, --verbose
show control statistics
-z, --lazy
exit if there is no suitable target process, or if it dies
-h, --help
display this help and exit
EXAMPLES
Assuming you have started `foo --bar` and you find out with top(1) or ps(1) that this process uses all your CPU time you can either
# cpulimit -e foo -l 50
limits the CPU usage of the process by acting on the executable program file (note: the argument "--bar" is omitted)
# cpulimit -p 1234 -l 50
limits the CPU usage of the process by acting on its PID, as shown by ps(1)
# cpulimit -P /usr/bin/foo -l 50
same as -e but uses the absolute path name
# /usr/bin/someapp
# cpulimit -p $! -l 25 -b
Useful for scripts where you want to throttle the last command run.
# cpulimit -l 20 firefox
Launch Firefox web browser and limit its CPU usage to 20%
# cpulimit -c 2 -p 12345 -l 25
The -c flag sets the number of CPU cores the program thinks are available. Usually this is detected for us, but can be over-ridden.
NOTES
o cpulimit always sends the SIGSTOP and SIGCONT signals to a process, both to verify that it can control it and to limit the average
amount of CPU it consumes. This can result in misleading (annoying) job control messages that indicate that the job has been stopped
(when actually it was, but immediately restarted). This can also cause issues with interactive shells that detect or otherwise depend
on SIGSTOP/SIGCONT. For example, you may place a job in the foreground, only to see it immediately stopped and restarted in the back-
ground. (See also <http://bugs.debian.org/558763>.)
o When invoked with the -e or -P options, cpulimit looks for any process under /proc with a name that matches the process name argument
given. Furthermore, it uses the first instance of the process found. To control a specific instance of a process, use the -p option
and provide a PID.
o The current version of cpulimit assumes the kernel HZ value 100.
AUTHOR
This manpage was written for the Debian project by gregor herrmann <gregoa@debian.org> but may be used by others.
cpulimit June 2012 CPULIMIT(1)