目录标题
OSWbb(Oracle Scripted Workload Basic Bundle)是 Oracle 官方发布的一款轻量级、开源的性能诊断采集工具,专门用于 Oracle 数据库服务器的操作系统层性能问题排查。该工具主要由 Shell 脚本编写组成,适用于 Linux、Unix(AIX/Solaris/HP-UX)等平台。
一、OSWbb 工具作用
OSWbb 能够周期性采集操作系统层以下关键性能数据,帮助 DBA 或 Oracle 支持团队(Oracle Support):
- 分析系统瓶颈(如 CPU、内存、磁盘、网络 IO 等)
- 判断数据库运行慢的外部资源因素
- 提供与 Oracle 数据库相关的系统资源使用背景
- 补充 AWR、ASH 报告无法覆盖的系统层面信息
二、工具组成
OSWbb 安装包目录结构如下:
oswbb/
├── startOSWbb.sh # 启动脚本
├── stopOSWbb.sh # 停止采集脚本
├── oswbb.sh # 主程序
├── osw_sub_system # 采集子系统信息
├── archive # 采集数据归档目录
├── tmp # 临时文件目录
├── README.txt # 说明文件
三、采集内容
OSWbb 默认采集以下指标,每 30 秒采集一次,每小时归档一个文件:
| 模块 | 命令 | 描述 |
|---|---|---|
| CPU | top、mpstat | 各 CPU 使用率、上下文切换 |
| 内存 | vmstat | 空闲内存、分页情况 |
| I/O | iostat | 磁盘读写速率、I/O 等待 |
| 网络 | netstat、sar -n | 网络流量、连接数 |
| 进程 | ps -ef、top -b | 进程资源占用 |
| 文件系统 | df | 文件系统使用率 |
| 其他 | uptime、dmesg | 系统负载、内核日志 |
这些数据文件以 CSV 格式保存于 archive/ 目录。

四、使用方法
1. 启动采集
./startOSWbb.sh <interval> <archive_hours> [YYYYMMDDHH24MISS]
# 例如:每30秒采集一次,保存48小时归档数据
./startOSWbb.sh 30 48
interval: 每次采集的时间间隔(秒)
archive_hours: 最多保留的归档数据小时数
start_time: 可选,指定起始时间(如延迟启动)
2. 停止采集
./stopOSWbb.sh
3. 检查状态
ps -ef | grep oswbb
或查看采集数据是否在不断更新:
ls -ltr archive/*
五、数据分析方法
Oracle 提供了分析工具 OSWbba(OSWbb Analyzer),基于收集到的归档数据生成图表和报告。
- 下载安装
OSWbba.jar - 将
archive/下的数据打包到本地 - 运行:
java -jar OSWbba.jar
界面化分析包括:
- CPU使用趋势图
- I/O性能波动图
- 网络吞吐率趋势图
- swap频繁行为检测
- 瓶颈根因定位(例如 CPU、I/O 饱和)
六、适用场景
- Oracle 数据库性能问题初步诊断
- Oracle SR 支持工单要求的系统数据
- 性能回溯分析
- 定期健康检查(通过 cron 配合部署)
七、优缺点
✅ 优点:
- 无侵入、对系统开销小
- 易用性强、可脚本部署
- 支持大多数主流 Unix/Linux 系统
- 可长期运行并归档
❌ 局限:
- 不采集数据库层信息(需结合 AWR)
- 需要手动分析或额外依赖 OSWbba 工具
- 不适合秒级粒度问题分析(采样间隔有限)
八、常见问题
Q1: 如何自动在系统启动时运行?
crontab -e
@reboot /home/oracle/oswbb/startOSWbb.sh 30 48
Q2: 是否可以指定采集时间段?
可以通过指定时间启动或结合外部定时任务控制。
Q3: 采集文件体积大吗?
按默认采样频率(30秒)一小时大约几十 MB,一天数百 MB。可通过调整归档周期控制占用。
如果你有具体版本或平台使用(如 AIX、Solaris)等要求,也可以告诉我,我会补充特定平台支持细节和优化建议。
1121

被折叠的 条评论
为什么被折叠?



