OsWatcher 使用详解
软件下载地址:
https://support.oracle.com/epmos/faces/DocumentDisplay?_afrLoop=520996062954556&id=301137.1&_afrWindowMode=0&_adf.ctrl-state=vmqzfjav6_247#aref_section32
当我们向SR提出服务请求及,常常要求提供AWR、ASH、RDA、OSW,OSW是什么?怎么用?通过学习官网相关文档记录如下:
一、OSW是什么?
OSWatcher Black Box, 简称OSW,是oracle提供的一个小但是非常有用的工具,它通过调用OS自己提供的命令来记录OS运行时的一些性能参数,比如CPU/Memory/Swap/Network IO/Disk IO相关的信息。
二、为什么要部署OSW ?
OSW并不是强制要部署的,并且有很多工具可以提供一样的功能,比如说mrtg, cacti, sar, nmon, enterprise manger grid control,既然有这么多工具可以做,我为什么还要部署OSW呢,因为OSW有N多好处:
1. 它比较容易部署,并且容易删除。
2. 资源消耗比较小,不管是从CPU,内存还是磁盘空间来说(基本上可以忽略)。
3. 平时不需要维护,并且在发生问题时可以帮我们迅速定位问题是否发生在OS端
数据库是运行在OS之上的,如果OS发生了异常,那么数据库肯定也会受到影响;如果我们仅仅从数据库的角度去分析这样的问题时,很难有个好结果,N多时候都说是BUG或者说业务量大等一些结果来忽悠我们的用户或领导,但是实际情况很可能是OS出了问题导致数据库出现异常,如果直接说OS出了问题,那么主机管理员肯定不干,让你给出证据,OSW就是我们的证据,有朋友可能会问,主机是主机的人管的,我没权限能安装OSW吗?答案是肯定的,不需要ROOT权限!
三、部署OSW有那些实际用处?
在平时的工作中,有一类问题很常见:在过去的某个时间段,数据库发生了一些问题,我们往往要找到问题的原因(root cause),之后才能做某些改动来避免它再次发生。对于这样的问题,OSW是非常有用的,举几个小例子:
1.发生的问题并不是由于OS的异常引起的。这时候如果我们有在发生问题的时候收集的OSW数据,我们就可以立刻排除OS方面,把注意力投向DB/应用层。
2.对于ORACLE Database Performance的问题,我们往往第一个方向就是排除OS的问题。比如OS在某个时间段发生了很频繁的Swapping,那么内存相关的操作就会受到影响,数据库性能也会下降,表现在AWR中就会发现数据库有latch/mutex相关的等待。
3.应用在某个时间段响应非常慢。AWR显示数据库非常的空闲,top5等待事件也都是很正常;从CPU,内存,Swap, Disk IO方面看也都很正常。后来发现OSW中关于网络的数据显示,发生问题时有非常多的丢包现象。如果当时没有收集到OSW的数据,那么基本上是不可能找到原因了。
4.又比如某些ORA-04030的错误或者CJQ0, P00X, J00X进程不能启动的问题,如果我们部署了OSW,那么我们就能立刻知道这些错误是不是由于OS的内存短缺引起的。
5.如果某个server process莫名hung住,我们可以通过OSW的信息来看当时这个进程是不是出于suspend的状态,是不是占用了太多的CPU/Memory。
6.某些Listener hung的问题,我们也需要OSW的历史信息来进行下一步的分析。
7. Login Storm问题:客户的数据库系统突然变慢,从应用端,数据库的ASH,AWR报告中没有发现任何异常。但是通过OSW的ps的输出发现,在发生问题时, oracle 的server process比平时多了上千个。
实际上,OSW对于我们分析问题是非常有帮助的。如果当前OS上并没有部署任何的监控软件,那么强烈建议DBA来部署OSW。很多重要的生产环境都部署了OSW,在有关于DB Performance的问题时,他们往往会先提交OSW的输出。
四、大家对部署OSW的顾虑往往是什么?
1.生产环境已经正常运行了很久了,基于稳妥的考虑,不能随便安装软件
OSW的工作机制是每隔一段时间调用OS提供的一些工具,比如ps, vmstat, netstat, mpstat, top;然后把这些工具的输出打印到文件里。 它不可避免的会消耗CPU, Disk IO, Disk Space, Memory;但是这些消耗的资源都是非常少的,在大部分的系统里都是可以忽略的。只有在某些极端情况下,部署OSW才会带来负面影响:系统已经是非常的忙,CPU使用率在90%以上;磁盘的free space已经没有了。所以大家的顾虑在大部分的情况下都是不必要的,部署OSW是没有什么风险的。
五、支持的平台有哪些
AIX
Tru64
Solaris
HP-UX
Linux
六、下面讲一下如何在UNIX/LINUX上安装/部署OSW:
安装包软件可以从文档301137.1上下载OSW,具体安装步骤如下:
1.tar xvf oswbb601.tar
[oracle@dg database]$ tar xvf oswbb601.tar
oswbb/
oswbb/src/
oswbb/src/tombody.gif
oswbb/src/Thumbs.db
oswbb/src/missing_graphic.gif
oswbb/src/OSW_profile.htm
oswbb/src/watch.gif
oswbb/src/coe_logo.gif
oswbb/src/oswbba_input.txt
oswbb/tmp/
oswbb/call_du.sh
oswbb/tarupfiles.sh
oswbb/Exampleprivate.net
oswbb/vmsub.sh
oswbb/docs/
oswbb/docs/The_Analyzer/
oswbb/docs/The_Analyzer/oswbba_README.txt
oswbb/docs/The_Analyzer/OSW_Black_Box_Analyzer_Overview.pdf
oswbb/docs/The_Analyzer/oswbba_user_guide.pdf
oswbb/docs/OSWatcher_Black_Box/
oswbb/docs/OSWatcher_Black_Box/OSWatcherUserGuide.pdf
oswbb/docs/OSWatcher_Black_Box/oswbb_README.txt
oswbb/topaix.sh
oswbb/OSWatcher.sh
oswbb/pssub.sh
oswbb/nfssub.sh
oswbb/mpsub.sh
oswbb/oswrds.sh
oswbb/profile/
oswbb/oswsub.sh
oswbb/call_sar.sh
oswbb/oswnet.sh
oswbb/OSWatcherFM.sh
oswbb/analysis/
oswbb/startOSWbb.sh
oswbb/gif/
oswbb/oswib.sh
oswbb/stopOSWbb.sh
oswbb/extras.txt
oswbb/oswbba.jar
oswbb/locks/
oswbb/iosub.sh
oswbb/xtop.sh
此时会在当前目录下创建一个osbb文件夹,到此安装就完成了,相当简单,如果要删除,直接rm -f osbb即可完成删除
2.启动OSW监控
nohup ./startOSWbb.sh 180 8 & --推荐启动方式
nohup ./OSWatcher.sh 60 24 & --这种方式也可以,但目前来看只保留四个小时的日志,具体区别现在还没有整明白,希望知道的朋友留言说一下,谢谢!
此时会生成一个nohup.out文件,记录启动信息,同时会在当前目录下创建一个archive文件夹,所有的监控信息都存在archive文件夹内,要确保有足够的磁盘空间,上面这条命令的意思是在后运行,60秒收集一次,收集时长是24小时
需要注意的是:如果直接./OSWatcher.sh运行,系统默认是30稍收集一次,持续收集时间是48小时
3.停目OSW
./stopOSWbb.sh
到此安装配置简单使用都结束了,下面我们去看看archive文件夹下面都有那些文件
因为我的是虚拟内共享的自己笔记本电脑硬盘,可以看到生成了9个文件夹,都是iostat/top/wmstat等命令命令
私网间通讯检查,参考博文
https://blogs.oracle.com/database4cn/osw-oswatcher-black-box
OsWatcher 使用详解的更多相关文章
- Unix操作系统监控详解(一)
一.描述 监控在检查系统问题运行状况以及优化系统性能工作上是一个不可缺少的部分.通过操作系统监控工具监视操作系统资源的使用情况,间接地反映了各服务器程序的运行情况.根据运行结果分析可以帮助我们快速定位 ...
- Linq之旅:Linq入门详解(Linq to Objects)
示例代码下载:Linq之旅:Linq入门详解(Linq to Objects) 本博文详细介绍 .NET 3.5 中引入的重要功能:Language Integrated Query(LINQ,语言集 ...
- 架构设计:远程调用服务架构设计及zookeeper技术详解(下篇)
一.下篇开头的废话 终于开写下篇了,这也是我写远程调用框架的第三篇文章,前两篇都被博客园作为[编辑推荐]的文章,很兴奋哦,嘿嘿~~~~,本人是个很臭美的人,一定得要截图为证: 今天是2014年的第一天 ...
- EntityFramework Core 1.1 Add、Attach、Update、Remove方法如何高效使用详解
前言 我比较喜欢安静,大概和我喜欢研究和琢磨技术原因相关吧,刚好到了元旦节,这几天可以好好学习下EF Core,同时在项目当中用到EF Core,借此机会给予比较深入的理解,这里我们只讲解和EF 6. ...
- Java 字符串格式化详解
Java 字符串格式化详解 版权声明:本文为博主原创文章,未经博主允许不得转载. 微博:厉圣杰 文中如有纰漏,欢迎大家留言指出. 在 Java 的 String 类中,可以使用 format() 方法 ...
- Android Notification 详解(一)——基本操作
Android Notification 详解(一)--基本操作 版权声明:本文为博主原创文章,未经博主允许不得转载. 微博:厉圣杰 源码:AndroidDemo/Notification 文中如有纰 ...
- Android Notification 详解——基本操作
Android Notification 详解 版权声明:本文为博主原创文章,未经博主允许不得转载. 前几天项目中有用到 Android 通知相关的内容,索性把 Android Notificatio ...
- Git初探--笔记整理和Git命令详解
几个重要的概念 首先先明确几个概念: WorkPlace : 工作区 Index: 暂存区 Repository: 本地仓库/版本库 Remote: 远程仓库 当在Remote(如Github)上面c ...
- Drawable实战解析:Android XML shape 标签使用详解(apk瘦身,减少内存好帮手)
Android XML shape 标签使用详解 一个android开发者肯定懂得使用 xml 定义一个 Drawable,比如定义一个 rect 或者 circle 作为一个 View 的背景. ...
随机推荐
- Elastic 开发篇 javaAPI(4)
1.解决精确匹配问题,如果不加配置,搜索农大,会搜出“农”“大”这两个字的匹配,我们要的是“农大”,那么好了,加上一个条件搞定: MatchQuery.Type.PHRASE 完整代码: packag ...
- 某些浏览器具有dns缓存功能,大家更改域名指向,建议清理下浏览器缓存
最近遇到一个很郁闷的问题,在我们的的ngnix服务器上原来默认的网址需要更改.更改后,重启了ngnix.可是在客户端使用360浏览器打开网址.地址还是指向旧地址.直接输入服务器 IP地址转向了新地址, ...
- Linux设备树(一 概述)
一 概述 设备树(Device tree)是一套用来描述硬件属相的规则.ARM Linux采用设备树机制源于2011年3月份Linux创始人Linus Torvalds发的一封邮件,在这封邮件中他提倡 ...
- Python继承扩展内置类
继承最有趣的应用是给内置类添加功能,在之前的Contact类中,我们将联系人添加到所有联系人的列表里,如果想通过名字来搜索,那么就可以在Contact类添加一个方法用于搜索,但是这种方法实际上属于列表 ...
- saltstack API(一) 安装并测试
python3 安装api # 首先安装python3 .tgz cd Python- . ./configure make make install mv /usr/bin/python /usr/ ...
- Rancher之HA部署
sudo mkdir -p /etc/docker sudo tee /etc/docker/daemon.json <<-'EOF' { "registry-mirrors&q ...
- C++回顾day01---<C++对C的增强>
一:命名空间 二:三目运算符 (一)C语言三目运算符返回值(不可修改) (二)C++中三目运算符直接返回变量本身(可以直接进行修改) 三:C++要求所有函数必须有类型(不重要) (一)C语言允许函数无 ...
- struct sock注释
针对 struct sock 的一些注释: struct sock { /* Socket demultiplex comparisons on incoming packets. */ __u32 ...
- golang sort包使用
https://studygolang.com/static/pkgdoc/pkg/sort.htm#StringSlice.Search package main import ( "fm ...
- ZOJ - 3261 Connections in Galaxy War(并查集删边)
https://cn.vjudge.net/problem/ZOJ-3261 题意 银河系各大星球之间有不同的能量值, 并且他们之间互相有通道连接起来,可以用来传递信息,这样一旦有星球被怪兽攻击,便可 ...