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)