AIX 6.1 中进程监控脚本的实时 CPU%

Posted

技术标签:

【中文标题】AIX 6.1 中进程监控脚本的实时 CPU%【英文标题】:Real time CPU% by process monitoring script in AIX 6.1 【发布时间】:2017-06-17 20:48:01 【问题描述】:

我正在尝试编写一个脚本,通过进程 (PID) 监视 AIX 6.1 服务器中的实时 CPU% 负载,并且一直在 IBM 的文档和整个 *** 中搜索这个。

我只找到人们使用的例子,例如

ps aux

不用说,这不是我需要的,因为它只监控进程在会话时间内使用了多少 CPU%,在我的情况下这相当长。 我需要的信息包含在 topas 和 nmon 中,但我不知道如何获取每个时刻的这些信息的快照。

top

在 AIX 系统中不存在。

【问题讨论】:

【参考方案1】:

通过创建一个生成 30 秒 tprof 日志并遍历它们的脚本来解决这个问题,通过 PID 将进程线程相加并达到或多或少等于实时 CPU 负载百分比进程列表的总和。

【讨论】:

【参考方案2】:
Here is a function I use to search and grab CPU load from nmon data log 

function fetch_UARG_process_by_pid () 


#Check_Argument $1 $2

#parameter initialization 
filesource=$1
cpuvalue=$2
readarray -t X <<< "$(grep TOP $filesource)"
length=$#X[@]

#echo " this is the length of my array : $length"
#you have to start from 2 to avoid the first lines that describe the content of the file
#TOP,%CPU Utilisation
#TOP,+PID,Time,%CPU,%Usr, Sys,Size,ResSet,ResText,ResData,ShdLib,MinorFault,MajorFault,Command

  for ((i = 2; i != length; i++)); do
    echo $X[i] | awk -F "," 'print $2 , $4' | while read processid n 
        do
                     if (( $(echo "$n > $cpuvalue " |bc -l) )); 
                     then 
             echo    "the value of CPU usage is: $n"
             echo    "the Linux PID is : $processid "
             echo    "And the short desciption of the process:" 
             echo $X[i] | awk -F "," 'print $14'
             echo -e "And the long desciption of the process:" 
                         grep UARG $1 | grep $processid | awk -F "," 'print $5'
             echo -e "\n"
             fi
        done
  done


【讨论】:

以上是关于AIX 6.1 中进程监控脚本的实时 CPU%的主要内容,如果未能解决你的问题,请参考以下文章

一款免费监控aix与Linux的软件--nmon

有啥方法可以在 Linux/AIX 中从 ksh 更改进程名称?

Linux命令(26):top命令-cpu实时监控

oracle vm server怎么监控虚拟机性能

Linux系统内对高CPU的监控及日志分析

Linux系统内对高CPU的监控及日志分析