ITPub博客

首页 > Linux操作系统 > Linux操作系统 > 小记OS Watcher在AIX平台上的两则问题

小记OS Watcher在AIX平台上的两则问题

原创 Linux操作系统 作者:xfxyxh 时间:2009-09-28 10:06:05 0 删除 编辑

 近日由于需要在项目中使用ODI,为了评估对系统性能的影响,决定在操作系统层使用OSW收集性能信息,数据库层就使用AWR吧。
上metalink下了最新的OSW,安装很简单,直接用tar命令解压就好了,然后直接运行./startOSW.sh 10 1,以为开始收集性能数据了,满怀期望的去archive目录下查看生成的文件,shit,一个文件都没有,命令行也一直停留在下面阶段:

Testing for discovery of OS Utilities...

VMSTAT found on your system.
IOSTAT found on your system.
MPSTAT found on your system.

先stop吧,执行./stopOSW.sh,报
kill: 5836834: 0403-003 The specified process does not exist.
ps -ef | grep -i osw一下,OSW的进程也确实不存在了,为什么报这个错呢,查看了一下stopOSW.sh文件的内容,有下面一行:
kill -15 `ps -ef | grep OSWatch | awk '{print $2}'`
原来它没有将grep进程过滤掉,把这条语句改为kill -15 `ps -ef | grep OSWatch | grep -v grep | awk '{print $2}'`就好了。
这里虽然不会对停止OSW进程有影响,但看着这个报错心里别扭。

接着查找OSW为什么不收集数据的问题,查看startOSW.sh内容,发现它调用的是OSWatcher.sh,对OSWatcher.sh调试跟踪一下:
ksh -x OSWatcher.sh
发现走到netstat后就不往下走了,详细内容如下:
+ vmstat 1 3
+ 1> /dev/null 2>& 1
+ [ 0 = 0 ]
+ echo VMSTAT found on your system.
VMSTAT found on your system.
+ VMFOUND=1
+ iostat -D 1 3
+ 1> /dev/null 2>& 1
+ [ 0 = 0 ]
+ echo IOSTAT found on your system.
IOSTAT found on your system.
+ IOFOUND=1
+ mpstat 1 3
+ 1> /dev/null 2>& 1
+ [ 0 = 0 ]
+ echo MPSTAT found on your system.
MPSTAT found on your system.
+ MPFOUND=1
+ netstat
+ 1> /dev/null 2>& 1

查看OSWatcher.sh中的相关代码,原来是在判断netstat命令在系统中是否存在,代码如下:
netstat > /dev/null 2>&1
if [ $? = 0 ]; then
  echo "NETSTAT found on your system."
  NETFOUND=1
else
  echo "Warning... NETSTAT not found on your system. No NETSTAT data will be collected."
  NETFOUND=0
fi

把netstat拿出来执行,发现返回很慢,10分钟都没执行完,上网baidu了一下,说是有可能是DNS设置有误所致,我检查了一下,DNS没有设错啊,最后使出杀手锏,把resolv.conf文件中的内容删了看看,真是如此,netstat很快就执行完了,不过很奇怪ORACLE为什么不用which命令来判断命令是否存在,难道which命令也会不存在?

经过一番折腾,OSW终于能处理了,另外附上OSW的一些资料:

●命令格式:
startOSW.sh $1 $2 $3
$1表示收集间隔,单位为秒,默认为30
$2表示采集的数据的保留时间,单位为小时,默认为48
$3表示使用何种压缩工具去压缩收集到的数据

例:
startOSW.sh 10 8
每10秒收集一次,保留8小时的采集数据

●图形化查看统计信息:
首先设置java命令的path:export PATH=$PATH:$JAVA_HOME/bin
然后设置DISPLAY:exprot DISPLAY=xxx.xxx.xxx.xxx:0.0
最后:java -jar oswg.jar -i archive
archive目录为收集数据所在目录,位于OSW的安装目录下

●使用命令行方式生成报表:
-6  在OSW安装目录下的gif目录里生成与CPU相关的GIF图片
-7  在OSW安装目录下的gif目录里生成与Memory相关的GIF图片
-8  在OSW安装目录下的gif目录里生成与Disk相关的GIF图片
-B  选择报告的开始时间,格式为Mon DD HH:MM:SS YYYY
-E  选择报告的结束时间,格式为Mon DD HH:MM:SS YYYY
-P  以HTML格式生成报表,注意使用该参数前需要在OSW安装目录下手工新建profile目录,否则会报错

以上参数可以单独使用,也可以组合使用,例:
java -jar oswg.jar -i archive -6 -B Sep 12 10:00:00 2009 -E Sep 12 11:00:00 2009    生成从9月12日10点到11点之间所有与CPU相关的GIF图片
java -jar oswg.jar -i archive -6 -7 -8 -B Sep 12 10:00:00 2009 -E Sep 12 11:00:00 2009  -P  以HTML格式生成从9月12日10点到11点之间的CPU、Memory、Disk相关的报表信息

●在RAC环境收集数据时,可将OSW安装目录下Exampleprivate.net重命名为private.net,以收集私有网络的信息。
具体使用可以看Exampleprivate.net文件的内容。

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/339291/viewspace-615794/,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论

注册时间:2007-12-13

  • 博文量
    21
  • 访问量
    85124