Solved

CPU utilization command

Posted on 2009-07-14
9
717 Views
Last Modified: 2012-06-27
what is the command to find average, minimum and maximum cpu utilization in percentages for linux servers.
0
Comment
Question by:mkarthik415
[X]
Welcome to Experts Exchange

Add your voice to the tech community where 5M+ people just like you are talking about what matters.

  • Help others & share knowledge
  • Earn cash & points
  • Learn & ask questions
9 Comments
 
LVL 40

Expert Comment

by:mrjoltcola
ID: 24855193
top is one option

You can use vmstat to log historical.

vmstat 5

Will print a line every 5 seconds with CPU and other stats.


The uptime command will show load avg for last 1, 5 and 15 minutes, but does not show CPU %
0
 
LVL 7

Expert Comment

by:martin_2110
ID: 24855270
sar -u will give you a history. the sysstat package needs to be installed. Most distros have it.
0
 
LVL 30

Expert Comment

by:Kerem ERSOY
ID: 24855282
Hi,

If you might like to insall the package called systat and you can use these commands :

sar
mpstat

The usage is :

sar -u 5 10

will get statistics for 5 seconds and repeat 10 times.

mpstat 5 10

Will do this for 10 times with 5 seconds delay.

sar

Sample sar output is like this:
# sar
Linux 2.6.9-78.0.22.EL (host.domain.com.tr)        07/15/2009

12:00:01 AM       CPU     %user     %nice   %system   %iowait     %idle
12:10:01 AM       all      2.74      0.00      0.52      0.36     96.38
12:20:01 AM       all      0.99      0.00      0.32      0.06     98.62
12:30:01 AM       all      2.37      0.00      0.50      0.28     96.84
12:40:01 AM       all      1.03      0.00      0.33      0.08     98.56
12:50:01 AM       all      1.05      0.00      0.37      0.06     98.51
01:00:01 AM       all      1.23      0.00      0.37      0.12     98.27
01:10:01 AM       all      0.70      0.00      0.31      0.05     98.94
01:20:01 AM       all      0.78      0.00      0.29      0.13     98.80
01:30:01 AM       all      2.58      0.00      0.35      0.20     96.87
01:40:01 AM       all      0.65      0.00      0.24      0.03     99.08
01:50:01 AM       all      1.41      0.00      0.35      0.13     98.10
02:00:01 AM       all      0.95      0.00      0.29      0.12     98.63
02:10:01 AM       all      0.57      0.00      0.20      0.03     99.20
02:20:01 AM       all      1.13      0.00      0.33      0.06     98.47
02:30:01 AM       all      1.60      0.00      0.31      0.13     97.96
02:40:01 AM       all      1.11      0.00      0.33      0.14     98.42
02:50:01 AM       all      1.02      0.00      0.33      0.07     98.58
03:00:01 AM       all      1.95      0.00      1.13      2.16     94.75
03:10:01 AM       all      2.11      0.00      0.95      5.32     91.62
Average:          all      1.37      0.00      0.41      0.50     97.72
and

mpstat

Sample mpstat output is:

# mpstat
Linux 2.6.9-78.0.22.EL (host.domain.com.tr)        07/15/2009

03:23:38 AM  CPU   %user   %nice %system %iowait    %irq   %soft   %idle    intr/s
03:23:38 AM  all    1.64    0.00    0.32    0.17    0.00    0.00   97.86   1018.63

Will collect information and when executed in their own they will display the historic data of CPU utilization. You might as well use top if you want interactive display.


the command

w

will display you momentarily CPU usage like this:

# w
 03:21:56 up 12 days, 11:58,  4 users,  load average: 0.02, 0.02, 0.00
USER     TTY      FROM              LOGIN@   IDLE   JCPU   PCPU WHAT
root     :0       -                02Jul09 ?xdm?   1:55m  1.66s /usr/bin/gnome-session
root     pts/1    :0.0             02Jul09 12days  0.07s  0.07s bash
root     pts/2    host.dom.com  23:35    0.00s  0.28s  0.00s w
root     pts/3    host.dom.com  03:01   18:21   0.04s  0.04s -bash

Uptime is smilar and itwill only show the first line of what w displays.

Cheers,
K.
0
Technology Partners: We Want Your Opinion!

We value your feedback.

Take our survey and automatically be enter to win anyone of the following:
Yeti Cooler, Amazon eGift Card, and Movie eGift Card!

 
LVL 30

Expert Comment

by:Kerem ERSOY
ID: 24855291
With UNIX systems you mainly use :

sat, mpstat, top and uptime

commands to get an information about CPU usage.

0
 

Author Comment

by:mkarthik415
ID: 24855658
I want only average, minimum and maximum cpu utilization. I think we would require a script to get this.
0
 
LVL 2

Assisted Solution

by:onethreefour
onethreefour earned 100 total points
ID: 24855901
How about this...
You can call the linux 'uptime' command and 'pipe' it to 'cut' with the correct flags to give you JUST the output containing the current averages:
uptime | cut -d: -f5

Using these 'averages' you could assume the lowest value to be your minimum and highest to be your maximum... It would not be a true reading, and would only cover the last 15 minutes or so of time, but is exact measurement really your main objective?  A lot of the time it is more important to simply watch trends or have alerts when maximum or minumum threshholds are broken...  Using this method could still allow you to have triggers when there are highs or lows...

0
 
LVL 30

Expert Comment

by:Kerem ERSOY
ID: 24856069
then you'll need sar. since it keeps statistics in 10 minutes periods. This command below will show it. You'll need to install the package called sysstat first. On my system the sample output is :

Highest= 3.62
Lowest=1.38
Average=2.39
# sar | grep "^[0-9]" | grep -v CPU | awk 'NR==1 {print "Highest= " 100 -$8} END {print "Lowest=" 100 - $8}' ; sar | tail -1 | awk '{print "Average=" 100 - $7}'

Open in new window

0
 
LVL 40

Expert Comment

by:omarfarid
ID: 24856366
you may use top in batch mode

top -b -d1 | grep stat
0
 
LVL 30

Accepted Solution

by:
Kerem ERSOY earned 400 total points
ID: 24857840
Only sar will give you the CPU time in 10 minutes reports. Other solutions such as uptime will give you current, 5 min1tes abck and 10 minutes back CPU load but not min, max and average.

While top in batch mode will give the status of the most active process.

Here's the line what gives you need. The sample output from my system is :

Lowest=0.8 Highest=27.5 Average=4.11

If you want you can omit Labels before the numbers.
sar | grep "^[0-9]" | grep -v CPU | awk '{print $8}' | sort -rn | awk 'NR==1 {printf "Lowest=%s ", 100-$1} END {printf "Highest=%s ", 100-$1}' ; sar | tail -1 | awk '{print "Average=" 100 - $7}'

Open in new window

0

Featured Post

Secure Your Active Directory - April 20, 2017

Active Directory plays a critical role in your company’s IT infrastructure and keeping it secure in today’s hacker-infested world is a must.
Microsoft published 300+ pages of guidance, but who has the time, money, and resources to implement? Register now to find an easier way.

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

Suggested Solutions

If you have a server on collocation with the super-fast CPU, that doesn't mean that you get it running at full power. Here is a preamble. When doing inventory of Linux servers, that I'm administering, I've found that some of them are running on l…
Introduction We as admins face situation where we need to redirect websites to another. This may be required as a part of an upgrade keeping the old URL but website should be served from new URL. This document would brief you on different ways ca…
Get a first impression of how PRTG looks and learn how it works.   This video is a short introduction to PRTG, as an initial overview or as a quick start for new PRTG users.
This demo shows you how to set up the containerized NetScaler CPX with NetScaler Management and Analytics System in a non-routable Mesos/Marathon environment for use with Micro-Services applications.

726 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question