xia 发表于 2014-9-5 22:30:20

Oracle等待事件引发CPU冲高

RAC 环境

Oracle Database 11g Enterprise Edition Release 11.2.0.3.0 - 64bit Production
PL/SQL Release 11.2.0.3.0 - Production
CORE    11.2.0.3.0      Production
TNS for IBM/AIX RISC System/6000: Version 11.2.0.3.0 - Production
NLSRTL Version 11.2.0.3.0 - Production

在下午时 ,发现数据库服务器CPU资源基本耗尽,使用vmstat 查看阻塞比较严重,topas中也没发现异常的进程;从em中的图例中看到大量的用户等待情况;



在两个结点分别查询 中大概有80多个表被锁,   为了使服务器资源降下来,在两个节点总共杀了1000多个session ,服务器资源丝毫没有降下来,在查询数据库中的锁又有很多;用户在使用中,杀不掉,也没什么好的办法,抓取了当时的awr 和ash ;请大家帮忙看看;

Maclean Liu(刘相兵 发表于 2014-9-5 23:54:11

Logical reads:        2,227,517.4        70,221.7       

2,227,517* 16k = 33GB/s 每秒33gb的 逻辑读

AIX-Based Systems (64-bit)

CPU Time (s)        Executions        CPU per Exec (s)        %Total        Elapsed Time (s)        %CPU        %IO        SQL Id        SQL Module        SQL Text
23,316.45        80        291.46        53.10        64,530.08        36.13        0.00        6w0rg5bwfcxzc        JDBC Thin Client        BEGIN RP_SALE001_GENERATE (:1)...
23,263.14        80        290.79        52.98        64,414.95        36.11        0.00        ddbgdrddk4bxj        JDBC Thin Client        INSERT INTO RP_SALE001 (ID, AD...

ddbgdrddk4bxj 这个sql 执行了80次在快照时间内,每次cpu time 290s左右

其形式为 insert .. .select from . 考虑优化该sql 为优先。

另就执行看,其似乎不是 一直都执行的sql,当然具体要看执行历史数据
页: [1]
查看完整版本: Oracle等待事件引发CPU冲高