Checking CPU utilization by db2sysc process

Hi,

I am trying to write a script which will fire alert mail to dba ( db2dba) when there process will
utilize CPU more than 90%. But I am unable to do so.

I am using following command to calucate CPU utilization be db2sysc process :

ps -eo pcpu,pid,comm | grep -i db2sysc | awk '{ SUM+=$1; } END { print SUM }'

But Result of above formula and topas output are not same its always different.
like I am finding from ps -eo , are you having any similar kind of command

bash-3.2$ date
Tue Dec 13 22:39:53 PST 2011
bash-3.2$ ps -eo pcpu,pid,comm | grep -i db2sysc | awk '{ SUM+=$1; } END { print SUM }'
20

=================
Topas at this particular time (Tue Dec 13 22:39:53 PST 2011) is displaying 53% is utilized by db2sysc process.

So please let me know from where I can find correct real time CPU utilization of db2sysc process.

I can only speak with certainty for linux, but I think ps always can only print cumulative CPU time or % of cpu utilization over the lifetime of a process (which is what you're getting with pcpu). This is quite different than the kind of realtime loveliness you get with top. (I'm ignorant as to what "Topas" is.)

I don't know of another way to get that kind of info from the commandline, but I'd love to hear it if you find it.

PS: This doesn't answer your question, but we can improve your ps command a little bit:

ps --no-header -C db2sysc -o pcpu | awk ...

This may help u

#! /bin/bash
#List processes based on %cpu and memory usage

echo "Start Time" `date`
# By default, it display the list of processes based on the cpu and memory usage #
if [ $# -eq 0 ]
then

    echo "List of processes based on the %cpu Usage"
    ps -e -o pcpu,cpu,nice,state,cputime,args --sort pcpu  # sorted based on %cpu
    echo "List of processes based on the memory Usage"
    ps -e -orss=,args= | sort -b -k1,1n # sorted bases rss value

# If arguements are given (mem/cpu)
else
    case "$1" in
    mem)
     echo "List of processes based on the memory Usage"
      ps -e -orss=,args= | sort -b -k1,1n
     ;;
     cpu)
     echo "List of processes based on the %cpu Usage"
     ps -e -o pcpu,cpu,nice,state,cputime,args --sort pcpu
     ;;
     *)
        echo "Invalid Argument Given \n"
        echo "Usage : $0 mem/cpu"
        exit 1
     esac    

fi
echo "End Time" `date`
exit 0

Hi ,

Thanks for reply !!!
Please see my command I am using same command which you are asking me to run.
I am talking about differences. Please see from topas currently I am finding following details :

Name            PID  CPU%  PgSp Owner
db2sysc      430216  44.3  20.7 db2pep
db2sysc     4124690   6.8  23.8 db2pep
db2sysc     2568260   2.3  18.9 db2pep
db2sysc     1433794   2.0  19.5 db2pep
db2sysc     3211462   1.5  23.5 db2pep
db2sysc     1847436   1.1  17.7 db2pep
db2sysc     2162884   0.8  19.6 db2pep
db2sysc     2048248   0.6   1.5 db2pep
db2sysc     1884282   0.5  21.4 db2pep
db2sysc     1359954   0.5  13.9 db2pep
db2sysc     1810564   0.5   1.5 db2pep

Menas cpu utilization by db2sysc process as per topas's top 10 query is 60.9 %

But at the same time ps output is showing only 18.5 %.

ps -e -o pcpu,cpu,nice,state,cputime,args | grep -i db2agent | awk '{ SUM+=$1; } END { print SUM }'
18.5

---------- Post updated at 02:37 AM ---------- Previous update was at 02:13 AM ----------

is there anyone who can help me to get exact output of CPU utilization % by db2sysc process. ps command's any option is not having same % utilization as toltal I am finding from topas.

anyone is having idea which command topas use to fire to fetch details of cpu utilization ?

Try this, it will show the total cpu utilization used by DBA user id.

prstat -a 1 1 | grep <dba group> | tail -1

different PS command option use to provide always similar kind of output. That is commulative. so please share any other ps commands.

regarding prstat it is not working in my OS.
Please find os details :
bash-3.2$ db2pd -osinfo
Operating System Information:
OSName: AIX
NodeName: rbitapp1
Version: 5
Release: 3

Please suggest me what to do now.
If anyone is having the command which topas use in background to find CPU utilization then please share. I try to cat topas file but it is not in readable format.