診斷與分析itpub壇友提出關於為何awr cpu usage非常高
分析:
DB Name | DB Id | Instance | Inst num | Startup Time | Release | RAC |
---|---|---|---|---|---|---|
HDDB | 729144632 | hddb1 | 1 | 19-6月 -14 03:06 | 11.2.0.4.0 | YES |
Host Name | Platform | CPUs | Cores | Sockets | Memory (GB) |
---|---|---|---|---|---|
dbserver1 | AIX-Based Systems (64-bit) | 32 | 8 | 62.00 |
Snap Id | Snap Time | Sessions | Cursors/Session | Instances | |
---|---|---|---|---|---|
Begin Snap | 32367 | 13-8月 -14 10:02:33 | 587 | 4.8 | 2 |
End Snap: | 32368 | 13-8月 -14 10:31:08 | 592 | 4.9 | 2 |
Elapsed: | 28.60 (mins) | ||||
DB Time: | 1,036.10 (mins) |
Top 10 Foreground Events by Total Wait Time
Event | Waits | Total Wait Time (sec) | Wait Avg(ms) | % DB time | Wait Class |
---|---|---|---|---|---|
DB CPU | 9239.6 | 14.9 | |||
reliable message | 1,175,583 | 3924.9 | 3 | 6.3 | Other |
db file sequential read | 429,967 | 1844.8 | 4 | 3.0 | User I/O |
SQL*Net more data to client | 8,947,769 | 838.2 | 0 | 1.3 | Network |
log file sync | 195,677 | 436.8 | 2 | .7 | Commit |
gc current block 2-way | 433,667 | 331.9 | 1 | .5 | Cluster |
db file parallel read | 40,693 | 260.8 | 6 | .4 | User I/O |
gc cr block 2-way | 137,863 | 125.1 | 1 | .2 | Cluster |
SQL*Net message to client | 32,641,422 | 99.9 | 0 | .2 | Network |
gc current block busy | 28,184 | 80.6 | 3 | .1 |
Cluster |
Wait Class | Waits | Total Wait Time (sec) | Avg Wait (ms) | % DB time | Avg Active Sessions |
---|---|---|---|---|---|
DB CPU | 9,240 | 14.9 | 5.4 | ||
Other | 6,603,229 | 4,114 | 1 | 6.6 | 2.4 |
User I/O | 481,780 | 2,119 | 4 | 3.4 | 1.2 |
Network | 42,069,399 | 1,190 | 0 | 1.9 | 0.7 |
Cluster | 832,954 | 793 | 1 | 1.3 | 0.5 |
Commit | 195,677 | 437 | 2 | .7 | 0.3 |
System I/O | 571,383 | 418 | 1 | .7 | 0.2 |
Concurrency | 2,157,806 | 100 | 0 | .2 | 0.1 |
Configuration | 512 | 3 | 5 | .0 | 0.0 |
Application | 714 | 1 | 1 | .0 | 0.0 |
Host CPU
CPUs | Cores | Sockets | Load Average Begin | Load Average End | %User | %System | %WIO | %Idle |
---|---|---|---|---|---|---|---|---|
32 | 8 | 51.97 | 78.14 | 77.7 | 19.1 | 0.4 | 3.2 |
Instance CPU
%Total CPU | %Busy CPU | %DB time waiting for CPU (Resource Manager) |
---|---|---|
17.6 | 18.1 | 0.0 |
Time Model Statistics
Statistic Name | Time (s) | % of DB Time |
---|---|---|
sql execute elapsed time | 52,477.58 | 84.42 |
DB CPU | 9,239.60 | 14.86 |
parse time elapsed | 422.57 | 0.68 |
PL/SQL execution elapsed time | 41.28 | 0.07 |
hard parse elapsed time | 18.58 | 0.03 |
sequence load elapsed time | 17.49 | 0.03 |
hard parse (sharing criteria) elapsed time | 15.02 | 0.02 |
connection management call elapsed time | 12.12 | 0.02 |
hard parse (bind mismatch) elapsed time | 3.45 | 0.01 |
repeated bind elapsed time | 0.65 | 0.00 |
PL/SQL compilation elapsed time | 0.38 | 0.00 |
failed parse elapsed time | 0.05 | 0.00 |
DB time | 62,166.08 | |
background elapsed time | 2,233.68 | |
background cpu time | 404.84 |
V$SYS_TIME_MODEL
V$SYS_TIME_MODEL displays the system-wide accumulated times for various operations. The time reported is the total elapsed or CPU time (in microseconds). Any timed operation will buffer at most 5 seconds of time data. Specifically, this means that if a timed operation (such as SQL execution) takes a long period of time to perform, the data published to this view is at most missing 5 seconds of the time accumulated for the operation.
The time values are 8-byte integers and can therefore hold approximately 580,000 years worth of time before wrapping. Background process time is not included in a statistic value unless the statistic is specifically for background processes.
Column | Datatype | Description |
---|---|---|
STAT_ID | NUMBER | Statistic identifier for the time statistic |
STAT_NAME | VARCHAR2(64) | Name of the statistic (see ) |
VALUE | NUMBER | Amount of time (in microseconds) that the system has spent in this operation |
Table 9-1 V$SESS_TIME_MODEL and V$SYS_TIME_MODEL Statistics
Statistic Name | Description |
---|---|
DB Time |
Amount of elapsed time (in microseconds) spent performing Database user-level calls. This does not include the elapsed time spent on instance background processes such as PMON. |
DB CPU |
Amount of CPU time (in microseconds) spent on database user-level calls. This does not include the CPU time spent on instance background processes such as PMON. |
background elapsed time |
Amount of elapsed time (in microseconds) consumed by database background processes. |
background CPU time |
Amount of CPU time (in microseconds) consumed by database background processes. |
sequence load elapsed time |
Amount of elapsed time spent getting the next sequence number from the data dictionary. If a sequence is cached, then this is the amount of time spent replenishing the cache when it runs out. No time is charged when a sequence number is found in the cache. For non-cached sequences, some time will be charged for every nextval call. |
parse time elapsed |
Amount of elapsed time spent parsing SQL statements. It includes both soft and hard parse time. |
hard parse elapsed time |
Amount of elapsed time spent hard parsing SQL statements. |
SQL execute elapsed time |
Amount of elapsed time SQL statements are executing. Note that for select statements this also includes the amount of time spent performing fetches of query results. |
connection management call elapsed time |
Amount of elapsed time spent performing session connect and disconnect calls. |
failed parse elapsed time |
Amount of time spent performing SQL parses which ultimately fail with some parse error. |
failed parse (out of shared memory) elapsed time |
Amount of time spent performing SQL parses which ultimately fail with error ORA-04031. |
hard parse (sharing criteria) elapsed time |
Amount of elapsed time spent performing SQL hard parses when the hard parse resulted from not being able to share an existing cursor in the SQL cache. |
hard parse (bind mismatch) elapsed time |
Amount of elapsed time spent performing SQL hard parses when the hard parse resulted from bind type or bind size mismatch with an existing cursor in the SQL cache. |
PL/SQL execution elapsed time |
Amount of elapsed time spent running the PL/SQL interpreter. This does not include time spent recursively executing/parsing SQL statements or time spent recursively executing the Java VM. |
PL/SQL compilation elapsed time |
Amount of elapsed time spent running the PL/SQL compiler. |
inbound PL/SQL rpc elapsed time |
Time inbound PL/SQL remote procedure calls have spent executing. It includes all time spent recursively executing SQL and JAVA, and therefore is not easily related to "PL/SQL execution elapsed time". |
Java execution elapsed time |
Amount of elapsed time spent running the Java VM. This does not include time spent recursively executing/parsing SQL statements or time spent recursively executing PL/SQL. |
RMAN cpu time (backup/restore) |
Amount of CPU time (in microseconds) spent in RMAN backup and restore operations. |
repeated bind elapsed time |
Amount of elapsed time spent giving new values to bind variables (rebinding). |
1) background elapsed time 2) background cpu time 3) RMAN cpu time (backup/restore) 1) DB time 2) DB CPU 2) connection management call elapsed time 2) sequence load elapsed time 2) sql execute elapsed time 2) parse time elapsed 3) hard parse elapsed time 4) hard parse (sharing criteria) elapsed time 5) hard parse (bind mismatch) elapsed time 3) failed parse elapsed time 4) failed parse (out of shared memory) elapsed time 2) PL/SQL execution elapsed time 2) inbound PL/SQL rpc elapsed time 2) PL/SQL compilation elapsed time 2) Java execution elapsed time 2) repeated bind elapsed time
-
Children do not necessarily add up to the parent.(子項不一定會累加到父項)
-
Children are not necessarily exclusive (that is, it is possible that they overlap).(子項之間不是互斥的,即可能子項之間有重疊計算部分)
-
The union of children does not necessarily cover the whole of the parent.(子項合集並不一定會包括或覆蓋整個父項,即父項還可能包括其它的未列出來的子項)
SQL Statistics
SQL ordered by Elapsed Time
- Resources reported for PL/SQL code includes the resources used by all SQL statements called by the code.
- % Total DB Time is the Elapsed Time of the SQL statement divided into the Total Database Time multiplied by 100
- %Total - Elapsed Time as a percentage of Total DB time
- %CPU - CPU Time as a percentage of Elapsed Time
- %IO - User I/O Time as a percentage of Elapsed Time
- Captured SQL account for 82.7% of Total DB Time (s): 62,166
- Captured PL/SQL account for 0.0% of Total DB Time (s): 62,166
Elapsed Time (s) | Executions | Elapsed Time per Exec (s) | %Total | %CPU | %IO | SQL Id | SQL Module | SQL Text |
---|---|---|---|---|---|---|---|---|
15,434.99 | 10,719 | 1.44 | 24.83 | 15.49 | 0.00 | select , aa.title, aa.con... | ||
12,280.97 | 10,704 | 1.15 | 19.76 | 14.26 | 0.00 | select * from ( select , ... | ||
7,623.18 | 5,587 | 1.36 | 12.26 | 16.01 | 0.00 | select , aa.title, aa.con... | ||
6,119.31 | 5,578 | 1.10 | 9.84 | 14.74 | 0.00 | select * from ( select , ... | ||
1,237.11 | 170 | 7.28 | 1.99 | 17.53 | 0.00 | select count(t.business_id) nu... | ||
1,161.12 | 3,589 | 0.32 | 1.87 | 19.46 | 0.00 | select as id0_... | ||
912.41 | 119,289 | 0.01 | 1.47 | 2.46 | 84.38 | select as id4_... | ||
616.80 | 1,435,837 | 0.00 | 0.99 | 17.73 | 0.00 | select as id12... | ||
601.76 | 473 | 1.27 | 0.97 | 17.96 | 0.00 | select , aa.title, aa.con... | ||
581.22 | 4,662 | 0.12 | 0.93 | 24.05 | 0.00 | select as id12... |
資料庫非常繁忙,但佔用物理CPU比例不高,且主機CPU使用很高,可以從主機導面進行診斷
How to Interpret the OS stats section of an AWR report (文件 ID 762526.1)
AWR Report Shows Huge Numbers For Av/Rd (文件 ID 465106.1)
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/29119536/viewspace-1254100/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 9. Oracle常用分析診斷工具——9.1. AWROracle
- 公司某資料子系統定期cpu過高的診斷
- 【只與自己有關】人往高處走?何為高?何為低? 高低在哪裡?
- 一次.net code中的placeholder導致的高cpu診斷
- 資料庫異常智慧分析與診斷資料庫
- oracle之 redo過高診斷Oracle
- 故障分析 | Kubernetes 故障診斷流程
- 網站SEO診斷分析要點網站
- 我與Itpub
- AWR 報告深度解讀:Redo Nowait指標的演算法和診斷AI指標演算法
- 吃透 JVM 診斷方法與工具使用JVM
- 一招教你成為大內密探:診斷優化找出消耗CPU效能的內鬼優化
- 基於等待事件的效能診斷(轉)事件
- 效能分析(5)- 軟中斷導致 CPU 使用率過高的案例
- sp_sysmon效能診斷結果分析(zt)
- 一次DG故障診斷過程分析
- ORACLE 如何診斷高水位爭用(enq: HW – contention)OracleENQ
- 一次SGA與Swap故障診斷
- 如何診斷伺服器關閉的原因伺服器
- "程式語言只是工具?"看看網友有何高見!
- 故障診斷為什麼要用深度學習?深度學習
- [JVM] 應用診斷工具之Fastthread(線上診斷)JVMASTthread
- 9. Oracle常用分析診斷工具——9.3.ADDMOracle
- 9. Oracle常用分析診斷工具——9.2. ASHOracle
- ORACLE診斷案例Oracle
- Solaris Linux SSH緩慢診斷與解決Linux
- 一次Oracle診斷案例-SGA與SwapOracle
- 效能分析之CPU分析-從CPU呼叫高到具體程式碼行(JAVA)Java
- 數字病理與AI輔助診斷,助力腫瘤精準診療AI
- 網路效能監控與流量回溯分析 - 輕鬆診斷網路問題
- 會員力量:非常感謝成為終身會員的園友
- .netcore利用perf分析高cpu使用率NetCore
- 大語言模型與資料庫故障診斷模型資料庫
- Java診斷利器ArthasJava
- SQL問題診斷SQL
- 效能分析之CPU分析-從CPU呼叫高到具體程式碼行(C/C++)C++
- 記一次 .NET 某資訊論壇 CPU爆高分析
- 關於 SysOM 2.0 網路/儲存相關診斷功能介紹及案例展示 | 第 72-73 期
- 【AWR】Oracle awr相關檢視及體系介紹Oracle