大量的virtual circuit status等待造成系统卡顿

开发部门反映wms系统反映缓慢

查看系统等待事件

select event,count(1) from gv$session_wait

group by event

order by count(1) desc;

发现有比较多的virtual circuit status

查询资料发现virtual circuit status idle event

interface. The common idle events are as follows:

Idle Events

client message

PX Deq: Execute Reply

dispatcher timer

PX Deq: Execution Msg

gcs for action

PX Deq: Signal ACK

gcs remote message

PX Deq: Table Q Normal

ges remote message

PX Deque wait

i/o slave wait

PX Idle Wait

jobq slave wait

queue messages

lock manager wait for remote message

rdbms ipc message

null event

slave wait

parallel query dequeue

smon timer

pipe get

SQL*Net message from client

PL/SQL lock timer

SQL*Net message to client

pmon timer

SQL*Net more data from client

PX Deq Credit: need buffer

virtual circuit status

PX Deq Credit: send blkd

wakeup time manager

问题出现前提条件:
1. 使用 oracle 11gR2
2. 是客户端PL/SQL在连接数据库的时候使用shared server
3. plsql在默认连接的时候是创建多个session的:Session  Mode 选择 Multi session或者Dual session


此时查询 v$session 视图可以看到,session的等待事件就是 virtual circuit wait,注销plsql即可看到等待事件取消

只有条件1,2和条件3同时达到才会产生这个等待事件,如果使用dedicated链接或者plsql配置上选择Single session 都不会产生这个等待事件。

这个应该算是共享链接模式的特有异常,当然使用共享链接模式的比较少,大家见到该异常的概率也比较低,仅供参考


参考文档  
【参考一】

This is a performance monitoring enhancement to split the 'virtual circuit status' wait event into two new

wait events:

"shared server idle wait" - for when the shared server is
idle waiting for something to do

"virtual circuit wait" - for when the shared server is
blocked waiting on a specific
circuit / message

The wait "virtual circuit status" no longer exist with this fix.


Before the bug fix  the 'virtual circuit status' event was classified as an

idle event but was used for both idle and non-idle waits.  Since the idle time

dominated the total time for the event, it obscured any true issues with the

other waits under the event.

With this bug fix included in 11.1.0.7 and 11.2 The 'virtual circuit status' wait
event was removed and replaced by two new wait events: 'shared server idle wait' and
'virtual circuit wait'.  The wait on the common queue uses 'shared server idle wait' and
all the otherwaits use 'virtual circuit wait'

原文链接:https://support.oracle.com/CSP/main/article?cmd=show&type=COMMUNITIES&doctype=COMTHREAD&id=85058

【参考二】Bug 6653834 - Split "virtual circuit status" into idle / non-idle waits [ID 6653834.8]

This note gives a brief overview of bug 6653834.
The content was last updated on: 11-JAN-2010
Click here for details of each of the sections below.

Affects:

Product (Component)

Oracle Server (Rdbms)

Range of versions believed to be affected

Versions < 11.2

Versions confirmed as being affected

  • 9.2.0.8
  • 10.1.0.5
  • 10.2.0.3
  • 10.2.0.4
  • 11.1.0.6

Platforms affected

Generic (all / most platforms affected)


The fix for this bug introduces a notable change in behaviour thus:
Notable change of behaviour introduced in 11.1.0.7

Fixed:

This issue is fixed in

  • 11.1.0.7 (Server Patch Set)
  • 11.2.0.1 (Base Release)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

潇湘秦

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值