"Load average" in top is actually the run queue average length.
Over 1 means on average things are waiting on the cpu, below 1 means on average no-one has to wait. Don't confuse this with %cpu - it's not like that.
The bold summary line show percentages should always be across all the cores, but can get confused if you have the wrong version of top, so always add them up to check you get 100 the first time you use top on a new machine to check this.
As for process %cpu, that depends on your version of top - if it's compiled for your arcihtecture properly, it understands and the % is how much of one CPU is beign used (so more than 100% would require multithreading across multiple cores).
To complicate matters further, a system running at 100% cpu might not be terrible if your shceduler is beign smart - it could well be that you've got a bunch of low priority things in the background that get a bunch of work done while the system is idel, then throtle back when you need it - ie sitting at 100% you might still find that your CPU hungry command you want to run goes just fine and the cpu load happily stays at 100% during and after. It's often a waste of time to monitor CPU percentages overall.
Better is to look at:
* overall wait % ("wa") - you don't want that to get very high or it indicates something is thrashing in swap or disk.
* run queue length
In your java example:
Its saying that you have a Priority 23 task, (lower numbers get priority on CPU time) using 70.6% of your free memory and 142.9% of one CPU (ie it's multithreaded and is using about 1.5 Cores).
Last edited by Smiling Dragon; 08-08-2013 at 11:34 PM..
Reason: added the java example breakdown.
This User Gave Thanks to Smiling Dragon For This Post:
we have an unix system which has
load average normally about 20.
but while i am running a particular unix batch which performs heavy
operations on filesystem and database average load
reduces to 15.
how can we explain this situation?
while running that batch idle cpu time is about %60-65... (0 Replies)
Hello all, I have a question about load averages.
I've read the man pages for the uptime and w command for two or three different flavors of Unix (Red Hat, Tru64, Solaris). All of them agree that in the output of the 2 aforementioned commands, you are given the load average for the box, but... (3 Replies)
Hi,
I'm new to shell scripting. I need to make a script to add on to my cronjobs.
The script must get the value of load average from my server and if its greater than 10 it should stop my apache service. I cant find a way to get the value of load average in integer type to do the check. Any... (4 Replies)
Hi,
i have installed solaris 10 on t-5120 sparc enterprise.
I am little surprised to see load average of 2 or around on this OS.
when checked with ps command following process is using highest CPU. looks like it is running for long time and does not want to stop, but I do not know... (5 Replies)
Hi Folks,
We have 6 processors in our sun server. I do see that CPU usage by one of the processor is always more than 70-80% and for remaining 5 processors, its only 20%. Is there a way to delegate the excess CPU load on one of the processors in server to other processors in same server? Is... (3 Replies)
Hello AlL,..
I want from experts to help me as my load average is increased and i dont know where is the problem !!
this is my top result :
root@a4s # top
top - 11:30:38 up 40 min, 1 user, load average: 3.06, 2.49, 4.66
Mem: 8168788k total, 2889596k used, 5279192k free, 47792k... (3 Replies)
Hi ,
I am using 48 CPU sunOS server at my work.
The application has facility to check the current load average before starting a new process to control the load.
Right now it is configured as 48. So it does mean that each CPU can take maximum one proces and no processe is waiting.
... (2 Replies)
how load average is calculated and what exactly is it
difference between cpu% and load average (9 Replies)
Discussion started by: robo
9 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)