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%的主要内容,如果未能解决你的问题,请参考以下文章