AWR 是 Oracle 10g 版本 推出的新特性, 全称叫
Automatic Workload Repository-自动负载信息库, AWR 是通过对比两次快照
(snapshot)收集到的统计信息,来生成报表数据,生成的报表包括多个部分
WORKLOAD REP OS I TORY report for
DB Time 不包括 Oracle 后台进程消耗的时间。如果 DB Time 远远小于 Elapsed
时间,说明数据库比较空闲。
db time= cpu time + wait time(不包含空闲等待) (非后台进程)说白了就是
db time 就是记录的服务器花在数据库运算(非后台进程)和等待(非空闲等待)上
的时间 DB time = cpu time + all of nonidle wait event time
在 79 分钟里(其间收集了 3 次快照数据),数据库耗时 11 分钟,RDA 数据中
显示系统有 8 个逻辑 CPU(4 个物理 CPU),平均每个 CPU 耗时 1.4 分钟,
CPU 利用率只有大约 2%(1.4/79)。说明系统压力非常小。
列出下面这两个来做解释:
Report A:
Snap Id Sna p Ti m e Sessions Cur s/ Sess
--------- ------------------- -------- ---------
Begin Sna p: 4610 24-Jul-08 22:00:54 68 19.1
End Snap: 4612 24-Jul-08 23:00:25 17 1.7
Elapsed: 59. 51 (mins)
DB Time: 466. 37 (mins)
Report B:
Snap Id Sna p Ti m e Sessions Cur s/ Sess
--------- ------------------- -------- ---------
Begin Sna p: 3098 13-Nov-07 21:00:37 39 13.6
End Snap: 3102 13-Nov-07 22:00:15 4 0 16. 4
Elapsed: 59. 63 (mins)
DB Time: 19. 49 (mins)
服务器是 AIX 的系统,4 个双核 cpu,共 8 个核:
/sbin> bindprocessor -q
The availa ble pr oc essors are: 0 1 2 3 4 5 6 7
先说 Report A,在 snapshot 间隔中,总共约 60 分钟,cpu 就共有 60*8=480 分钟,DB time
为 466.37 分钟,则:
cpu 花费了 466.37 分钟在处理 Oralce 非空闲等待和运算上(比方逻辑读)
也就是说 cpu 有 466.37/480*100% 花费在处理 Oracle 的操作上,这还不包括后台进程
看 Report B,总共约 60 分钟,cpu 有 19.49/480*100% 花费在处理 Oracle 的操作上
很显然,2 中服务器的平均负载很低。
从 awr report 的 Elapsed t i m e 和 DB Time 就能大概了解 db 的负载。
评论