OSWatcher 工具

下载文档 :Metalink Doc ID 301137.1

Oswatcher 主要用于监控主机资源,如CPU,内存,网络以及私有网络等.其中私有网络需要单独配置.

需要说明的执行OSWatcher用户需要常见OS 命令 的执行权限.

如下所述.

OSW will need access to the OS utilities: top, vmstat, iostat, mpstat, netstat, and andtraceroute. These OS utilities need to be install on the system prior to running OSW. Execute permission on these utilities need to be granted to the user of OSW.

支持的平台有:

AIX

Tru 64

Solaris

HP-UNIX

Linux

  1. tar zxvf 解压osw安装文件*.tar.gz
  2. osw相应的脚本工具

l  运行Oswatcher

开始运行osw

运行OSWatcher.sh脚本,这个脚本包括两个参数

参数1:快照时间间隔,单位为秒

参数2:快照记录保持的时间,单位为小时

如,用nohup在后台运行osw:

nohup
sh OSWatcher.sh 10 36 &

l  查看osw运行数据

osw运行后在osw的安装目录中会创建archive目录,目录中包括IOSTAT/VMWAT/TOP/等数据

l  中止Oswatcher

使用stopOSW.sh脚本

例1

表示60s 搜集1次,保存10小时

./startOSW.sh 60 10

例2

默认是30s搜集1次,保存24小时

./startOSW.sh

例3

默认60s搜集1次,保存10小时

nohup ./startOSW.sh 60 10
&

l  配置私有网络监控

如果需要监控私有网络,可以使用Exampleprivate.net 的参考,建立private.net ,并且给予执行权限,并且使用下面的内容拷内进去,之后运行Oswatcher 即可 . 不同操作系统的建立方法不一样.参见如下:

chmod 777 private.net

d

######################################################################

#Solaris Example

######################################################################

echo "zzz
***"`date`

traceroute -r -F node1

traceroute -r -F node2

######################################################################

#HP Example

######################################################################

echo "zzz
***"`date`

traceroute -r -F node1

traceroute -r -F node2

######################################################################

#Linux Example

######################################################################

echo "zzz
***"`date`

traceroute -r -F node1

traceroute -r -F node2

######################################################################

#Tru64 Example

######################################################################

echo "zzz
***"`date`

traceroute -r -f node1

traceroute -r -f node2

######################################################################

#AIX Example

######################################################################

echo "zzz
***"`date`

traceroute -r node1

traceroute -r node2

######################################################################

# DO NOT DELETE THE FOLLOWING
LINE!!!!!!!!!!!!!!!!!!!!!

#

######################################################################

rm locks/lock.file

可以使用下面命令收集间隔1小时OSWatcher 日志。

#cd
/opt/oracle.oswatcher/osw/archive

###for linux

#find . -name "*12.09.14.1[6-7]*" -exec zip /tmp/osw_`hostname`_120914_1617.zip {} \;

<<--------12.09.14.1[6-7] 表示12年09月14日下午16点到17点的,使用时需要替换这个时间。

###for aix     “” |“” 的 stdout  放在第二句的 最后  {}

find . -name "*18.09.11.0[0-2]*"  |xargs tar -cvUf  /tmp/osw_`hostname`_180911_0002.tar

#find . -name "*12.09.14.1[6-7]*"  |xargs tar crvf  /tmp/osw_`hostname`_120914_1617.tar

<<--------12.09.14.1[6-7] 表示12年09月14日下午16点到17点的,使用时需要替换这个时间。

###hp

find . -name "*18.09.1[0-6].*" |xargs tar -cvf /tmp/osw_`hostname`_180911_0002.tar
find . -name "*18.09.1[0-6].*" |xargs tar -rvf /tmp/osw_`hostname`_180911_0002.tar

############解析OSW

五、启动OSWg.jar,以便调用图形界面

将路径切换到osw目录下:$cd /home/oracle/osw

然后执行以下语句:$java -jar OSWg.jar -i /home/oracle/osw/archive --这里要找到archive目录

--一般建议分析1个小时OSW 即可,太多时间,图标不准

注意:

1.在执行过程中,要想退出图形界面,要按Q键来退出;

2.若要想退出osw(即startOSW.sh),停止OSW 服务,通过stopOSW.sh来完成../stopOSW.sh 或者 ./stopOWSbb.sh

#############设置OSW 自动启动脚本。(if 判断后台启动 的 cron)

1.vi OSW_init.sh

##default 30s 搜集1次, keep 360 or 120小时
#!/bin/ksh
#Program : OSW_init.sh
#Author :
#Document : This is the main program,checks OSW stat staus
#

SYSTEM=`uname -s` #;qH!2YWwO5M3@`PM

SCRIPTLOC=/orabak/oswbb/oswbb

export SCRIPTLOC

db_stat=`ps -ef | grep pmon | grep -v grep| cut -f3 -d_ |wc -l`
if [ $db_stat -eq 0 ];then
exit 1
fi

if [ $SYSTEM = "Linux" ] ; then 
echo "Linux"

osw_stat=`ps -ef|grep OSW|grep -v grep| wc -l`
osw_chk=`expr $osw_stat`
if [ $osw_chk -eq 3 ]
then
cd $SCRIPTLOC
$SCRIPTLOC/OSWatcher.sh 30 360
fi

elif [ $SYSTEM = "HP-UX" ] ; then       
echo "HP-UNIX"
`ps -ef|grep OSW|grep -v grep >/tmp/2.log`
osw_stat=`ps -ef|grep OSW|grep -v grep| wc -l`
osw_chk=`expr $osw_stat`
if [ $osw_chk -eq 2 ]
then
cd $SCRIPTLOC
$SCRIPTLOC/OSWatcher.sh 30 360
fi

else
echo "Unix"
`ps -ef|grep OSW|grep -v grep >/tmp/2.log`
osw_stat=`ps -ef|grep OSW|grep -v grep| wc -l`
osw_chk=`expr $osw_stat`
if [ $osw_chk -eq 1 ]
then
cd $SCRIPTLOC
$SCRIPTLOC/OSWatcher.sh 30 360
fi

fi

echo "OSW exec result $?\n" >> /tmp/osw/osw.log

exit 0

#######
2.
chmod 770 /orabak/oswbb/oswbb/OSW_init.sh

3.crontab -e

38 14 * * * sh /orabak/oswbb/oswbb/OSW_init.sh

###38 14 * * * sh /orabak/oswbb/oswbb/OSW_init.sh 2>&1

notice :

check if log is ok , file is under  /orabak/oswbb/oswbb/archive/oswtop/*.dat

########

###########sample :

31 16 * * * sh /orabak/oswbb/oswbb/OSW_init.sh > /tmp/1.log

unix AIX: 使用cron fork 出一个OSW进程

[root@nbutest1:/]# ps -ef|grep OSW 
root 11862018 19202296 0 Nov 30 - 0:32 /bin/sh ./OSWatcherFM.sh 360 /oradata/oswbb/oswbb/archive 《— 第三级子进程
root 12910804 21889042 0 16:02:00 pts/5 0:00 grep OSW
root 19202296 29818988 0 Nov 30 - 1:14 /bin/sh /oradata/oswbb/oswbb/OSWatcher.sh 30 360 <- 第二级子进程
root 29818988 6815964 0 Nov 30 - 0:00 sh /oradata/oswbb/oswbb/OSW_init.sh <- 第一级子进程
[root@nbutest1:/]# ps -ef|grep 6815964 
root 6815964 1 0 Sep 15 - 0:53 /usr/sbin/cron <- 这是父进程,父进程是cron
root 29818988 6815964 0 Nov 30 - 0:00 sh /oradata/oswbb/oswbb/OSW_init.sh
root 32833782 21889042 0 16:03:07 pts/5 0:00 grep 6815964

linux: 使用cron fork 出3个OWS进程

[root@nbutest:/orabak/oswbb/oswbb]# more /tmp/2.log
root 10127 10126 0 16:26 ? 00:00:00 /bin/sh -c sh /orabak/oswbb/oswbb/OSW_init.sh > /tmp/1.log <- 第一级子进程
root 10128 10127 0 16:26 ? 00:00:00 sh /orabak/oswbb/oswbb/OSW_init.sh <- 第二级子进程 
root 10136 10128 0 16:26 ? 00:00:00 sh /orabak/oswbb/oswbb/OSW_init.sh <- 第三级子进程

[root@nbutest:/orabak/oswbb/oswbb]# ps -ef|grep 10126 
root 10126 5076 0 16:26 ? 00:00:00 crond <- 这是父进程,父进程是cron

unix HP-UNIX 使用cron fork 出2个OSW进程

[root@nbutest2:/]# more /tmp/2.log
root 20751 6990 2 16:31:00 ? 0:00 sh -c sh /orabak/oswbb/oswbb/OSW_init.sh > /tmp/1.log
root 20752 20751 0 16:31:00 ? 0:00 sh /orabak/oswbb/oswbb/OSW_init.sh

############部署OSW

### tar 的使用 http://www.cnblogs.com/feiyun8616/p/6180056.html

######the script is used to for deploy osw,it will prompt the password and yes
######保留时间360hours, 每隔30second 收集一次

cd /orabak
mkdir oswbb
--scp root@10.200.210.187:/backup/dba/oswbb810.tar /orabak/oswbb

ftp -v -n 10.200.210.187 << END
user root 123456
binary
hash
prompt
cd /orabak/oswbb
lcd /backup/dba/
get osw*.tar
bye
END

cd oswbb
tar xvf *.tar
cd oswbb

mkdir /tmp/osw
nohup /orabak/oswbb/oswbb/OSWatcher.sh 30 360 &

notice:

when tar xvf *.tar ,it will report below info, please ignore

tar: Read 6874 bytes from oswbb810.tar
tar: Unexpected EOF in archive
tar: Error is not recoverable: exiting now

###########paackage and ansylst  osw data

method 1: 
##########step 1 collect osw data in source
###below parameter is for yy(t1),mm(t2),dd(t3),T(t4),T(T5) ,就是17年11月20日22到23点
export t1=17
export t2=11
export t3=20
export t4=0
export t5="2-3"
export db=esb

mkdir /tmp/dba
cd /orabak/oswbb/oswbb/archive

###view 2017 11/20 2点到3点 osw 日志 , linux zip
#find . -name "*17.11.20.2[2-3]*" -exec zip \
#/tmp/osw_`hostname`_171120_0203.zip {} \;

for linux

find . -name "*$t1.$t2.$t3.$t4[$t5]*"|xargs tar -crvf /tmp/dba/osw_`hostname`_`date '+%y%m%d'`.tar

###for every day data
####find . -name "*$t1.$t2.*.$t4[$t5]*"|xargs tar -crvf /tmp/dba/osw_`hostname`_`date '+%y%m%d'`.tar

gzip /tmp/dba/osw_`hostname`_`date '+%y%m%d'`.tar

####step 2: upload data to 10.200.210.187 /orabak/oswbb/archive/anaylst

ftp -v -n 10.200.210.187 << END
user root 123456
binary
hash
prompt
cd /orabak/oswbb/archive/analyst
lcd /tmp/dba
mput osw*.tar.gz
bye
END

rm /tmp/dba/*.tar.gz

method 2:

cd /orabak/oswbb/oswbb/archive

scp -rp *  root@10.200.210.187:/tmp/dba

##promtp password

########## running in yumserver step 3 use vncserver passwd:123456

method 1:

cd /tmp
gunzip /orabak/oswbb/archive/analyst/*.tar.gz
tar xvf /orabak/oswbb/archive/analyst/*.tar
cd /orabak/oswbb
java -jar oswbba.jar -i /tmp

rm -rf /tmp/osw*
rm -f /orabak/oswbb/archive/analyst/*.tar

method 2:

java -jar /orabak/oswbb/oswbba.jar -i /tmp/dba

rm -rf /tmp/dba/*

####分析 :

选项 D  生成 文件 到 当前 目录 下

选项A  分析并生成 一个 analyst.txt 的文件

###dashboard 文件怎么看

sample 1:

图中PM 指的是从这个点开始 是下午 ,也就是上午和下午的分界线。

sample 2:

查看idle 进程应该反过来看看。也就是灰色部分是idle 部分。

sample 3:

查看   dashborad/index.html

Linux CORES: 4 VCPUS: 8 SNAPS: 30

(cpu 8核,30 second /per )

##### anlyst.txt 怎么看

-》 ############################################################################
# Section 3: System General Findings
#
# This section lists all general findings that require attention. Each
# finding has a status along with a subsystem. Further advice may also
# available regarding the finding.
#

-》CPU UTILIZATION: The following snaps recorded cpu utilization of 100% busy:
SnapTime

-》

#######################################################################################
# Section 8.3: PS for (Processes with CPU > 0) When System Idle CPU < 30% Ordered By Time
# In this section list all processes captured in the oswbb logs with process cpu consumption
# > 0 and system idle cpu < 30%
#

-》

Section 8.5: Top RSS Processes Increasing Memory Per Snapshot

->>

CPU UTILIZATION: The following snaps recorded ROOT processes using high percent cpu:

-->>

# Section 8.2: PS for Processes With Status = D, T or W Ordered By Time
# In this section list all processes captured in the oswbb logs which have a
# status of D, T or W
#

###EXPLAIN:

Linux是一个多用户,多任务的系统,可以同时运行多个用户的多个程序,就必然会产生很多的进程,而每个进程会有不同的状态。  在下文将对进程的

R、S、D、T、Z、X 六种状态做个说明。

PROCESS STATE CODES

Here are the different values that the s, stat and state output specifiers (header "STAT" or "S") will display to describe the state of a process.

D    Uninterruptible sleep (usually IO)

R    Running or runnable (on run queue)

S    Interruptible sleep (waiting for an event to complete)

T    Stopped, either by a job control signal or because it is being traced.

W    paging (not valid since the 2.6.xx kernel)

X    dead (should never be seen)

#####

##

附录:

/etc/inittab文件中每个登记项的结构都是一样的,共分为以冒号“:”分隔的4个字段。具体如下: 
      identifier :  run_level  :  action  :  process 
其中,各字段以及与其相关的说明如下: 
identifier  登记项标识符,最多为4个字符。用于惟一地标识/etc/inittab文件中的每一个登记项

run_level  系统运行级,即执行登记项的init级别。用于指定相应的登记项适用于哪一个运行级,即在哪一个运行级中被处理。如果该字段为空,那么相应的登记项将适用于所有的运行级。在该字段中,可以同时指定一个或多个运行级,其中各运行级分别以数字0.1.2.3.4.5.6或字母a、b、c表示,且无需对其进行分隔。

action    动作关键字。用于指定init(M)命令或进程对相应进程(在“process”字段定义)所实施的动作。具体动作包括: 
  1、boot:只有在引导过程中,才执行该进程,但不等待该进程的结束;当该进程死亡时,也不重新启动该进程。 
  2、bootwait:只有在引导过程中,才执行该进程,并等待进程的结束:当该进程死亡时,也不重新启动该进程。实际上,只有在系统被引导后,并从单用户方式进入多用户方式时,这些登记项才被处理;如果系统的默认运行级设置为2(即多用户方式),那么这些登记项在系统引导后将马上被处理。 
  3、initdefault:指定系统的默认运行级。系统启动时,init将首先查找该登记项。如果存在init将据此决定系统最初要进入的运行级。具体来说,init将指定登记项“run_level"字段中的最大数字(即最高运行级)为当前系统的默认运行级;如果该字段为空,那么将其解释为“0123456”,并以“6”作为默认运行级。如果不存在该登记项,那么init将要求用户在系统启动时指定一个最初的运行级。 
  4、off:如果相应的进程正在运行,那么就发出一个警告信号,等待20秒后,再通过杀死信号强行终止该进程。如果相应的进程并不存在那么就忽略该登记项。 
  5、once:启动相应的进程,但不等待该进程结束便继续处理/etc/inittab文件中的下一个登记项;当该进程死亡时,init也不重新启动该进程。注意:在从一个运行级进入另一个运行级时,如果相应的进程仍然在运行,那么init就不重新启动该进程。 
  6、ondemand:与“respawn”的功能完全相同,但只用于运行级为a、b或c的登记项。 
  7、powerfail:只在init接收到电源失败信号时执行相应的进程,但不等待该进程结束。 
  8、powerwait:只在init接收到电源失败信号时执行相应的进程,并在继续对/etc/inittab文件进行任何处理前等待该进程结束。 
  9、respawn:如果相应的进程还不存在,那么init就启动该进程,同时不等待该进程的结束就继续扫描/etc/inittab文件;当该进程死亡时,init将重新启动该进程。如果相应的进程已经存在,那么init将忽略该登记项并继续扫描/etc/inittab文件。 
  10、sysinit:只有在启动或重新启动系统并首先进入单用户时,init才执行这些登记项。而在系统从运行级1-6进入单用户方式时,init并不执行这些登记项。"action”字段为“sysinit”的登记项在“run_level”字段不指定任何运行级。 
  11、wait:启动进程并等待其结束,然后再处理/etc/inittab文件中的下一个登记项。

   
  process   所要执行的shell命令。任何合法的shell语法均适用于该字段。 

inittab详细介绍

init进程是系统中所有进程的父进程,init进程繁衍出完成通常操作所需的子进程,这些操作包括:设置机器名、检查和安装磁盘及文件系统、启动系统日志、配置网络接口并启动网络和邮件服务,启动打印服务等。Solaris中init进程的主要任务是按照inittab文件所提供的信息创建进程,由于进行系统初始化的那些进程都由init创建,所以init进程也称为系统初始化进程。

下面具体说明inittab文件的格式。

  inittab文件中每一记录都从新的一行开始,每个记录项最多可有512个字符,每一项的格式通常如下:id:rstate:action:process,下面分别解释。

  1. id字段是最多4个字符的字符串,用来唯一标志表项。

  2. rstate(run state)字段定义该记录项被调用时的运行级别,rstate可以由一个或多个运行级别构成,也可以是空,空则代表运行级别0~6。当请求init改变运行级别时,那些rstate字段中不包括新运行级别的进程将收到SIGTERM警告信号,并且最后被杀死;只有a、b、c启动的命令外(a、b、c不是真正的运行级别)

  3.action字段告诉init执行的动作,即如何处理process字段指定的进程,action字段允许的值及对应的动作分别为:

  1)respawn:如果process字段指定的进程不存在,则启动该进程,init不等待处理结束,而是继续扫描inittab文件中的后续进程,当这样的进程终止时,init会重新启动它,如果这样的进程已存在,则什么也不做。

  2)wait:启动process字段指定的进程,并等到处理结束才去处理inittab中的下一记录项。

  3)once:启动process字段指定的进程,不等待处理结束就去处理下一记录项。当这样的进程终止时,也不再重新启动它,在进入新的运行级别时,如果这样的进程仍在运行,init也不重新启动它。

  4)boot:只有在系统启动时,init才处理这样的记录项,启动相应进程,并不等待处理结束就去处理下一个记录项。当这样的进程终止时,系统也不重启它。

  5)bootwait:系统启动后,当第一次从单用户模式

OSW的更多相关文章

  1. linux 下一个 osw先从操作系统和标准脚本主动发起

    linux 下一个 osw与操作系统的引导和启动标准的脚本.osw它指的是--os watcher,这是一个显示器os这些指标shell脚本.osw监测数据一般使用oracle技能评估os资源的使用, ...

  2. OSW 快速安装部署

    关于在运行Oracle的环境下部署OSW具体好处不再多说,只需要知晓,在日常Oracle定位各类故障,osw的数据可以协助诊断问题.MOS很多文档也多处提到需要osw的监控数据. 一.前期资料准备 1 ...

  3. 完整OSW安装方法

    完整OSW安装方法(如果数据库是rac,一定要记得第5步,要不收集不到私网的信息): OSW介质见附件 1.上传介质到 /home/oracle 2.oracle用户将压缩包解压到归档arch目录下( ...

  4. Windows下也能够使用osw追朔系统历史性能

    1.Windows系统历史性能分析困难背景 在Linux/Unix上.要追朔历史性能,一般採用部署nmon进行性能监控採集与存储的方式实现.可是却没有在Windows上的版本号. Windows系统假 ...

  5. 详细介绍Windows下也能够使用osw性能升级历史

    1.Windows系统历史性能分析困难背景 在Linux/Unix上.要追朔历史性能,一般採用部署nmon进行性能监控採集与存储的方式实现.可是却没有在Windows上的版本号. Windows系统假 ...

  6. Linux监控工具介绍系列——OSWatcher Black Box

      OSWatcher Balck Box简介 OSWatcher Black Box (oswbb)是Oracle开发.提供的一个小巧,但是实用.强大的系统工具,它可以用来抓取操作系统的性能指标,用 ...

  7. Xamarin.iOS开发初体验

    aaarticlea/png;base64,iVBORw0KGgoAAAANSUhEUgAAAKwAAAA+CAIAAAA5/WfHAAAJrklEQVR4nO2c/VdTRxrH+wfdU84pW0

  8. java web学习总结(三十) -------------------JSTL表达式

    一.JSTL标签库介绍 JSTL标签库的使用是为弥补html标签的不足,规范自定义标签的使用而诞生的.使用JSLT标签的目的就是不希望在jsp页面中出现java逻辑代码 二.JSTL标签库的分类 核心 ...

  9. java socket收发http协议内容

    来自:https://www.oschina.net/code/snippet_2009881_48232 import java.io.BufferedReader; import java.io. ...

随机推荐

  1. VMware虚拟机上安装linux和克隆

    虚拟机上安装好一台linux 系统后.为了高速搭建hadoop集群.须要再安装几个linux系统,比較笨的办法能够又一次用ios 镜像文件进行安装.可是又一次安装须要又一次配置一些信息并且安装时间比較 ...

  2. Tomcat-公布WEB应用

    1.定义Context 进入管理WEB应用的URL是http://localhost:8080/manager/html. username与password的设置:打开tomcat安装文件夹中的co ...

  3. vue 自定义报警组件

    1.自定义报警组件 Alarm.vue <!-- 报警 组件 --> <template> <div class="alarm"> <!- ...

  4. convnet源代码解析(一):基础准备

    Jeremy Lin ConvNet是一个基于GPU实现的卷积神经网络开源码(C++11).是由多伦多大学的Geoffrey Hinton深度学习团队编写的,它的最初版本号是Hinton的学生Alex ...

  5. Nginx系列三 内存池的设计

    Nginx的高性能的是用非常多细节来保证,epoll下的多路io异步通知.阶段细分化的异步事件驱动,那么在内存管理这一块也是用了非常大心血.上一篇我们讲到了slab分配器,我们能够能够看到那是对共享内 ...

  6. ReLu(修正线性单元)、sigmoid和tahh的比较

    不多说,直接上干货! 最近,在看论文,提及到这个修正线性单元(Rectified linear unit,ReLU). Deep Sparse Rectifier Neural Networks Re ...

  7. mongodb Failed to start LSB: An object/document-oriented dat

    解决办法: cd /var/lib sudo rm -rf ./mongodb sudo mkdir mongodb sudo chown -R mongodb mongodb/ sudo servi ...

  8. <s:property>的用法(jsp获取action中的值或者方法)

    1,访问Action值栈中的普通属性:  <s:property value="attrName"/>  2,访问Action值栈中的对象属性(要有get set方法) ...

  9. Delphi的goto语法

    今天第一次主要到Delphi也有goto语法,特别是其奇怪的label声明.估计主要是用来跳出多重循环,而且还真有人使用这种方式.记个笔记: procedure TForm1.btn3Click(Se ...

  10. B. Flag of Berland

    B. Flag of Berland time limit per test 1 second memory limit per test 256 megabytes input standard i ...