Oracle等待事件: resmgr:cpu quant…

转到底部转到底部

2013-3-20PROBLEMPUBLISHED3
没有任何注释注释 (0)
为此文档评级
通过电子邮件发送此文档的链接在新窗口中打开文档 可打印页

In this Document

Symptoms
Cause
Solution
References

Applies to:

Oracle Database - Enterprise Edition - Version 11.1.0.6 and later
Information in this document applies to any platform.
***Checked for relevance on 18-NOV-2011***

Symptoms

Issuing a sqlplus / as sysdba might be hanging and/or high waits on event 'resmgr:cpu quantum' might be noticed even when resource manager is disabled.    

You already have confirmed parameter RESOURCE_MANAGER_PLAN is set to null but still noticing the above wait events.

Top 5 Timed Foreground Events:

Event                    Waits   Time(s)  Avg wait(ms) % DB time Wait Class

------------------------ ------- -------- ------------ -------------- ---------- -----------


resmgr:cpu quantum         1,596  346,281       216968          89.19 Scheduler


db file scattered read   171,071   14,778           86           3.81 User I/O


log file sync             28,575   10,810          378           2.78 Commit


db file sequential read  943,457   6,569             7           1.69 User I/O


DB CPU                     2,133   0.55

Cause

This could be due to DEFAULT_MAINTENANCE_PLAN. From 11g onwards every weekday window has a pre-defined Resource Plan called DEFAULT_MAINTENANCE_PLAN, which will become active once the related window opens.

Following entries can also be noted in alert log at the time of issue.

Wed Sep 16 02:00:00 2009
Clearing Resource Manager plan via parameter
:
Wed Sep 16 22:00:00 2009
Setting Resource Manager plan SCHEDULER[0x2C55]:DEFAULT_MAINTENANCE_PLAN via scheduler window
Setting Resource Manager plan DEFAULT_MAINTENANCE_PLAN via parameter
Wed Sep 16 22:00:05 2009
Begin automatic SQL Tuning Advisor run for special tuning task "SYS_AUTO_SQL_TUNING_TASK"

Solution

Please review the following document first to address any known bugs:
Note 392037.1 - Database 'Hangs'. Sessions Wait for 'resmgr:cpu quantum'

It may be better to move the maintenance windows to a time of day when CPU resources might be more available for such tasks to run and complete.

The following solution should only be used as a last resort because it may lead to other issues in the long run if Oracle has inadequate maintenance windows to collect new optimizer stats, find better execution plans for expensive SQL, purge AWR, etc.


To disable the DEFAULT_MAINTENANCE_PLAN you can use the below steps as suggested in Note 786346.1

1. Set the current resource manager plan to null (or another plan that is not restrictive):

alter system set resource_manager_plan='' scope=both;


2. Change the active windows to use the null resource manager plan (or other nonrestrictive plan) using:

execute dbms_scheduler.set_attribute('WEEKNIGHT_WINDOW','RESOURCE_PLAN','');
execute dbms_scheduler.set_attribute('WEEKEND_WINDOW','RESOURCE_PLAN','');

Since in 11g there are more Maintenance Windows, we should add them too:

execute dbms_scheduler.set_attribute('SATURDAY_WINDOW','RESOURCE_PLAN','');
execute dbms_scheduler.set_attribute('SUNDAY_WINDOW','RESOURCE_PLAN','');
execute dbms_scheduler.set_attribute('MONDAY_WINDOW','RESOURCE_PLAN','');
execute dbms_scheduler.set_attribute('TUESDAY_WINDOW','RESOURCE_PLAN','');
execute dbms_scheduler.set_attribute('WEDNESDAY_WINDOW','RESOURCE_PLAN','');
execute dbms_scheduler.set_attribute('THURSDAY_WINDOW','RESOURCE_PLAN','');
execute dbms_scheduler.set_attribute('FRIDAY_WINDOW','RESOURCE_PLAN','');


3. Then, for each window_name (WINDOW_NAME from DBA_SCHEDULER_WINDOWS), run:

execute dbms_scheduler.set_attribute('','RESOURCE_PLAN','');

-------------------------------------------------------------------------------------------------

-------------------------------------------------------------------------------------------------

http://www.eygle.com/archives/2011/07/events_resmgr_cpu_quantum.html

这个问题显然是和资源管理相关的,如果启用资源管理计划,就可能遇到这个问题.所以常规的解决方案是禁用资源管理,禁用缺省的维护计划(DEFAULT_MAINTENANCE_PLAN Metalink:786346.1)

alter system set resource_manager_plan='';
execute dbms_scheduler.set_attribute('WEEKNIGHT_WINDOW','RESOURCE_PLAN',''); and
execute dbms_scheduler.set_attribute('WEEKEND_WINDOW','RESOURCE_PLAN','');
execute dbms_scheduler.set_attribute('<window name>','RESOURCE_PLAN','');

以上是针对Oracle 11g的一种解决方案.

从以下的Event Class中也可以看到Scheduler的属性:

Top User Events

Event Event Class % Activity Avg Active Sessions
resmgr:cpu quantum Scheduler34.692.90
CPU + Wait for CPU CPU26.622.23
latch: library cache Concurrency25.912.17
latch: shared pool Concurrency5.050.42
latch free Other4.150.35




Top Event P1/P2/P3 Values

Event % Event P1 Value, P2 Value, P3 Value % Activity Parameter 1 Parameter 2 Parameter 3
resmgr:cpu quantum34.69"2","0","0"27.34 location    
  "1","0","0"3.95      
  "3","0","0"3.40      
latch: library cache26.16"14186265672","214","0"4.83 address number tries
  "14186265512","214","0"4.43      
  "14186266152","214","0"3.45      
latch: shared pool5.20"1611577728","213","0"2.72 address number tries
  "1611577568","213","0"2.31      
latch free4.20"9464682576","238","0"1.34 address number tries
  "1610749880","205","0"1.26      
  "14251367560","127","0"1.03      

但是很多用户会发现禁用资源计划很多时候没有作用.我第一次遇到这个问题时,第一反应就是直接去寻找是否有隐含参数可以禁用Oracle缺省启用的资源调度,最后通过以下参数设置解决问题:
_resource_manager_always_on = false

在那个案例中,相关的等待事件是: resmgr:active threads,通过隐含参数可以将始终打开的资源计划关闭.

当然还有几个BUG会导致类似的问题,以下是MOS上的相关问题解决方案,提供供参考:
Bug 8221960 WAITS FOR "RESMGR CPU QUANTUM"
One-off patches available Patch 8221960


BUG 7510766 - RESOURCE MANAGER IS OVER THROTTLING

Fixed in 11g Release2 and planned to be included in patchset 10.2.0.5

Bug 7527260 HIGH WAIT EVENTS ON "RESMGR CPU QUANTUM" WHEN RESOURCE MANAGER IS ENABLED   Fixed in patchset 10.2.0.4
Workaround by setting the parameters :

_enable_NUMA_optimization=FALSE
_db_block_numa=1

Bug 6874858 - Poor performance with Resource Manager when RMAN is running

Fixed in 11g Release2 and planned to be included in patchset 10.2.0.5 and 11.1.0.7
Workaround:
        Disable Resource Manager.
One-off patches available Patch 6874858

See also Note 759503.1 Resource Manager Plan Changes Settings Every Week
which might be causing higher waits on 'RESMGR:  ' events due to the changed Resource Plan.

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值