WEB开发网
开发学院操作系统Linux/Unix 自己动手创建 AIX 平台上的性能监测工具 阅读

自己动手创建 AIX 平台上的性能监测工具

 2008-11-10 08:23:07 来源:WEB开发网   
核心提示: ret=`staf $server process start shell command "staf local fs copy directory /perflog todirectory $dataDir tomachine 9.168.0.2" workdir

ret=`staf $server process start shell command "staf local fs copy directory /perflog

todirectory $dataDir tomachine 9.168.0.2" workdir /tmp wait returnstdout returnstderr`

##########################################################     
# 根据性能数据文件绘制图表 #
###########################################################
aixperfchart.sh mem.dat $dataDir $imgFormat
aixperfchart.sh cpu.dat $dataDir $imgFormat
charts[0]="mem.$imgFormat"
charts[1]="cpu.$imgFormat"
index=2
cd $dataDir
# 如果有多个进程的数据文件 , 逐一绘制相应的图表
images=`ls *.dat|grep -v mem|grep -v cpu`
for img in $images; do
aixperfchart.sh $img $dataDir $imgFormat
charts[$index]="${img%%.*}.$imgFormat"
let "index=$index+1"
done
##########################################################
# 生成包含性能图表的 html 文件 , 并发布到 WEB 上 #
##########################################################
#
htmlfn="${dataDir}/perfchart.html"
echo "<html><head></head><body>" > $htmlfn
if [ -z $server ]; then
echo "<h2> Perf Charts</h2>" >> $htmlfn
else
echo "<h2> $server Perf Charts</h2>" >> $htmlfn
fi
echo "<table cellpadding="3" cellspacing="0">" >> $htmlfn
curIndex=0
for (( curIndex=0; curIndex < $index; curIndex++ )) ; do
let "i = $curIndex % 2"
if [ "$i" -eq 0 ] ; then
echo "<tr>" >> $htmlfn
fi
imageFile=${charts[$curIndex]}
dataFile="${imageFile%%.*}.dat"
echo "<td align="center"><img src="${charts[$curIndex]}" width=600 height=320/>
<br/><a href= "${dataFile}">${dataFile}</a></td>" >> $htmlfn
if [ "$i" -eq 1 ] ; then
echo "</tr>" >> $htmlfn
fi
done
echo "</table></body></html>" >> $htmlfn

在脚本 htmlreport.sh 中有两个地方值得我们注意。一个是调用 STAF 的 FS service 把性能数据文件从 AIX 机器拷贝到 Linux 机器上。为方便起见,建议直接把数据文件拷贝到 web 服务器的发布目录,这样就不需要在发布性能数据及图表时再次拷贝了。另外一个是绘制图表的代码,我们把生成的图表文件名存储在 charts 数组中。考虑到读者可能需要监测多个进程,代码并没有只是简单生成 java 进程的图表,而是逐一为可能存在的进程生成图表并且存储到 charts 数组中。

有了 htmlreport.sh 脚本之后,我们就可以用下面的命令调用这个脚本让它定期绘制图表,并把图表发布到 WEB 服务器。

bash-3.00# nohup ./htmlreport.sh -t <duration> -i <interval> 2>&1
>/tmp/htmlreport &

假定性能数据以及图表被发布到 web 服务器的 perflog 目录,那么打开浏览器,输入下面的 URL,我们就能看到监测数据的图表了。

http://9.168.0.2/perflog/perfchart.html

图 2 显示性能图表的 web 页面

自己动手创建 AIX 平台上的性能监测工具

结束语

在本文中,我介绍了如何利用 AIX 系统自带的性能工具包和 JFreeChart 图表库去构建一个简单易用的性能监测工具。通过简单的扩展,这个工具可以完成更多的监测功能,比如说,监测磁盘使用情况,监测 IO 使用情况,等等。

上一页  2 3 4 5 6 7 

Tags:自己 动手 创建

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接