首页 > 其他分享 >GV$视图出现长时间等待"reliable message"

GV$视图出现长时间等待"reliable message"

时间:2023-09-10 19:32:04浏览次数:68  
标签:GV reliable 视图 message channel wait

问题概述

用户反馈,查询视图gv$instance超过10秒,导致业务异常(程序的逻辑是先访问gv$instance ,判断实例是否存活,然后再开始干活,要是gv$instance不及时返回信息,程序就自杀),其他GV$视图查询性能正常。

问题原因

SQL语句执行消耗时间长,首先想到的是时间去哪了,在等待什么。event 10046非常合适来做这些,trace文件可以看到消耗的10秒时间都在等待事件“reliable message”上面。

GV$视图出现长时间等待"reliable message"_gv$

 

Reliable Message 是一个非空闲等待事件,进程级别,用于跟踪Oracle数据库中的许多不同类型的通道通信,如果长时间等待,意味着某些进程的通道通讯受到阻塞。MOS 上对于reliable message的解释如下(WAITEVENT: "reliable message" Reference Note (Doc ID 69088.1)):

When a process sends a message using the 'KSR' intra-instance broadcast service,the message publisher waits on this wait-event until all subscribers have consumed the 'reliable message' just sent. The publisher waits on this wait-event for up to one second and then re-tests if all subscribers have consumed the message, or until posted. If the message is not fully consumed the wait recurs,repeating until either the message is consumed or until the waiter is interrupted.

查看当前数据库GV$SESSION,检查是否还有其他异常等待事件,发现该视图执行的时间也是非常长,结果显示等待事件最多的也是“reliable message”。也就是说,数据库中不仅仅是GV$INSTANCE查询缓慢,其他GV$视图也是非常缓慢的。

此等待事件,是针对各种channel的,不同的channel 处理方式不一。gv$channel_waits 视图里查询问题最严重的 channel,可以看到“kxfp control signal channel  ”遥遥领先其他CHANNEL。

SELECT CHANNEL, SUM(wait_count) sum_wait_count
  FROM GV$CHANNEL_WAITS
 GROUP BY CHANNEL
 ORDER BY SUM(wait_count) DESC
;

GV$视图出现长时间等待"reliable message"_gv$_02

搜索12.1.0.2的bug list(12.1.0.2 Patch Set Updates - List of Fixes in each PSU (Doc ID 1924126.1)),有且仅有一个该等待事件的bug 20470877。

GV$视图出现长时间等待"reliable message"_reliable message_03

按照该bug的对应文档提示,执行dump ksim后,查看后台进程lck的trace文件,现象也是符合的。基本上可以判断,是这个bug导致问题。

Running the following will dump the ksim PGA nd SGA cache
  SQL> oradebug setorapname lck0
  SQL> oradebug call ksimPrintGroupMemPGA
  SQL> oradebug call ksimPrintGroupMemCache
 
 If you check the LCK0 trace file after the above you may 
 see many datapump/AQ generated groups left behind in the form of:
  SYS.KUPC$S_<thread>_yyyymmddhhmiss
  SYS.KUPC$C_<thread>_yyyymmddhhmiss

GV$视图出现长时间等待"reliable message"_等待事件_04

 

解决方案

临时workaround,逐个实例重启;根本解决方案,应用补丁20470877

参考文档

WAITEVENT: "reliable message" Reference Note (Doc ID 69088.1)

12.1.0.2 Patch Set Updates - List of Fixes in each PSU (Doc ID 1924126.1)

Excessive "reliable Message" waits seen on RAC after a few days uptime (Doc ID 1990796.1)    

标签:GV,reliable,视图,message,channel,wait
From: https://blog.51cto.com/u_13482808/7427765

相关文章

  • PowerPoint傻瓜书3大纲视图
    3在大纲视图中工作本章内容理解大纲重实质而非形式提升、降级大纲视图中添加幻灯片折叠和展开大纲许多演示文稿都是由一张又一张幻灯片组成的列表。你可能会在这里或那里看到一个图表,偶尔也会看到一些剪贴画,以达到喜剧效果,但演示文稿的面包和黄油就是项目符号列表。这听......
  • Qt 图形视图框架<三>——<坐标系统>
    Qt图形视图框架<三>——<坐标系统> 一基础知识 图形视图框架是基于笛卡尔坐标系统的,一个图形项在场景中的位置和几何形状由x坐标和y坐标来表示。当使用一个没有变换的视图来观察场景时,场景中的一个单元代表屏幕上的一个像素。图形视图框架的三个坐标系分别是视图......
  • Qt图形视图框架事件传递顺序
     全文链接:http://www.fearlazy.com/index.php/post/111.html Qt为我们提供的图形视图框架真的是非常好用,它通过分解出视图、场景和图元降低了我们绘制图形的难度。它提供了强大图元控制能力,如快速查找图元、检测图元位置、检测图元碰撞等。除此以外图形视图框架还有一个很强大......
  • oracle 对物化视图的使用中遇到问题
    1.建立一个简单的物化视图createtablestudent_info(snonumber(10)constraintpk_si_snoprimarykey,snamevarchar2(10),sexvarchar2(2),create_datedate);CREATEMATERIALIZEDVIEWmv_student_infoBUILDIMMEDIATEREFRESHF......
  • Unity UGUI的ScrollRect(滚动视图)组件的介绍及使用
    UnityUGUI的ScrollRect(滚动视图)组件的介绍及使用1.什么是ScrollRect组件?ScrollRect(滚动视图)是UnityUGUI中的一个常用组件,用于在UI界面中创建可滚动的区域。通过ScrollRect组件,可以实现在有限的空间内显示大量的内容,并且可以通过滑动手势来浏览内容。2.ScrollRect组件的工作......
  • DRF----限流、序列化、视图、条件搜索
    1.4djangorestframework(中)drf内置了很多便捷的功能,在接下来的课程中会给大家依次讲解下面的内容:快速上手请求的封装版本管理认证权限限流序列化视图条件搜索分页路由解析器 6.限流限流,限制用户访问频率,例如:用户1分钟最多访问100次......
  • 基于高性能Cortex®-M33内核STM32H562RIV6、STM32H562RIT6、STM32H562RGV6 32-bit ARM
    简介STM32H562xx器件是基于高性能ARM®Cortex®-M3332位RISC内核的高性能微控制器系列(STM32H5系列)。它们的工作频率高达250MHz。Cortex®-M33内核具有单精度浮点单元(FPU)、支持所有ARM®单精度数据处理指令和所有数据类型。该系列微控制器具有1至2MB的Flash存储器、640KB的SRA......
  • 9个视图子类,视图类,视图集,ViewSetMixin, drf之路由
    1.9个视图子类fromrest_framework.genericsimportListAPIView,CreateAPIView,ListCreateAPIViewfromrest_framework.genericsimportRetrieveAPIView,DestroyAPIView,UpdateAPIViewfromrest_framework.genericsimportRetrieveUpdateDestroyAPIView,RetrieveDes......
  • 9个视图子类、视图集、drf之路由
    9个视图子类fromrest_framework.genericsimportListAPIView,CreateAPIView,ListCreateAPIViewfromrest_framework.genericsimportRetrieveAPIView,DestroyAPIView,UpdateAPIViewfromrest_framework.genericsimportRetrieveUpdateDestroyAPIView,RetrieveDestroy......
  • 9个视图子类
    视图类五层第一层:继承APIview,五个接口第二层:GenericAPIView,继承APIview(两个类属性+defgetpostgetputdelete)第三层:五个视图扩展类GenericAPIView+(RetrieveModelMixin,CreateModelMixin,DestroyModelMixin,ListModelMixin,UpdateModelMixin)(两个类属性+defgetpostget......