11-28-2008
Your while loop does nothing but compute. It tries to use as much cpu as it can get. Outputing some data and sleeping do not use the cpu. I don't understand why you find any of this confusing.
As for avoiding cpu usage, you actually show two ways to do this. I don't understand why you then pose the question.
But there is nothing wrong with using the cpu if that is what your program needs to do. It's the kernel's job to ensure that all processes are allowed to run. The kernel will limit your process' cpu usage as it needs to. In general, a cpu bound process can hog the cpu for a few seconds, but its priority will be worsened as a result. It soon will have to least priority of any process and will find itself running only when the kernel can't find anything else to do.
At most, the only thing you need to do is to consider adding a nice() call like this:
nice(5);
This is a clue to the kernel to lower your process' priority.
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. 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
3. UNIX for Advanced & Expert Users
System FreeBSD.
Issue: I see that system idle = 0% in the same time top and other commands show that all process eat 0% of cpu.
System calls 98%
CPU states: 7.9% user, 0.0% nice, 91.8% system,<==!!!
But top does not show any process which eats more than 0%
Question: how can I see... (0 Replies)
Discussion started by: mirusnet
0 Replies
4. 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
5. 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
6. 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
7. 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
8. Programming
Hi all,
I'm using python and psutil a library to get system informations like cpu usage (percent) for a given process.
My question is if I have the value in % of the cpu usage how I could get the cpu usage in cycle number I mean not in percent?
Thanks a lot
D. (5 Replies)
Discussion started by: Dedalus
5 Replies
9. AIX
Hi Guys,
I am a newbie on the forum. This is my first post, so first of all I would like to introduce myself.
I am a SAS Analyst programmer working for an Health Insurance client. SAS is installed on a 16 CPU AIX Server with partitions running with shared processor. I have couple of... (2 Replies)
Discussion started by: saurabhiim2003
2 Replies
10. HP-UX
Hi Experts,
We encountered problem in one of the production system where some processes were taking higher CPU and after some time it came back to normal..
From system prespective, is there any way to check why processes took more cpu during that particular period. (16 Replies)
Discussion started by: sai_2507
16 Replies
ionice(1) General Commands Manual ionice(1)
NAME
ionice - get/set program io scheduling class and priority
SYNOPSIS
ionice [[-c class] [-n classdata] [-t]] -p PID [PID]...
ionice [-c class] [-n classdata] [-t] COMMAND [ARG]...
DESCRIPTION
This program sets or gets the io scheduling class and priority for a program. If no arguments or just -p is given, ionice will query the
current io scheduling class and priority for that process.
As of this writing, a process can be in one of three scheduling classes:
Idle A program running with idle io priority will only get disk time when no other program has asked for disk io for a defined grace
period. The impact of idle io processes on normal system activity should be zero. This scheduling class does not take a priority
argument. Presently, this scheduling class is permitted for an ordinary user (since kernel 2.6.25).
Best effort
This is the effective scheduling class for any process that has not asked for a specific io priority. This class takes a priority
argument from 0-7, with lower number being higher priority. Programs running at the same best effort priority are served in a round-
robin fashion.
Note that before kernel 2.6.26 a process that has not asked for an io priority formally uses "none" as scheduling class, but the io
scheduler will treat such processes as if it were in the best effort class. The priority within the best effort class will be dynam-
ically derived from the cpu nice level of the process: io_priority = (cpu_nice + 20) / 5.
For kernels after 2.6.26 with CFQ io scheduler a process that has not asked for an io priority inherits CPU scheduling class. The
io priority is derived from the cpu nice level of the process (same as before kernel 2.6.26).
Real time
The RT scheduling class is given first access to the disk, regardless of what else is going on in the system. Thus the RT class
needs to be used with some care, as it can starve other processes. As with the best effort class, 8 priority levels are defined
denoting how big a time slice a given process will receive on each scheduling window. This scheduling class is not permitted for an
ordinary (i.e., non-root) user.
OPTIONS
-c class
The scheduling class. 0 for none, 1 for real time, 2 for best-effort, 3 for idle.
-n classdata
The scheduling class data. This defines the class data, if the class accepts an argument. For real time and best-effort, 0-7 is
valid data.
-p pid Pass in process PID(s) to view or change already running processes. If this argument is not given, ionice will run the listed pro-
gram with the given parameters.
-t Ignore failure to set requested priority. If COMMAND or PID(s) is specified, run it even in case it was not possible to set desired
scheduling priority, what can happen due to insufficient privileges or old kernel version.
EXAMPLES
# ionice -c 3 -p 89
Sets process with PID 89 as an idle io process.
# ionice -c 2 -n 0 bash
Runs 'bash' as a best-effort program with highest priority.
# ionice -p 89 91
Prints the class and priority of the processes with PID 89 and 91.
NOTES
Linux supports io scheduling priorities and classes since 2.6.13 with the CFQ io scheduler.
AUTHORS
Jens Axboe <jens@axboe.dk>
AVAILABILITY
The ionice command is part of the util-linux package and is available from ftp://ftp.kernel.org/pub/linux/utils/util-linux/.
ionice August 2005 ionice(1)