KingbaseES V8R6 等待事件之LWLock Buffer_IO
等待事件含义
当进程同时尝试访问相同页面时,等待其他进程完成其输入/输出(I/O)操作时,会发生LWLock:BufferIO等待事件。其目的是将同一页读取到共享缓冲区中。
每个共享缓冲区都有一个与LWLock:BufferIO等待事件相关联的I/O锁,每次都必须在共享缓冲区外部检索页。
此锁用于处理多个会话,假如这些会话都需要访问同一块。必须从共享缓冲池外部读取此块,共享缓冲池大小由shared_buffers参数定义。
一旦在共享缓冲池中读取到页面,就会释放LWLock:BufferIO锁。
注意:
LWLock:BufferIO等待事件先于IO:DataFileRead等待事件。从存储读取数据时发生IO:DataFileRead等待事件。
等待事件增加的可能原因
多个后端进程或连接试图访问正在进行I/O活动的同一页面
共享缓冲池的太小,大型或膨胀的索引,需要向共享缓冲池中读取比膨胀前更多的数据。
缺少索引,这迫使数据库引擎从表中读取的页面超过了必要的数量。
检查点出现频率太高或需要刷新太多脏块
试图在同一页面上执行操作的数据库连接突然出现峰值,造成并发争用问题
解决方法
根据等待事件的原因,我们建议采取以下操作:
shared_buffer中的HitRatiio急剧下降和LWLock:BufferIO等待事件之间存在相关性。这种效果可能需要增加shard_buffer大小。还可以应用读写分离集群分摊数据库负载到不同实例。
如果您看到LWLock:BufferIO增加与BufferCacheHitRatio指标下降,则根据您的工作负载峰值时间调整max_wal_size和checkpoint_timeout。然后确定可能是哪个查询导致的。
验证是否有未使用的或不必要的索引,然后将其删除。
使用分区表(应用分区索引)。这样做有助于尽量低的将索引重新排序,并减少其影响。
通过使用连接池来防止突然的数据库连接高峰。
作为最佳方案,限制与数据库的最大连接数。并适时中断连接,释放内存。
KingbaseES V8R6 等待事件之LWLock Buffer_IO的更多相关文章
- KingbaseESV8R6等待事件之lwlock buffer_content
前言 等待事件是排查数据库性能的指标之一.简单理解,cpu在处理业务时由于业务逻辑,和不可避免的数据库其他原因造成的前台进程等待,这里的等待事件包含buffer类,io类,以及网络类等等,当我们遇到等 ...
- 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的最前面. 当然 ...
随机推荐
- golang指针和结构体
指针 指针操作 指针包括指针地址.指针类型和指针取值 &: &符号放在变量前面进行取地址操作 **:*放在变量前面根据地址进行取值 指针地址: func main() { var a ...
- win32 - Shell菜单项的创建
#include <windows.h> #include <shobjidl_core.h> #include <windowsx.h> #include < ...
- Xposed 原理
Xposed 使用替换app_process的方式(这是个二进制文件) xposed 的 app_main2.cpp中做了xposed的初始化 /** Initialize Xposed (unles ...
- CSS font-weight
主要理解UI给得英文名 对应得数值 字体粗细:'font-weight'属性名称: font-weight取值: normal | bold | bolder | lighter | 100 | 20 ...
- Linux驱动开发笔记(一):helloworld驱动源码编写、makefile编写以及驱动编译基本流程
前言 基于linux的驱动开发学习笔记,本篇是描述了一个字符驱动的基础开发流程,以便做嵌入式开发多年的应用或者系统学习驱动开发. 笔者自身情况 笔者拥有硬件基础,单片机软硬基础,linux ...
- 【Azure 存储服务】Azure Storage Account 下的 Table 查询的性能调优
问题描述 Azure Storage Account 下的 Table 查询的性能调优? 问题解答 因为Azure Storage Table服务(表服务) 与常规的关系型数据库不一样(例如:MySQ ...
- [Linux] 快速修改hosts访问github
sudo sed -i '/github/d' /etc/hosts sudo bash -c "curl https://gitlab.com/ineo6/hosts/-/raw/mast ...
- [Python] 通过md5去重 筛选文件代码
这是一些代码记录 这次是帮朋友恢复硬盘,扫描到的结果包含了好多个分区,通过将分区中的数据导出发现很多文件是重复的.所以想到通过python代码去重. 首先把所有分区的图片文件都放到一个文件夹A中,如果 ...
- 新零售SaaS架构:订单履约系统的概念模型设计
订单履约系统的概念模型 订单:客户提交购物请求后,生成的买卖合同,通常包含客户信息.下单日期.所购买的商品或服务明细.价格.数量.收货地址以及支付方式等详细信息. 子订单:为了更高效地进行履约,大订单 ...
- docker构建带ik分词器Elasticsearch镜像
创建Dockerfile 文件: FROM elasticsearch:7.4.2 RUN cd /usr/share/elasticsearch && sh -c '/bin/ech ...