1、多个实例启动时间,多了内存信息。cpu个数,平台信息
2、DB CPU - CPU负载分析
如果关注数据库的性能,那么当拿到一份AWR报告的时候,最想知道的第一件事情可能就是系统资源的利用情况了,而首当其冲的,就是CPU。
而细分起来,CPU可能指的是:
1. OS级的User%,Sys%, Idle%
2. DB所占OS CPU资源的Busy%
3. DB CPU又可以分为前台所消耗的CPU和后台所消耗的CPU
如果数据库的版本是11g,那么很幸运的,这些信息在AWR报告中一目了然:
分析上面的图片,我们可以得出下面的结论:
OS级的User%,Sys%,Idle%:
OS级的%User为75.4,%Sys为2.8,%Idle为21.2,所以%Busy应该是100-21.1=78.8。
DB所占OS CPU资源的Busy%
DB占了OS CPU资源的69.1,%Busy CPU则可以通过上面的数据得到:
%Busy CPU = %Total CPU/(%Busy) * 100 = 69.1/78.8 * 100 = 87.69,和报告的87.7相吻合。如果是10g呢,则需要手工对Report里的一些数据进行计算了。
Host CPU的结果来源于DBA_HIST_OSSTAT,AWR 报告里已经帮忙整出了这段时间内的绝对数据(这里的时间单位是centi second,也就是1/100秒)
10G中是这样计算的。
%User = USER_TIME/ (BUSY_TIME+IDLE_TIME)*100
%Sys = SYS_TIME/ (BUSY_TIME+IDLE_TIME)*100
%Idle = IDLE_TIME/ (BUSY_TIME+IDLE_TIME)*100
Operating System Statistics
Statistic | Total |
NUM_LCPUS | 0 |
NUM_VCPUS | 0 |
AVG_BUSY_TIME | 101,442 |
AVG_IDLE_TIME | 371,241 |
AVG_IOWAIT_TIME | 5,460 |
AVG_SYS_TIME | 25,795 |
AVG_USER_TIME | 75,510 |
BUSY_TIME | 812,644 |
IDLE_TIME | 2,971,077 |
IOWAIT_TIME | 44,794 |
SYS_TIME | 207,429 |
USER_TIME | 605,215 |
LOAD | 0 |
OS_CPU_WAIT_TIME | 854,100 |
RSRC_MGR_CPU_WAIT_TIME | 0 |
PHYSICAL_MEMORY_BYTES | 8,589,934,592 |
NUM_CPUS | 8 |
NUM_CPU_CORES | 4 |
NUM_LCPUS: 如果显示0,是因为没有设置LPARS
NUM_VCPUS: 同上。
AVG_BUSY_TIME: BUSY_TIME / NUM_CPUS
AVG_IDLE_TIME: IDLE_TIME / NUM_CPUS
AVG_IOWAIT_TIME: IOWAIT_TIME / NUM_CPUS
AVG_SYS_TIME: SYS_TIME / NUM_CPUS
AVG_USER_TIME: USER_TIME / NUM_CPUSar o
BUSY_TIME: time equiv of %usr+%sys in sar output
IDLE_TIME: time equiv of %idle in sar
IOWAIT_TIME: time equiv of %wio in sar
SYS_TIME: time equiv of %sys in sar
USER_TIME: time equiv of %usr in sar
LOAD: 未知
OS_CPU_WAIT_TIME: supposedly time waiting on run queues
RSRC_MGR_CPU_WAIT_TIME: time waited coz of resource manager
PHYSICAL_MEMORY_BYTES: total memory in use supposedly
NUM_CPUS: number of CPUs reported by OS 操作系统CPU数
NUM_CPU_CORES: number of CPU sockets on motherboard 主板上CPU插槽数
总的elapsed time也可以用以公式计算:
BUSY_TIME + IDLE_TIME + IOWAIT TIME
或:SYS_TIME + USER_TIME + IDLE_TIME + IOWAIT_TIME
(因为BUSY_TIME = SYS_TIME+USER_TIME)