Sponsored Content
Full Discussion: Get the memory and cpu usage
Top Forums Shell Programming and Scripting Get the memory and cpu usage Post 302770942 by MadeInGermany on Tuesday 19th of February 2013 06:17:25 AM
Old 02-19-2013
For regular system monitoring I recommend to install "Xymon".
I use the following script to get a quick overview of the system, works on Linux and Solaris:
Code:
#!/bin/sh
set -f
PATH=/usr/xpg4/bin:/usr/bin:/bin:/usr/sbin:/usr/ucb
export PATH
 
if [ -x /usr/sbin/swap ]; then
 vmempct=`swap -s |
 awk '{gsub("([0-9])k","\1"); print int($9*100/($11+$9))}'
 `
else
 # To compensate the Linux memory strategy, put a f=2 factor
 vmempct=`free |
 awk '/^[Mm]em/ {used+=$3/f; free+=$4/f} /^[Ss]wap/ {used+=$3; free+=$4} END {print int(used*100/(free+used))}' f=2
 `
fi
printf "%-10s %d %%\n" "#vmemory:" $vmempct
load=`uptime | awk '{sub(".*[Ll]oad[^0-9]*",""); sub("[^0-9.].*$",""); print $0*100}'`
if [ -f /proc/cpuinfo ]; then
 cores=`grep -ic '^processor' /proc/cpuinfo`
else
 cores=`psrinfo | grep -c .`
 # With regards to CMT system throughput, put a p=1/2 factor
 case `uname -i` in
 SUNW,*T[125][0-9][0-9]*) cores=`expr $cores / 2`
 ;;
 esac
fi
printf "%-10s %d %%\n" "#cpu:" `expr $load / $cores`
disk=`PATH=/usr/ucb:$PATH df /tmp /var/tmp | awk '{sub("%$","",$5)} $5+0>max {max=$5} END {print max+0}'`
printf "%-10s %d %%\n" "#disk:" $disk
#assume 8 users per core maximum:
users | awk 's[$1]++==0 {++users} END {
printf "%-10s %-3d , %d %%\n","#users:",users,users*100/8/cores
}' RS=" " cores=$cores
#assume 24000 processes maximum (Solaris default pidmax=30000) and 30000 threads maximum (Linux default pid_max=32768)
ps -Le -o pid= |
 awk 's[$1]++==0 {proc++} END {
printf "%-10s %-3d , %d %%\n","#procs:",proc,proc*100/24000
printf "%-10s %-3d , %d %%\n","#threads:",NR,NR*100/30000
}'
#assume 3000 ttys maximum
ttys=`who | grep -c .`
printf "%-10s %-3d , %d %%\n" "#ttys:" $ttys `expr $ttys \* 100 / 3000`
#all in one variable:
allprocs=`ps -e -o user= -o pcpu= -o vsz= -o rss=`
#assume 600 processes maximum:
echo "#procs per user, top 3:"
echo "$allprocs" |
 awk '{s[$1]++} END {for(i in s) printf " %-9s %-3d , %d %%\n",i,s[i],int(s[i]*100/600)}' |
 sort -n -k 2,2 |
 tail -3
#assume 3000 threads maximum:
echo "#threads per user, top 3:"
ps -Le -o user= |
 awk '{s[$1]++} END {for(i in s) printf " %-9s %-3d , %d %%\n",i,s[i],int(s[i]*100/3000)}' |
 sort -n -k 2,2 |
 tail -3
echo "#cpu% per user, top 3:"
scale=$cores
[ `uname -s` = SunOS ] && scale=1 # Solaris ps is already scaled!
echo "$allprocs" |
 awk '{s[$1]+=$2} END {for(i in s) printf " %-9s %2.1f\n",i,s[i]/c}' c=$scale |
 sort -n -k 2,2 |
 tail -3
echo "#vmemoryMB per user, top 3:"
echo "$allprocs" |
 awk '{s[$1]+=$3} END {for(i in s) printf " %-9s %4.1f\n",i,s[i]/1024}' |
 sort -n -k 2,2 |
 tail -3
echo "#residentMB per user, top 3:"
echo "$allprocs" |
 awk '{s[$1]+=$4} END {for(i in s) printf " %-9s %4.1f\n",i,s[i]/1024}' |
 sort -n -k 2,2 |
 tail -3

This User Gave Thanks to MadeInGermany For This Post:
 

10 More Discussions You Might Find Interesting

1. Programming

Monitor CPU usage and Memory Usage

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

CPU usage and memory usage

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 Dummies Questions & Answers

recording cpu and memory usage

Is there a way for me to record cpu and memory usage over time without buying and installing new software? I know I can use top to see the current state, but can I record that data somehow? (2 Replies)
Discussion started by: cshih31
2 Replies

4. UNIX for Dummies Questions & Answers

cpu, memory and virtual memory usage

Hi All, Does anyone know what the best commands in the UNIX command line are for obtaining this info: current CPU usage memory usage virtual memory usage preferably with date and time parameters too? thanks ocelot (4 Replies)
Discussion started by: ocelot
4 Replies

5. HP-UX

how can I find cpu usage memory usage swap usage and logical volume usage

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

current CPU usage, memory usage, disk I/O oid(snmp)

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. UNIX for Dummies Questions & Answers

CPU Utilization and Memory Usage

Can any one suggest me, how to get the last week's (Last n weeks) average CPU utilization and Memory usage? (2 Replies)
Discussion started by: siba.s.nayak
2 Replies

8. AIX

How to monitor the IBM AIX server for I/O usage,memory usage,CPU usage,network..?

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

How often should I monitor the CPU and memory usage ?

Hi all, When you monitor the CPU and memory usage, how often do you do it ? Do it too often or too rarely will both cause the problem. So does anyone have hand-on experience ? And for my case, the requirement says that when CPU usage is above X% or memory usage is above Y%, I should reject... (5 Replies)
Discussion started by: qiulang
5 Replies

10. Shell Programming and Scripting

Cpu and memory usage scripts

All I am writing a script to generate an email when cpu and memory usage is high for 5 min continuously help me urgent I wrote below scritpt LOAD=75.00 CPU_LOAD= 'sar -P all 300 5 |grep 'Average.all* '| awk -F " " '(print 100.0 -$NF)'' IF }; ECHO "pLEASE CHECK YOUR PROCESS ON YOUR... (1 Reply)
Discussion started by: anil529
1 Replies
All times are GMT -4. The time now is 11:47 PM.
Unix & Linux Forums Content Copyright 1993-2022. All Rights Reserved.
Privacy Policy