診斷與分析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/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 關於CPU使用率高的awr分析
- awr診斷分析之二
- 硬解析帶來高CPU消耗的診斷
- itpub awr案例分析之一
- 9. Oracle常用分析診斷工具——9.1. AWROracle
- Strace診斷CPU跑高問題(java/php網站)JavaPHP網站
- 【AWR】資料庫診斷工具AWR使用全程記錄資料庫
- 公司某資料子系統定期cpu過高的診斷
- 診斷和解決CPU利用率高的問題(zt)
- latch 相關效能問題診斷: latch: row cache objects等待事件導致CPU負載高Object事件負載
- ITPUB論壇
- AWR報告分析之一:高 DB CPU 消耗的效能根源-eygle
- 分析:全面診斷FACEBOOK
- 一次.net code中的placeholder導致的高cpu診斷
- itpub論壇提出的問題_為何dba_objects和dba_indexes中同一個user的index數量不一致ObjectIndex
- 使用awr來診斷資料庫效能問題資料庫
- 關於類似於awr的效能分析報告
- 資料庫異常智慧分析與診斷資料庫
- 使用 Diagwait 作為診斷工具,獲取用於診斷 Oracle Clusterware 節點驅逐AIOracle
- oracle之 redo過高診斷Oracle
- 關於Delphi/BCB程式中GetWindowTextA/GetDlgItemTextA斷點為何失效的簡單分析 (7千字)Git斷點
- 【原】關於SQLServer死鎖的診斷和定位SQLServer
- awr中DB CPU過低的原因分析
- 診斷network網路SQL*Net more data to client_awrSQLclient
- 如何使用AWR報告來診斷資料庫效能問題資料庫
- 網站SEO診斷分析要點網站
- CRS-1606 診斷分析
- MySQL效能診斷與調優MySql
- ITPUB電子雜誌第十期-Oracle診斷案例專刊Oracle
- 一招教你成為大內密探:診斷優化找出消耗CPU效能的內鬼優化
- 基於等待事件的效能診斷事件
- "程式語言只是工具?"看看網友有何高見!
- ora-4031(ora-4030)診斷分析ora-4031(ora-4030)診斷分析
- AWR實戰分析之----CPU 100%(smon_scn_time)
- 效能分析(5)- 軟中斷導致 CPU 使用率過高的案例
- 故障分析 | Kubernetes 故障診斷流程
- mysql複製故障診斷與排除MySql
- 吃透 JVM 診斷方法與工具使用JVM