OSWatcher.sh脚本说明

2023-11-06

OSWatcher.sh脚本位于oswbb目录下(Oracle 19c数据库中脚本的路径是:
/u01/app/oracle/product/19.0.0/dbhome_1/suptools/tfa/release/tfa_home/ext/oswbb/),由脚本startOSWbb.sh和stopOSWbb.sh来调用启动和停止它。

1. startOSWbb.sh脚本和stopOSWbb.sh脚本

startOSWbb.sh脚本有4个参数,如下所示:

# $1 = snapshot interval in seconds.
# $2 = the number of hours of archive data to store.
# $3 = (optional) the name of the zip or compress utility you want
#      OSWbb to use to zip up the archive files upon completion. If
#      no zipping is desired set this parameter = NONE. This will
#      allow for the $4 parameter below to be recognized as both $3 
#      and $4 are optional parameters.
# $4 = (optional) the fully qualified name of the archive directory
#      where you want oswbb to save your data. This option can be used
#      instead of setting the UNIX environment variable OSWBB_ARCHIVE_DEST
#      If this parameter is not set oswbb will look for the UNIX
#      environment variable OSWBB_ARCHIVE_DEST. If neither are set
#      the archive directory will remain in the default location under
#      the oswbb directory

./OSWatcher.sh $1 $2 $3 $4 &

第1个参数$1指定快照的时间间隔,即每隔$1秒就采样一次数据,默认值是30秒
第2个参数$2指定保存的每小时的归档数据的数量,即只保存最近的$2小时的数据,默认是48小时
第3个参数$3指定用来压缩归档文件的工具名称
第4个参数$4指定存储数据的归档目录,也可以直接设置OSWBB_ARCHIVE_DEST环境变量来指定该目录,默认是当前目录下的archive目录

如下示例每隔60秒采样一次数据,只保存最近24小时的采样数据,使用gzip对每小时采集的数据进行压缩,数据存放在/u01/dump/archive目录下:
./startOSWbb.sh 60 24 gzip /u01/dump/archive

停止OSWatcher的脚本:
./stopOSWbb.sh


2. 文件管理脚本OSWatcherFM.sh

脚本OSWatcher.sh启动时,会调用文件清理脚本OSWatcherFM.sh在后台对采集的每小时的数据文件进行管理。

./OSWatcherFM.sh $archiveInterval $OSWBB_ARCHIVE_DEST &

OSWatcherFM.sh脚本每分钟扫描一次收集的数据文件的数量,删除超过startOSWbb.sh脚本参数$3指定时间(默认48小时)的数据。

numberOfFiles=`ls -t $2/oswtop | wc -l`
numberToDelete=`expr $numberOfFiles - $archiveInterval`
if [ $numberOfFiles -gt $archiveInterval ]
  then
    ls -t $2/oswtop/* | tail -$numberToDelete | xargs rm
fi

3. OSWatcher.sh脚本

OSWatcher.sh脚本每隔startOSWbb.sh脚本参数$1指定的快照时间间隔执行一次采样数据的命令,如下所示:

until test 0 -eq 1
do
echo "oswbb heartbeat:"`date`
 hour=`date +'%y.%m.%d.%H00.dat'
 
 # VMSTAT
 # MPSTAT
 # NETSTAT
 # IOSTAT
 # LINUX NFS IOSTAT
 # IFCONFIG
 # TOP
 # PS -ELF
 # Additional Linux Only Collection
 ##./oswsub.sh $OSWBB_ARCHIVE_DEST/oswmeminfo/${hostn}_meminfo_$hour "$MEMINFO" $oswgCompliance &
 ##./oswsub.sh $OSWBB_ARCHIVE_DEST/oswslabinfo/${hostn}_slabinfo_$hour "$SLABINFO" $oswgCompliance &
 # EXADATA
 # Run traceroute for private networks if file private.net exists
 # Run any extra commands in file extras.txt if that file exists
 
 lasthour=$hour
 sleep $snapshotInterval
done

其中在Linux系统中采集数据的主要命令如下:

case $PLATFORM in
  Linux)
    IOSTAT='iostat -xk 1 3'
    NFSSTAT='iostat -nk 1 3'
    VMSTAT='vmstat 1 3'
    TOP='eval top -b -n 1 | head -50'
    PSELF='ps -elf'
    MPSTAT='mpstat -P ALL 1 2'
    MEMINFO='cat /proc/meminfo'
    SLABINFO='cat /proc/slabinfo'
    IFCONFIG='ifconfig -a'
    TRACERT="traceroute $loopback"
 

另外,可以在oswbb目录下自定义一个extras.txt文件,将要采集数据的脚本写在该文件中。OSWatcher.sh脚本读取和执行extras.txt文件中的脚本的代码如下:

if [ -f extras.txt ]; then
q=1
exec 9<&0 < extras.txt
while read myline
do
  xshell=`echo $myline | awk '{print $1}'`
  xcmd=`echo $myline | awk '{print $2}'`
  xdir=`echo $myline | awk '{print $3}'`
  xparm1=`echo $myline | awk '{print $4}'`
  xparm2=`echo $myline | awk '{print $5}'`
  xparm3=`echo $myline | awk '{print $6}'`
  xparm4=`echo $myline | awk '{print $7}'`
  xparm5=`echo $myline | awk '{print $8}'`
  if [ -n "$xshell" ]; then

    if [ $xshell != "#" ]; then
      eval array$q=$q
      eval xshell$q=$xshell
      eval xcmd$q=$xcmd
      eval xdir$q=$xdir

#     Create log subdirectories if they don't exist.

      if [ ! -d $OSWBB_ARCHIVE_DEST/$xdir ]; then
        mkdir -p $OSWBB_ARCHIVE_DEST/$xdir
      fi

      eval xparm1$q=$xparm1
      eval xparm2$q=$xparm2
      eval xparm3$q=$xparm3
      eval xparm4$q=$xparm4
      eval xparm5$q=$xparm5

      qMax=$q
      q=`expr $q + 1`
    fi

  fi

done
exec 0<&9 9<&-

######################################################################
# Run any extra commands in file extras.txt if that file exists
######################################################################
if [ $qMax -gt $ZERO ]; then
a=1

while [ "$a" -le "$qMax" ]
do


  if [ $hour != $lasthour ]; then

    echo $PLATFORM OSWbb $version  >> $OSWBB_ARCHIVE_DEST/`eval echo '$xdir'$a`/${hostn}_`eval echo '$xcmd'$a`_$hour

    if [ $zipfiles = 1 ]; then
      if [ -f  $OSWBB_ARCHIVE_DEST/`eval echo  '$xdir'$a`/${hostn}_`eval echo  '$xcmd'$a`_$lasthour ]; then
        $zip $OSWBB_ARCHIVE_DEST/`eval echo  '$xdir'$a`/${hostn}_`eval echo  '$xcmd'$a`_$lasthour &
      fi
    fi
 fi
  
 ./`eval echo  '$xshell'$a` $OSWBB_ARCHIVE_DEST/`eval echo  '$xdir'$a`/${hostn}_`eval echo  '$xcmd'$a`_$hour &

 a=`expr $a + 1`

done

fi


4. 解析OSWatcher.sh脚本采集的数据生成图形

可以利用oswbb目录下的jar包oswbba.jar对采集的数据进行解析,生成图形和分析数据。
# xdpyinfo
name of diplay: :0

# export DISPLAY=:0
# java -jar oswbba.jar -i /u01/app/grid/tfa/repository/suptools/rac1/oswbb/grid/archive

在这里插入图片描述

生成的分析数据文件analysis.txt中的信息比较全面,主要内容如下:

############################################################################
# Contents Of This Report:
#
# Section 1: System Status
# Section 2: System Slowdowns 
#   Section 2.1: System Slowdown RCA Process Level Ordered By Impact
# Section 3: System General Findings
# Section 4: CPU Detailed Findings
#   Section 4.1: CPU Run Queue:
#   Section 4.2: CPU Utilization: Percent Busy
#   Section 4.3: CPU Utilization: Percent Sys
# Section 5: Memory Detailed Findings
#   Section 5.1: Memory: Process Swap Queue 
#   Section 5.2: Memory: Scan Rate 
#   Section 5.3  Memory: Page In: 
#   Section 5.4  Memory: Page Out: 
#   Section 5.5  Memory: Page Tables (Linux only): 
#   Section 5.6: Top 5 Memory Consuming Processes Beginning
#   Section 5.7: Top 5 Memory Consuming Processes Ending
# Section 6: Disk Detailed Findings
#   Section 6.1: Disk Percent Utilization Findings
#   Section 6.2: Disk Service Times Findings
#   Section 6.3: Disk Wait Queue Times Findings
#   Section 6.4: Disk Throughput Findings
#   Section 6.5: Disk Reads Per Second
#   Section 6.6: Disk Writes Per Second
#   Section 6.7: Disk Percent CPU waiting on I/O
# Section 7: Network Detailed Findings
#   Section 7.1  Network Data Link Findings
#   Section 7.2: Network IP Findings
#   Section 7.3: Network UDP Findings
#   Section 7.4: Network TCP Findings
# Section 8: Process Detailed Findings
#   Section 8.1: PS Process Summary Ordered By Time
#   Section 8.2: PS for Processes With Status = D or T Ordered By Time
#   Section 8.3: PS for (Processes with CPU > 0) When System Idle CPU < 30% Ordered By Time
#   Section 8.4: Top VSZ Processes Increasing Memory Per Snapshot
#   Section 8.5: Top RSS Processes Increasing Memory Per Snapshot
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

OSWatcher.sh脚本说明 的相关文章

  • 如何计算选择查询的最佳获取大小

    在 JDBC 中 默认获取大小为 10 但我想当我有一百万行时 这不是最佳获取大小 据我所知 获取大小太低会降低性能 但如果获取大小太高也会降低性能 我怎样才能找到最佳尺寸 这对数据库端有影响吗 它会占用大量内存吗 如果您的行很大 请记住
  • 从 csv 文件中删除特定列,保持输出上的相同结构[重复]

    这个问题在这里已经有答案了 我想删除第 3 列并在输出文件中保留相同的结构 输入文件 12 10 10 10 10 1 12 23 1 45 6 7 11 2 33 45 1 2 1 2 34 5 6 I tried awk F 3 fil
  • 仅打印“docker-container ls -la”输出中的“Names”列

    发出时docker container ls la命令 输出如下所示 CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES a67f0c2b1769 busybox tail f dev
  • 自动提取数据 - Oracle SQL Developer

    我通过 SQL Developer 连接到 Oracle 数据库 我想编写一个返回每月数据集的查询 然后将该数据提取到分隔文本文件中 我知道如何做到这一点就好了 我想知道是否有一种方法可以编写一个脚本来运行查询并在一年内逐月提取数据 这样我
  • 如何禁用 GNOME 桌面屏幕锁定? [关闭]

    Closed 这个问题不符合堆栈溢出指南 help closed questions 目前不接受答案 如何阻止 GNOME 桌面在几分钟空闲时间后锁定屏幕 我已经尝试过官方手册了在红帽 https access redhat com doc
  • 如何使用 Hibernate (EntityManager) 或 JPA 调用 Oracle 函数或过程

    我有一个返回 sys refcursor 的 Oracle 函数 当我使用 Hibernate 调用该函数时 出现以下异常 Hibernate call my function org hibernate exception Generic
  • 大多数 Linux 系统头文件与 C++ 兼容吗?

    大多数 Linux 系统头文件 API C 兼容吗 今天我试图做这样的事情 include
  • 无法从 jenkins 作为后台进程运行 nohup 命令

    更新 根据下面的讨论 我编辑了我的答案以获得更准确的描述 我正在尝试从詹金斯运行 nohup 命令 完整的命令是 nohup java jar home jar server process 0 35 jar prod gt gt var
  • PLSql 返回值

    我再次使用一些 PLSql 我想知道 是否有任何方法可以像选择一样使用以下函数 而不必将其转换为函数或过程 这样我就可以从包含它的脚本中看到代码 代码如下 DECLARE outpt VARCHAR2 1000 flow rI VARCHA
  • Android 时钟滴答数 [赫兹]

    关于 proc pid stat 中应用程序的总 CPU 使用率 https stackoverflow com questions 16726779 total cpu usage of an application from proc
  • linux perf:如何解释和查找热点

    我尝试了linux perf https perf wiki kernel org index php Main Page今天很实用 但在解释其结果时遇到了困难 我习惯了 valgrind 的 callgrind 这当然是与基于采样的 pe
  • arm64和armhf有什么区别?

    Raspberry Pi Type 3 具有 64 位 CPU 但其架构不是arm64 but armhf 有什么区别arm64 and armhf armhf代表 arm hard float 是给定的名称Debian 端口 https
  • 在Oracle中使用IW和MM

    我使用 IW 表示每周结果 使用 MM 表示每月结果 但我总是收到错误 ORA 00979 not a GROUP BY expression 00979 00000 not a GROUP BY expression 我的疑问是这些 We
  • ORA-12728: 正则表达式中的范围无效

    我想检查表中是否插入了有效的电话号码 所以我的触发代码在这里 select start index into mob index from gmarg mobile operators where START INDEX substr ne
  • Linux 内核标识符中前导和尾随下划线的含义是什么?

    我不断遇到一些小约定 比如 KERNEL Are the 在这种情况下 是内核开发人员使用的命名约定 还是以这种方式命名宏的语法特定原因 整个代码中有很多这样的例子 例如 某些函数和变量以 甚至 这有什么具体原因吗 它似乎被广泛使用 我只需
  • 将 PDF 转换为 600dpi 的 TIFF 和 jpg 96 dpi

    我想使用 ImageMagick 从 Python 脚本将 pdf 转换为 600 dpi 的 tiff 和 96 dpi 的 jpg 我使用 imagemagick 命令行完成了这项任务 但我想使用python中的Imagemagick将
  • os.Mkdir 和 os.MkdirAll 权限

    我正在尝试在程序开始时创建一个日志文件 我需要检查是否 log如果不创建目录 则目录存在 然后继续创建日志文件 好吧 我尝试使用os Mkdir 也os MkdirAll 但无论我在第二个参数中输入什么值 我都会得到一个没有权限的锁定文件夹
  • 存储过程错误 PLS-00201:必须声明标识符“UTL_HTTP”

    我正在尝试创建一个从服务请求一些 XML 数据的存储过程 我在网上找到了几个示例 它们都指向使用这个 UTL HTTP 包 但是 每次我尝试用它来编译我的存储过程时 我都会收到错误 PLS 00201 identifier UTL HTTP
  • 如何在apache 2.4.6上安装apxs模块

    我刚刚用过apt get update我的 apache 已更新为2 4 6 我想安装 apxs 来编译模块 但收到此错误 The following packages have unmet dependencies apache2 pre
  • 在 Linux 上使用多处理时,TKinter 窗口不会出现

    我想生成另一个进程来异步显示错误消息 同时应用程序的其余部分继续 我正在使用multiprocessingPython 2 6 中的模块来创建进程 我试图用以下命令显示窗口TKinter 这段代码在Windows上运行良好 但在Linux上

随机推荐

  • 使用JavaMail发送邮件时嵌入公司logo图片

    使用JavaMail发送邮件时嵌入公司logo图片 第一种方式 img 标签和 logo 图片链接 第二种方式 使用 img 标签和图片 base64 字符串 第三种方式 推荐 将 logo 当做附件一起发送并设置 ContentID 再使
  • [1120]Maven依赖冲突解决之exclusions

    1 背景 1 作为java生态下开发者 往往需要使用大量线程的第三方库 一般都是以jar包形式存在 2 maven作为事实上主流的jar包依赖管理工具 Idea和Eclipse都支持创建maven工程来管理jar包依赖 3 使用maven进
  • C语言实现原码补码输出

    今天复习了一下C中的原码补码的知识 顺便编程使用for while do while goto recursive 实现了补码和原码的输出 核心思想 借助一个字符串数组 将得到的原码和补码存储到相应数组中去 在计算原码的时候 由于存在负数的
  • 单片机C语言基础

    目录 前言 一 C语言基础 1 1 逻辑运算 1 2 字长定义 1 3 布尔型变量 1 4 符号 1 5 位段 1 6 typedef关键字 1 7 volatile关键字 二 代码规则 前言 介绍一下单片机开发的C语言使用 个人会慢慢完善
  • 第四次 python

    元组练习题 tup nihao wohao dajiahao a 计算元组长度并输出 b 获取元组第2个元素并输出 c 获取元素第2 3个元素并输出 d 使用for循环遍历输出元组 e 使用for len range输出元组的索引 f 将元
  • JAVA实现用户输出正整数重复出现的次数并打印(最大数字不超过10)

    package day1 实现用户输出正整数重复出现的次数并打印 public class TestSameNum public static void main String args int arr 1 2 3 4 5 6 7 1 2
  • vue使用动态样式与计算属性实现多变量判断

    一 动态class绑定 代码 class的计算属性着重于减少页面内含大量逻辑判断导致代码阅读性差
  • 垃圾分类图片数据集分享-约10w张数据集

    1 获取方式 点赞本博客 评论区留邮箱 博主在会发送 私信博主 访问的人太多了 需要私信联系 截至到2021 03 30评论区所有邮箱已无偿发送 图片数据集直接留邮箱即可 2 问题描述 最近在做一个相关项目 从网上整理了许许多多的有关于垃圾
  • 多维时序

    多维时序 MATLAB实现DNN深度神经网络多变量时间序列预测 考虑历史特征的影响 多指标 多图输出 目录 多维时序 MATLAB实现DNN深度神经网络多变量时间序列预测 考虑历史特征的影响 多指标 多图输出 预测效果 基本介绍 模型结构
  • .Net Core with 微服务 - 架构图

    上一次我们简单介绍了什么是微服务 NET Core with 微服务 什么是微服务 介绍了微服务的来龙去脉 一些基础性的概念 有大佬在评论区指出说这根本不是微服务 由于本人的能力有限 大概也只能理解到这个层次 先不管它到底是不是微服务吧 既
  • 「五度易链」助力园区招商,引优质企业 精准甄别 全程管理,促产业高质发展

    近年 无数产业园区已迈入数字化转型阶段 大数据招商被深度应用 缺乏招商线索的局面已一去不返 但面对鳞萃比栉 纷繁芜杂的各种招商标的信息 又是让园区招商工作者眼花缭乱 举棋不定 难以抉择 那么该如何进行项目甄别 判断企业落地价值呢 五度易链
  • 快手短视频微信小程序端自动下单工具

    快手小店微信小程序虽然关闭了 但是还有个快手短视频 其实就是快手小店的产品 在直播售卖 抓包短视频直播下单 根据小程序端下单 写个自动下单工具 众所周知 快手CK 很长时间都有效 打开软件 打开PC微信 快手短视频小程序 进入直播 随便找一
  • Wolfram Mathematica 安装与使用

    1 Wolfram Mathematica 9 安装 各大网站几乎都有Wolfram Mathematica 9学习软件 大学 高等数学 里面涉及的的函数图形几乎都可以使用GeoGebra 5来做图 GeoGebra的功能十分强大 而且是免
  • Centos 8二进制安装Mysql-8.0.23

    1 mysql tar包的下载 下载官网 https downloads mysql com archives community 2 解压 root cent8 yzil tar xf mysql 8 0 23 linux glibc2
  • 基于NB-IoT物联网智能运维箱整体解决方案

    一 方案背景 雪亮工程 智慧交通 水利监控 环保监控等系统大多安装于户外 设备量级大 分布广 易受到恶劣环境和人为破坏等因素影响 导致系统故障率高 可用性差 传统人工维保存在维护成本高 效率低的问题 难以保证设备的高在线率 在物联网 边缘计
  • 代码行数统计小工具

    一 先下载好SourceCounter小工具 解压 然后直接打开文件夹中的SourceCounter exe 如果没有找到此工具的下载链接 点这里下载 二 选择代码类型 勾选上所有类型 三 双击点开后 选择文件夹 就可以直接统计出字数了
  • 前端笔记(4)JavaScript宏观与微观任务

    宏观和微观任务 在 ES3 和更早的版本中 JavaScript 本身还没有异步执行代码的能力 这也就意味着 宿主环境传递给 JavaScript 引擎一段代码 引擎就把代码直接顺次执行了 这个任务也就是宿主发起的任务 但是 在 ES5 之
  • 顺序表的基本操作(C语言实现)

    顺序表 前言 本文主要讲线性表的其中一种 那就是顺序表 顺序表就是采用顺序储存方式来存储数据 所谓顺序存储 就是数据在内存上的地址同样为连续储存 中间不允许有空 有间隔 顺序表的优点在于支持随机访问 就是通过下标来访问元素 缺点是插入 删除
  • iBatis resultMap报错 nullValue完美解决

    错误信息 SQLErrorCodesFactory Database product name cached for DataSource org apache commons dbcp BasicDataSource 19c5048 na
  • OSWatcher.sh脚本说明

    OSWatcher sh脚本位于oswbb目录下 Oracle 19c数据库中脚本的路径是 u01 app oracle product 19 0 0 dbhome 1 suptools tfa release tfa home ext o