Multiple Processors and Load Average

Login or Register to Reply

 
Thread Tools Search this Thread
# 1  
Multiple Processors and Load Average

The following information shows that there are in total 4 Processors on this machine:

Code:
$ grep -i name /proc/cpuinfo
model name      : Dual-Core AMD Opteron(tm) Processor 2218
model name      : Dual-Core AMD Opteron(tm) Processor 2218
model name      : Dual-Core AMD Opteron(tm) Processor 2218
model name      : Dual-Core AMD Opteron(tm) Processor 2218

Does the command top reveal this information clearly?

Code:
$ top -b -n 1 | head
top - 08:52:40 up 1516 days, 16:57,  2 users,  load average: 1.12, 1.26, 1.32
Tasks:  97 total,   1 running,  96 sleeping,   0 stopped,   0 zombie
Cpu(s): 18.2%us,  3.4%sy,  0.0%ni, 77.9%id,  0.3%wa,  0.0%hi,  0.3%si,  0.0%st
Mem:  32967244k total, 32844284k used,   122960k free,   216240k buffers
Swap:  2096472k total,   105872k used,  1990600k free,  2005636k cached

  PID USER      PR  NI  VIRT  RES  SHR S %CPU %MEM    TIME+  COMMAND
25437 root      23   0 22.7g  22g 9272 S 142.9 70.6  42140:15 java

Besides, the load average is:
1.12, 1.26, 1.32
over 1 which means over 100% CPU utilization. But what I understand is if there are 4 processors then the value of 1 would mean only 25% CPU utilization in total. Is this correct?

Next, the top command shows that the following java process is utilizing 142.9% of the CPU resource:

Code:
PID USER      PR  NI  VIRT  RES  SHR S %CPU %MEM    TIME+  COMMAND
25437 root      23   0 22.7g  22g 9272 S 142.9 70.6  42140:15 java

Is this value relative to the total capacity of the CPU (with all its 4 processors)?

Can you please help me make it clear to myself what those things (4 processors, load average, 142.9 %CPU for Java) are showing exactly? How do they relate to each other?
# 2  
"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:
Code:
PID USER      PR  NI  VIRT  RES  SHR S %CPU %MEM    TIME+  COMMAND
25437 root      23   0 22.7g  22g 9272 S 142.9 70.6  42140:15 java

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 10:34 PM.. Reason: added the java example breakdown.
This User Gave Thanks to Smiling Dragon For This Post:
Login or Register to Reply

|
Thread Tools Search this Thread
Search this Thread:
Advanced Search

More UNIX and Linux Forum Topics You Might Find Helpful
Help with load average?
robo
how load average is calculated and what exactly is it difference between cpu% and load average... UNIX for Dummies Questions & Answers
9
UNIX for Dummies Questions & Answers
Please Help me in my load average
black-code
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...... UNIX for Dummies Questions & Answers
3
UNIX for Dummies Questions & Answers
Replicate CPU load to other processors in server
vaibhav.kanchan
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...... UNIX for Advanced & Expert Users
3
UNIX for Advanced & Expert Users
Load Average
Heathe_Kyle
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...... UNIX for Dummies Questions & Answers
3
UNIX for Dummies Questions & Answers
load average
gfhgfnhhn
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...... UNIX for Advanced & Expert Users
0
UNIX for Advanced & Expert Users
UNIX and Linux

Unix (trademarked as the UNIX certification mark) is a very mature family of multitasking, multiuser computer operating systems that evolved from the original AT&T Unix. Unix development starting in the 1970s by legendary Bell Labs programmers Ken Thompson, Dennis Ritchie, and others. Unix was first targeted for the Bell System and AT&T licensed Unix to outside parties. In the 1970s time period, this lead to a variety of for-profit as well as not-for-profit Unix variants.
In the early days, this included the University of California, Berkeley (BSD), Microsoft (Xenix), IBM (AIX), and Sun Microsystems (Solaris). In the early 1990s, AT&T sold their Unix rights to Novell. In 1995 Novell sold their Unix business to the Santa Cruz Operation (SCO). The UNIX trademark was passed to The Open Group, a "neutral" industry consortium. The Open Group promoted the use of the UNIX trademark for certified operating systems that comply with the Single UNIX Specification (SUS). In 2014 Apple's macOS became the Unix version with the largest global install base and macOS remains the largest Unix-user base today.
Linux is a family of open source Unix-like operating systems based on the Linux kernel. The Linux kernel is an operating system kernel first released by Linus Torvalds on 17 September 1991. Linux distributions include the Linux kernel, system software and libraries. Popular free open source Linux distributions include Debian, Fedora, and Ubuntu. Commercial Linux distributions include Red Hat Enterprise Linux and SUSE Linux Enterprise Server. Linux may be freely modified and redistributed. Anyone on the planet may create a Linux distribution for any purpose.
Please enjoy and help our forum community by "showing your work" and posting your code, even when your code is not working as expected. To help others help you, please wrap your code blocks, sample input, sample output, error messages, and other data in CODE tags and wrap your short commands and short data objects in ICODE tags. We were all beginners in the beginning. If you have any questions about how to register or how to post, please contact us in Live Chat. Thank you and enjoy this "forever free" technical support community for UNIX, Linux and computer information technology in general.