KingbaseESV8R6等待事件之lwlock buffer_content
前言
等待事件是排查数据库性能的指标之一。简单理解,cpu在处理业务时由于业务逻辑,和不可避免的数据库其他原因造成的前台进程等待,这里的等待事件包含buffer类,io类,以及网络类等等,当我们遇到等待事件,这往往说明数据库性能存在问题,当然也要通过KWR报告去分析,等待事件占用DBtime的时间占比。这样能大概得出数据库整体运行状况。我们希望cpu在处理sql花费时间都用在数据库时间上,而当cpu花费了一部分时间在等待事件上,这样就对sql处理效率大打折扣。
记住这个公式:cpu time+前台进程非空闲等待=DB time。
elapsed time(自然逝去时间,也就是快照间隔)*逻辑cpu核数>db time ,如果elapsed time远远大于db time 说明数据库性能良好。反之,需要注意了,数据库负载过大。
也就是说cpu花费在数据库上的时间= DB time/(elapsed time逻辑cpu核数 )100%。这不包括后台进程花费的时间。这样判断数据库整体负载。
等待事件含义
buffer_content
lwlock:buffer_content当一个会话正在等待读取或写入内存中的数据页而另一个会话锁定该页以进行写入时,会发生该事件。
发生场景:300并发单条insert 。
实际上这是一个轻量级的内存锁,他保证了内存中数据的完整性,我理解,可能类似于oracle中的buffer pin锁。
为了读取或操作数据,数据库通过共享内存缓冲区访问它。要从缓冲区读取,进程在共享模式下获取缓冲区内容上的轻量级锁 (LWLock)。要写入缓冲区,它会在独占模式下获得该锁。共享锁允许其他进程同时获取该内容的共享锁。排他锁可防止其他进程获得任何类型的锁。
( lwlock:buffer_content)BufferContent事件表明多个进程正在尝试获取特定缓冲区内容的锁。
分析等待事件增加的原因
1.增加对相同数据的并发更新
更新 the same buffer content内容的查询的并发会话数可能会增加。这种争用在具有大量索引的表上更为明显。
2.工作负载数据不在内存中
当活动工作负载正在处理的数据不在内存中时,这些等待事件可能会增加。这种效果是因为持有锁的进程在执行磁盘 I/O 操作时可能保持锁持续更长时间。
3.过度使用外键约束
外键约束会增加进程持有缓冲区内容锁的时间。这种影响是因为读取操作在更新外键时,在外键上需要获取一个 shared buffer content lock 。
解决
1.提高内存效率
为了增加活动业务数据在内存中的可能性,比如根据服务器可用内存增加shared_buffer大小。表太大则进行分区表规划。
2.减少外键约束的使用
对于大量lwlock:buffer_content( BufferContent) 等待事件以使用外键约束的工作负载。删除不必要的外键约束。
3.删除未使用的索引
对于大量lwlock:buffer_content( BufferContent) 等待事件的工作负载,未使用的索引并将其删除。而且索引也是需要维护,占用磁盘空间。
KingbaseESV8R6等待事件之lwlock buffer_content的更多相关文章
- Oracle Tuning 基础概述01 - Oracle 常见等待事件
对Oracle数据库整体性能的优化,首先要关注的是在有性能问题时数据库排名前几位等待事件是哪些.Oracle等待事件众多,随着版本的升级,数量还在不断增加,可以通过v$event_name查到当前数据 ...
- SQL SERVER中的OLEDB等待事件
OLEDB等待事件介绍 OLEDB等待类型是SQL SERVER 数据库中最常见的几种等待类型之一.它意味着某个会话(SPID)通过SQL Server Native Client OLEDB Pro ...
- ORACLE等待事件:enq: TX - row lock contention
enq: TX - row lock contention等待事件,这个是数据库里面一个比较常见的等待事件.enq是enqueue的缩写,它是一种保护共享资源的锁定机制,一个排队机制,先进先出(FIF ...
- ORACLE等待事件: log file parallel write
log file parallel write概念介绍 log file parallel write 事件是LGWR进程专属的等待事件,发生在LGWR将日志缓冲区(log_buffer)中的重做日志 ...
- 数据库服务器CPU持续百分之百、部分Session一直处于执行状态---等待事件为:asynch descriptor resize(Oracle Bug )
问题描述: 项目反馈数据库服务器的CPU持续100%的情况,跟踪发现很多活动会话的等待事件是“asynch descriptor resize”,并且这些会话一直处于Active状态,而这些会话执行的 ...
- DB SQL Monitor 阻塞及等待事件监控工具
SQL Monitor Designed By zhaoguan wang 说明------------------------------------------------------------ ...
- truncate表hang住(等待时间较长),出现enq:RO fast object reuse等待事件
有一个应用truncate表等待了一晚上,一个定时任务,跑了几年了,今天早上来发现昨晚没有执行完成,hang住了,查询发现等待事件 fast object reuse. 10.2.0.4的库 Bug ...
- Oracle等待事件db file parallel read
SQL> select event#,name,parameter1,parameter2,parameter3 from v$event_name where name = 'db file ...
- Oracle常见的几种等待事件
1. CPU time CPU time其实不是真正的等待事件.是衡量CPU是否瓶颈的一个重要指标.一般来讲,一个良好的系统,CPU TIME 应该排在TOP 5 TIME Event的最前面. 当然 ...
随机推荐
- python基础知识-day9(数据驱动)
1.数据驱动的概念 在自动化测试中,需要把测试的数据分离到JSON,YAML等文件中. 2.YAML 的相关知识 YAML 入门教程 分类 编程技术 YAML 是 "YAML Ain't a ...
- Linux 磁盘挂载和swap空间管理
挂载:把指定的设备和根下面的某个文件夹建立关联 卸载:解除两者关系的过程 挂载文件系统:mount 格式:mount device mountpoint --- mount 设备名 挂载点 mount ...
- 临近梯度下降算法(Proximal Gradient Method)的推导以及优势
邻近梯度下降法 对于无约束凸优化问题,当目标函数可微时,可以采用梯度下降法求解:当目标函数不可微时,可以采用次梯度下降法求解:当目标函数中同时包含可微项与不可微项时,常采用邻近梯度下降法求解.上述三种 ...
- 一题多解,ASP.NET Core应用启动初始化的N种方案[下篇]
[接上篇]"天下大势,分久必合,合久必分",ASP.NET应用通过GenericWebHostService这个承载服务被整合到基于IHostBuilder/IHost的服务承载系 ...
- 2022-7-15 java 数据结构入门
@ 目录 数据结构 1.二分查找 动图演示: 2.冒泡排序 1.冒泡排序原理 2.冒泡排序基础版 3.冒泡排序代码优化版 4.冒泡排序代码升级版 3.选择排序 1. 算法步骤 2.插入排序图解: 3. ...
- elastsearch整合springboot
文档地址: https://www.baeldung.com/elasticsearch-java
- iOS中 Tagged Pointer 技术
前言: 从64位开始,iOS引入了Tagged Pointer技术,用于优化NSNumber.NSDate.NSString等小对象的存储. Tagged Pointer主要为了解决两个问题: 内 ...
- 题解【AtCoder - CODE FESTIVAL 2017 qual B - D - 101 to 010】
题目:https://atcoder.jp/contests/code-festival-2017-qualb/tasks/code_festival_2017_qualb_d 题意:给一个 01 串 ...
- 如何设计一个分布式 ID 发号器?
大家好,我是树哥. 在复杂的分布式系统中,往往需要对大量的数据和消息进行唯一标识,例如:分库分表的 ID 主键.分布式追踪的请求 ID 等等.于是,设计「分布式 ID 发号器」就成为了一个非常常见的系 ...
- Python 爬取途虎养车 全系车型 轮胎 保养 数据
Python 爬取途虎养车 全系车型 轮胎 保养 数据 2021.7.27 更新 增加标题.发布时间参数 demo文末自行下载,需要完整数据私聊我 2021.2.19 更新 增加大保养数据 2020. ...