`
itspace
  • 浏览: 978456 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

Oracle QMNC进程消耗 100%cpu

阅读更多
操作系统版本为
localdomain 2.6.18-53.e15PAE
数据库版本为10.2.0.1
经客户反映QMNC进程消耗 100%cpu,经判断为Oracle一bug引起,bug号为5484652
解决办法:
ALTER SYSTEM SET AQ_TM_PROCESSES=5 SCOPE=SPFILE;
重启数据库

以下来自metalink
Bug 5069930: QMNC PROCESS IS SPINNING AND CONSUMING HIGH CPU 

显示 Bug 属性 Bug 属性
类型 B - Defect 已在产品版本中修复 -
严重性 2 - Severe Loss of Service 产品版本 10.2.0.1
状态 96 - Closed, Duplicate Bug 平台 226 - Linux x86-64
创建时间 28-Feb-2006 平台版本 -
更新时间 08-Nov-2007 基本 Bug 5484652
数据库版本 10.2.0.1
影响平台 Generic
产品来源 Oracle

显示相关产品 相关产品
产品线 Oracle Database Products 系列 Oracle Database
区域 Oracle Database 产品 5 - Oracle Server - Enterprise Edition

Hdr: 5069930 10.2.0.1 RDBMS 10.2.0.1 AQ PRODID-5 PORTID-226 5484652
Abstract: QMNC PROCESS IS SPINNING AND CONSUMING HIGH CPU

*** 02/28/06 09:37 pm ***
TAR:
----

PROBLEM:
--------
QMN process ora_qmnc_<SID> is taking upto 99% of CPU.
Customer is on 10.2.0.1.0.

DIAGNOSTIC ANALYSIS:
--------------------

+ looks like the ora_qmnc_<SID> process is not doing anything.
+ tried to take a 10046 trace using oradebug, but does not dump anything.
+ tried to find out if any SQLs executing using
DBMS_SYSTEM.SET_SQL_TRACE_IN_SESION, but again no SQLs found
+ errorstack shows, this process is apparently spinning.
+ system call trace (using strace) shows it is spinning on "times(NULL) =
489352606" system call.


WORKAROUND:
-----------
NONE

RELATED BUGS:
-------------

REPRODUCIBILITY:
----------------
reproducing at production, development and test environments of the customer.

TEST CASE:
----------

STACK TRACE:
------------
SQL> oradebug setospid 8692
Oracle pid: 24, Unix process pid: 8692, image:
oracle@ftibprod-db01.aozora.lan (QMNC)
SQL> oradebug short_stack
ksdxfstk()+32<-ksdxcb()+1547<-sspuser()+90<-<0x3e13b0c320>
SQL> oradebug short_stack
ksdxfstk()+32<-ksdxcb()+1547<-sspuser()+90<-<0x3e13b0c320>
SQL> oradebug short_stack
ksdxfstk()+32<-ksdxcb()+1547<-sspuser()+90<-<0x3e13b0c320>
SQL> oradebug short_stack
ksdxfstk()+32<-ksdxcb()+1547<-sspuser()+90<-<0x3e13b0c320>

SUPPORTING INFORMATION:
-----------------------
+ looks like bug: 4543871, but this is spinning on a different system call
(times(NULL)).
+ errorstack, strace output is uploaded.

24 HOUR CONTACT INFORMATION FOR P1 BUGS:
----------------------------------------

DIAL-IN INFORMATION:
--------------------

IMPACT DATE:
------------

*** 02/28/06 09:43 pm ***
The uptime of the Linux machine is:

[oracle@ftibprod-db01 ~]$ uptime
14:15:24 up 7 days, 17:58,  1 user,  load average: 2.00, 2.00, 2.00
   
Let me know if you need any further information.

Thank You.
Rijesh
*** 02/28/06 11:35 pm ***
*** 03/02/06 12:09 am ***
*** 03/02/06 01:17 am *** ESCALATED
*** 03/02/06 01:17 am ***
*** 03/02/06 01:20 am *** (CHG: Sta->10 Asg->NEW OWNER OWNER)
*** 03/02/06 01:20 am ***
Correcting platform based on tracefile:
  Release:        2.6.9-22.ELsmp
  Version:        #1 SMP Mon Sep 19 18:00:54 EDT 2005
  Machine:        x86_64

The supplied stacks are not unwound - the only functions
on the stack are those for dumping the stack itself.
Please try to get proper stacks from the spinning process
using "pstack" or "gdb" OS level utilities.
*** 03/02/06 07:23 pm *** (CHG: Sta->16)
*** 03/02/06 07:23 pm ***
*** 03/03/06 02:39 am *** (CHG: Sta->10)
*** 03/03/06 02:39 am ***
From the errorstack tracefile I have:
60029940     (ub4) exptm_kwqmnsgn            43FBA6D7 = 1140565719
                //  Exp time of the first ready task
600299DC     (ub4) failtime_kwqmnsgn         4403D919 = 1141102873
                //  time when ksvcreate of q# failed
600079FC     (ub4) ksusgctm                  4403D91F = 1141102879
                //  current time in seconds

and from the code it seems we are probably spinning trying to start
a slave process but that keeps failing.

Can you get:
  Full init.ora parameter settings
  Alert log from startup covering period when QMN spins
  Set event 10852 level 32 to help show QMN actions and status
        code why it cannot spawn a slave.
*** 03/03/06 03:10 am ***
*** 03/03/06 03:10 am *** (CHG: Sta->16)
*** 03/03/06 03:33 am *** (CHG: Sta->10)
*** 03/03/06 03:33 am ***
We need QMN to see the event before it starts to spin so
it is best in the init.ora or spfile then bounce
*** 03/06/06 09:19 pm ***
*** 03/06/06 09:20 pm *** (CHG: Sta->16)
*** 03/07/06 06:17 am ***
*** 03/08/06 12:37 am ***
BDE Screening
~~~~~~~~~~~~~
Testcase
~~~~~~~~~~~~~~~~~

  Files:  BDETC.tar.Z (containing init.ora setup.sql

  Steps: 
    Merge the "init.ora" into your pfile used to start the instance so
     that you have the following set:
        event="10852 trace name context forever, level 32"
        aq_tm_processes=10

    sqlplus /nolog @setup
      Creates a user TC with an AQ queue.

    Shutdown the instance.

    Startup the instance (using the included init.ora settings)

    Watch the QMNC trace file, or the CPU use of qmnc
    Notice it starts to spin in the loop

Reproduced
~~~~~~~~~~
  Reproduced in 10.2.0.2
  Reproduced in RDBMS_MAIN_LINUX_060228


Workaround/s
~~~~~~~~~~~~
  Do not set AQ_TM_PROCESSES = 10  , use a lower value (eg: 5).

Diagnostic Notes
~~~~~~~~~~~~~~~~
  On startup we set a task of KWQMN_PERSISTENT for each AQ slave
  spawned due to AQ_TM_PROCESSES. If there are 10 of these then this
  is the maximum allowed number of slaves but when a new task is
  added QMNC tries to spawn an extra slave. This fails as ksvcreate()
  returns ksvMAXSPAWNED but it also posts itself and so it tries again
  without sleeping first and so loops.
  eg:
        kwqmnstslv: ksvrv=2
        Couldn't start a new slave
        kwqmnstslv: less than 10s since last failed ksvcreate.
        Couldn't start a new slave
        kwqmnstslv: less than 10s since last failed ksvcreate.

  The fix from bug 4170525 removed messages being written to the alert
  log but it did no tackle this underlying spin. After 10 seconds
  ksvcreate() again tries to spawn a slave but returns ksvMAXSPAWNED
  again and so it spins for a further 10 seconds.

*** 03/08/06 12:39 am *** (CHG: Sta->11)
*** 03/08/06 12:39 am *** (CHG: Asg->NEW OWNER OWNER)
*** 03/08/06 12:39 am ***
*** 03/08/06 12:43 am ***
*** 03/08/06 09:56 am *** (CHG: DevPri->2)
*** 03/08/06 09:56 am *** (CHG: Confirmed Flag->Y)
*** 03/08/06 09:56 am *** (CHG: Sta->30)
*** 03/08/06 09:56 am ***
*** 03/08/06 06:24 pm ***
*** 03/08/06 08:16 pm *** (CHG: Sta->16)
*** 03/08/06 08:16 pm ***
*** 03/09/06 12:24 am *** (CHG: Sta->11)
*** 03/09/06 12:26 am *** -> CLOSED
*** 03/09/06 12:26 am ***
*** 03/12/06 11:34 pm ***
*** 03/13/06 09:01 am *** (CHG: Pri->4)
*** 03/13/06 09:01 am ***
*** 03/13/06 09:17 am *** (CHG: DevPri->4)
*** 03/13/06 09:17 am *** (CHG: Pri->2)
*** 03/13/06 11:34 am ***
10G Documentation which talks about the change in Time manager
architecture :

er.102/b14257/componet.htm#sthref345
....
....
2.14.1 "AQ_TM_PROCESSES Parameter No Longer Needed in init.ora"

Prior to Oracle Database 10g, Oracle Streams AQ time manager processes were
controlled by init.ora parameter AQ_TM_PROCESSES, which had to be set to
nonzero to perform time monitoring on queue messages and for processing
messages with delay and expiration properties specified. These processes were
named QMNO-9, and the number of them could be changed using:

ALTER SYSTEM SET AQ_TM_PROCESSES=X


Parameter X ranged from 0 to 10. When X was set to 1 or more, that number of
QMN processes were then started. If the parameter was not specified, or was
set to 0, then queue monitor processes were not started.

Beginning in Oracle Streams "AQ 10g Release 1 (10.1)", this was changed to a
coordinator-slave architecture, where a coordinator is automatically spawned
if Oracle Streams AQ or Streams is being used in the system. This process,
named QMNC, dynamically spawns slaves depending on the system load. The
slaves, named qXXX, do various background tasks for Oracle Streams AQ or
Streams. Because the number of processes is determined automatically and
tuned constantly, you no longer need set AQ_TM_PROCESSES.

Even though it is no longer necessary to set AQ_TM_PROCESSES when Oracle
Streams AQ or Streams is used, if you do specify a value, then that value is
taken into account. However, the number of qXXX processes can be different
from what was specified by AQ_TM_PROCESSES.

QMNC only runs when you use queues and create new queues. It affects Streams
Replication and Messaging users.

No separate API is needed to disable or enable the background processes. This
is controlled by setting AQ_TM_PROCESSES to zero or nonzero. Oracle
recommends, however, that you leave the AQ_TM_PROCESSES parameter unspecified
and let the system autotune.

Note:
If you want to disable the Queue Monitor Coordinator, then you must set
AQ_TM_PROCESSES = 0 in your pfile or spfile. Oracle strongly recommends that
you do NOT set AQ_TM_PROCESSES = 0. If you are using Oracle Streams, then
setting this parameter to zero (which Oracle Database respects no matter
what) can cause serious problems.
....
*** 05/25/06 05:36 pm *** (CHG: Pri->3)
*** 05/25/06 05:36 pm ***
*** 05/30/06 10:17 am ***
*** 06/28/06 04:25 pm *** (CHG: DevPri->2)
*** 06/28/06 04:25 pm *** (CHG: Pri->2)
*** 06/28/06 04:25 pm ***
*** 11/16/06 02:45 am ***
*** 11/16/06 07:35 am *** (CHG: Sta->36)
*** 11/16/06 07:35 am ***
*** 11/08/07 04:59 am *** (CHG: Sta->96)

1
0
分享到:
评论

相关推荐

    oracle后台进程

    它与QMNC进程协同工作,负责监控消息队列的状态,并在必要时唤醒其他相关进程进行处理。 #### 14. MMON (Memory Manager Process for Oracle Enterprise Manager) MMON进程是Oracle企业管理器的一个核心组件,用于...

    oracle 11G 月巡检手册

    本文将详细介绍《Oracle 11G 月巡检手册》中提到的巡检内容,主要包括数据库基本状况检查、Oracle服务进程检查以及Oracle监听状态检查三个方面。 #### 1. 检查数据库基本状况 ##### 1.1 检查Oracle实例状态 通过...

    oracle培训XX0829.ppt

    其次,`ora_smon_ora10g`、`ora_pmon_ora10g`等进程是Oracle数据库的后台进程,它们负责数据库的管理和维护。例如,`ora_smon_ora10g`(System Monitor)负责实例的启动和恢复,`ora_pmon_ora10g`(Process Monitor...

    【数据驱动】复杂网络的数据驱动控制附Matlab代码.rar

    1.版本:matlab2014/2019a/2024a 2.附赠案例数据可直接运行matlab程序。 3.代码特点:参数化编程、参数可方便更改、代码编程思路清晰、注释明细。 4.适用对象:计算机,电子信息工程、数学等专业的大学生课程设计、期末大作业和毕业设计。

    (源码)基于Qt框架的智能家居管理系统.zip

    # 基于Qt框架的智能家居管理系统 ## 项目简介 本项目是一个基于Qt框架开发的智能家居管理系统,旨在提供一个集成的平台来监控和管理家庭环境中的各种传感器数据,如温度、湿度、烟雾状态、红外状态等。系统通过图形界面实时展示数据,并提供警报功能以应对异常情况。 ## 项目的主要特性和功能 1. 实时数据监控通过Qt和Qwt库创建的曲线图,实时显示温度和湿度数据。 2. 多传感器支持支持温度、湿度、烟雾、红外等多种传感器的监控。 3. 警报系统当传感器数据超过设定阈值时,系统会触发警报,并通过界面显示警告信息。 4. 用户交互提供滑动条和复选框,允许用户调整警报阈值或关闭警报。 5. 网络通信通过TCP套接字与服务器通信,获取和发送传感器数据及网络拓扑信息。 6. 蓝牙数据读取支持通过蓝牙读取传感器数据并更新界面显示。 ## 安装使用步骤 1. 环境准备 确保已安装Qt开发环境。 安装Qwt库以支持曲线图功能。

    【路径规划】一种考虑拥塞的改进路径规划算法CCPF-RRT附Matlab代码.rar

    1.版本:matlab2014/2019a/2024a 2.附赠案例数据可直接运行matlab程序。 3.代码特点:参数化编程、参数可方便更改、代码编程思路清晰、注释明细。 4.适用对象:计算机,电子信息工程、数学等专业的大学生课程设计、期末大作业和毕业设计。

    基于springboot高性能计算中心的高性能集群共享平台源码数据库文档.zip

    基于springboot高性能计算中心的高性能集群共享平台源码数据库文档.zip

    (源码)基于JavaFX的图片管理系统.zip

    # 基于JavaFX的图片管理系统 ## 项目简介 本项目是一个基于JavaFX的图片管理系统,旨在提供一个用户友好的界面来管理和浏览图片。系统支持图片的预览、重命名、删除、复制、粘贴等操作,并提供了多种排序和展示方式。 ## 项目的主要特性和功能 1. 预览窗口 目录树展示 缩略图预览 单选、多选(Ctrl+左键)、框选功能 图片信息显示(如文件名、大小、最后修改时间等) 2. 右键菜单 复制粘贴图片 单选和多选重命名 删除图片 3. 展示窗口 图片放大缩小 左右切换图片 幻灯片播放功能 4. 排序功能 按文件名排序 按文件大小排序 按最后修改时间排序 5. 其他功能 图片信息封装(ImageBean) 文件树节点管理(FileTreeItem)

    (源码)基于Windows窗体的披萨店厨房管理系统.zip

    # 基于Windows窗体的披萨店厨房管理系统 ## 项目简介 这是一个基于Windows窗体的应用程序,主要用于披萨店的厨房管理。该系统通过WebSocket与服务器进行实时通信,显示从服务器接收到的订单信息。用户界面简洁明了,易于操作。 ## 项目的主要特性和功能 1. 实时通信: 通过WebSocket与服务器进行实时数据交换,获取订单信息。 2. 订单显示: 在窗体上实时显示订单信息,包括订单号和菜品等。 3. 界面简洁: 用户界面设计简洁,易于操作。 4. 定时刷新: 定时器用于定时从服务器获取消息,确保数据的实时性。 5. 错误处理: 在连接过程中遇到技术问题时会显示错误消息框。 6. 退出功能: 提供退出按钮,点击后程序会退出。 ## 安装和使用步骤 1. 下载项目源码文件: 从相关仓库或网站下载此项目的源码文件。 2. 准备开发环境: 确保你的开发环境已经安装了必要的软件和工具,如Visual Studio等。

    基于springboot高校创新创业课程体系源码数据库文档.zip

    基于springboot高校创新创业课程体系源码数据库文档.zip

    基于springboot汽车美容与保养网站源码数据库文档.zip

    基于springboot汽车美容与保养网站源码数据库文档.zip

    基于springboot校友录管理系统源码数据库文档.zip

    基于springboot校友录管理系统源码数据库文档.zip

    Cocos2d-x教程视频使用Eclipse在Ubuntu下搭建Cocos2d-x 3集成开发环境

    Cocos2d-x教程视频使用Eclipse在Ubuntu下搭建Cocos2d-x 3集成开发环境提取方式是百度网盘分享地址

    毕业设计&课设_基于 vue.js 与 node.js 的毕业设计项目,含多模块功能,用于大学信息交流平台开发 .zip

    该资源内项目源码是个人的课程设计、毕业设计,代码都测试ok,都是运行成功后才上传资源,答辩评审平均分达到96分,放心下载使用! ## 项目备注 1、该资源内项目代码都经过严格测试运行成功才上传的,请放心下载使用! 2、本项目适合计算机相关专业(如计科、人工智能、通信工程、自动化、电子信息等)的在校学生、老师或者企业员工下载学习,也适合小白学习进阶,当然也可作为毕设项目、课程设计、作业、项目初期立项演示等。 3、如果基础还行,也可在此代码基础上进行修改,以实现其他功能,也可用于毕设、课设、作业等。 下载后请首先打开README.md文件(如有),仅供学习参考, 切勿用于商业用途。

    基于springboot服装生产管理信息系统源码数据库文档.zip

    基于springboot服装生产管理信息系统源码数据库文档.zip

    (源码)基于Spring Boot和Redis的高并发秒杀系统.zip

    # 基于Spring Boot和Redis的高并发秒杀系统 ## 项目简介 本项目是一个基于Spring Boot框架开发的高并发限时抢购秒杀系统。系统实现了基本的登录、查看商品列表、秒杀、下单等功能,并针对高并发场景进行了优化,包括系统缓存、降级和限流等措施。通过Redis、RabbitMQ等中间件技术,确保系统在高并发情况下的稳定性和性能。 ## 项目的主要特性和功能 ### 核心功能 用户登录用户可以通过手机号和密码进行登录,系统支持两次MD5加密确保密码安全。 商品列表展示用户可以查看所有商品的列表,包括商品的详细信息、库存数量、秒杀价格等。 商品详情展示用户可以查看单个商品的详细信息,包括秒杀状态和剩余时间。 秒杀下单用户可以参与秒杀活动,系统通过本地标记、Redis预处理、RabbitMQ异步下单等技术确保高并发下的系统稳定。 订单详情用户可以查看自己的订单详情,包括订单状态、商品信息等。 ### 技术优化

    基于springboot校园论坛系统源码数据库文档.zip

    基于springboot校园论坛系统源码数据库文档.zip

    飞利浦CT机自动推送配置

    飞利浦CT机自动推送配置

    PHP 学习教程(入门到实践)

    本教程介绍了 PHP 的基础语法、函数与面向对象编程、文件操作、以及与 MySQL 的交互。通过实例与练习,帮助您快速入门 PHP 开发,为动态网站和 Web 应用打下坚实基础。

    (源码)基于Android的玩具租赁系统.zip

    # 基于Android的玩具租赁系统 ## 项目简介 本项目是一个基于Android平台的玩具租赁系统,旨在为用户提供一个便捷的玩具租赁服务。系统涵盖了用户注册、登录、玩具浏览、租赁、个人信息管理等功能,通过前后端分离的架构实现。 ## 项目的主要特性和功能 1. 用户管理 用户注册与登录支持通过昵称、手机号等多种方式进行注册和登录。 找回密码用户可以通过手机验证码找回密码。 个人信息管理用户可以修改个人信息,包括姓名、密码等。 2. 玩具租赁 玩具浏览用户可以浏览不同分类的玩具,查看玩具详情。 租赁功能用户可以选择玩具进行租赁,并查看租赁订单。 3. 搜索与推荐 搜索功能用户可以通过关键词搜索玩具。 推荐系统根据用户的历史行为推荐相关玩具。 4. 测试与集成 单元测试确保基础功能的正确性。 集成测试测试Spring Boot应用的上下文加载情况。

Global site tag (gtag.js) - Google Analytics