自己动手创建 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 /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 系统自带的性能工具包和 JFreeChart 图表库去构建一个简单易用的性能监测工具。通过简单的扩展,这个工具可以完成更多的监测功能,比如说,监测磁盘使用情况,监测 IO 使用情况,等等。
- ››创建SQL2005自动备份,定期删除的维护计划
- ››创建动态表单 javascript
- ››自己动手写iPhone wap浏览器之界面架构篇
- ››创建基于PPTP的站点到站点VPN连接:ISA2006系列之...
- ››创建基于L2TP的站点到站点的VPN连接:ISA2006系列...
- ››创建一个Twisted Reactor TCP服务器
- ››自己也能DIY个性真人QQ表情
- ››自己动手!巧法让酷狗动感歌词更完美
- ››自己编译Google Android内核的Linux源码
- ››自己写的一个jquery模板引擎(json比较好用)
- ››创建Windows Mobile上兼容性好的UI 程序
- ››创建android的Service
更多精彩
赞助商链接