识别低效io引起的free buffer waits

产生事发时间段的awr报告
在这里插入图片描述
Top 5 wait events
f
这里重点关注:
1.free buffer waits
2.enq_HW-contention
3.enq:tx-row lock contention
enq:HW-contention属于水位线的争用,已经透过alter table allocate extent,提前分配空间,这里不做讨论

关于enq: TX - row lock contention ,我们透过如下查询得知,是由于free buffer waits引起,所以如果解决了free buffer wait,lock的竞争也将得到改善

select session_id,sql_id,blocking_session,event,session_state,time_waited  from dba_hist_active_sess_history where session_id in (
select blocking_session from dba_hist_active_sess_history
where to_char(SAMPLE_TIME,'YYYY-MM-DD HH24:MI:SS') BETWEEN '2023-07-03 09:00:00' AND '2023-07-03 11:00:00'
and event='enq: TX - row lock contention')

在这里插入图片描述

那么,free buffer wait是什么引起的呢?
1.small buffer cache?
2.Inefficient io IO
32.Inefficient io sql statement?

我们先看看几个指标的解释:
1.free buffer requested:
A ‘free buffer requested’ is incremented every time a “new buffer” needs to be
created in the buffer cache. This is typically because a requested block is not in
memory and so needs to be read from disk or because a read consistent block needs to
be created which currently doesn’t exist in memory. A ‘high’ value may suggest either
the cache is too small and blocks are not being found when required in memory or that
much conflicting activity between writes and reads requiring consistent blocks to be
generated in occurring

2.free buffer inspected
A ‘free buffer inspected’ occurs when a block is checked via the LRU list to determine whether it can be overwritten in order to create a new block (to satisfy a free buffer requested). This value is incremented if the ‘inspected’ block may not be overwritten due to the block being ‘dirty’ (or changed) or the block being ‘pinned’ (or currently being accessed). A ‘high’ value may suggest that the db writers are not efficient enough in cleaning out blocks in order to have sufficient free blocks
available.

3.dirty buffers inspected
The dirty buffers inspected Oracle metric is the number of dirty buffers found by the foreground while the foreground is looking for a buffer to reuse.
A dirty buffer is a buffer whose contents have been modified. Dirty buffers are freed for reuse when DBWR has written the blocks to disk.
The database buffer cache is organized in two lists: the write list and the least-recently-used (LRU) list. The write list holds dirty buffers, which contain data that has been modified but has not yet been written to disk. The LRU list holds free buffers, pinned buffers, and dirty buffers that have not yet been moved to the write list. Free buffers do not contain any useful data and are available for use. Pinned buffers are buffers that are currently being accessed.

4.summed dirty queue length
The summed dirty queue length Oracle metric is the sum of the dirty LRU queue length after every write request. Divide by “write requests” to get the average queue length after write completion.

再看看AWR中这几个指标的值
在这里插入图片描述

这几个值反映,系统经历了
1.高的free buffer inspected,说明系统为了获得free buffer,频繁检查LRU list
2.高的free buffer requested,说明系统有大量的free buffer需求
3.高的dirty buffers inspected, 说明频繁检查LRU时,检查到大量的dirty buffer
4.高的summed dirty queue,说明write list超级长

系統io情況:

[oracle10g@EDI:~$ vmstat 1 20
procs -----------memory---------- ---swap-- -----io---- -system-- ------cpu-----r  b   swpd   free   buff  cache   si   so    bi    bo   in   cs us sy id wa st1 15  51968 168912   8524 12972824    0    0   894   206    0    1 22  3 70  5  03 12  51968 180556   8524 12967672    0    0 37032   152 4460 5376 23  8 12 57  01 13  51968 174148   8532 12981820    0    0 14248  1304 4135 4571 19  5  7 69  03 14  51968 171000   8528 12966028    0    0 11828   576 3190 2438 33 10  2 56  01 13  51968 173672   8528 12981628    0    0 65324    88 5495 7496 20 11  5 64  00 15  51968 197608   8528 12960552    0    0 18904   480 2735 3008 15  5  9 71  02 14  51968 172060   8524 12968832    0    0 16928   160 2821 2766 15  5  4 76  03 13  51968 180464   8520 12964840    0    0 34532  1416 3672 3248 31 12  9 48  0
[oracle10g@EDI:~$ iostat -x 1 20
avg-cpu:  %user   %nice %system %iowait  %steal   %idle59.68    0.00    3.60   30.27    0.00    6.45Device            r/s     w/s     rkB/s     wkB/s   rrqm/s   wrqm/s  %rrqm  %wrqm r_await w_await aqu-sz rareq-sz wareq-sz  svctm  %util
sdb            934.00   38.00  17264.00    908.00     7.00    15.00   0.74  28.30   14.01   97.79  12.12    18.48    23.89   1.03 100.00
sda              0.00    0.00      0.00      0.00     0.00     0.00   0.00   0.00    0.00    0.00   0.00     0.00     0.00   0.00   0.00

上面的输出反映sdb仅有17264kb/s的读写能力,硬盘latancy 14.01 millisecond也不是正常值,rareq-size请求队列达达到18.48的高值
结合awr报告中free buffer requested,free buffer inspected、dirty buffers inspected、summed dirty queue说明系统由于io的影响,导致刷脏能力很弱,无法产生足够的free buffer满足free buffer request的需求。
由于此台主机属于vmware esxi虚拟机,迁移到io状况良好的其他虚拟机后,free buffer wait消失

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/203621.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

软件工程之需求分析

一、对需求的基本认识 1.需求分析简介 (1)什么是需求 用户需求:由用户提出。原始的用户需求通常是不能直接做成产品的,需要对其进行分析提炼,最终形成产品需求。 产品需求:产品经理针对用户需求提出的解决方案。 (2)为什么要…

【Python】Flask + MQTT 实现消息订阅发布

目录 Flask MQTT 实现消息订阅发布准备开始1.创建Flask项目2创建py文件:mqtt_demo.py3.代码实现4.项目运行5.测试5.1 测试消息接收5.2 测试消息发布6、扩展 Flask MQTT 实现消息订阅发布 准备 本次项目主要使用到的库:flask_mqtt pip install flask…

Leetcode刷题详解——最长湍流子数组

1. 题目链接:978. 最长湍流子数组 2. 题目描述: 给定一个整数数组 arr ,返回 arr 的 最大湍流子数组的长度 。 如果比较符号在子数组中的每个相邻元素对之间翻转,则该子数组是 湍流子数组 。 更正式地来说,当 arr 的子…

ALPHA开发板烧录工具MfgTool简介

一. 简介 前面我们已经移植好了 uboot 和 linux kernle ,制作好了根文件系统。但是我们移植都是通 过网络来测试的,在实际的产品开发中肯定不可能通过网络来运行。 因此,我们需要将 uboot 、 linux kernel 、 .dtb( 设备树 ) 和 rootf…

串口环形收发原理及实现

一、环形收发队列构建 1、构造环形收发数组及其长度 #define buff_size 10 Unsigned char buff[buff_size]; 2、定义环形收发读/写位置 u16 R_Buff; u16 W_Buff; 3、结构体封装 typedef struct Qbuff {u16 write; //写位置u16 read; //读位置u8 buf…

Zabbix自定义飞书webhook告警媒介1

说明:此配置仅适用于7版本及以上,低版本可能有问题 JavaScript 内容如下: try {var sourceData JSON.parse(value),req new HttpRequest(),response;if (sourceData.HTTPProxy) {req.setProxy(sourceData.HTTPProxy);}req.addHeader(Conte…

pytorch中的transpose用法

注意:维数从0开始,0维 1维2维…,负数代表从右往左数,-1代表第一维,以此类推 import torch import numpy as np# 创建一个二维数组 arr torch.tensor([[[1, 2],[3, 4]],[[5, 6],[7, 8]]]) print("原始数组:"…

Docker部署.NET6项目

Docker的三大核心概念 1、docker仓库(repository) docker仓库(repository)类似于代码库,是docker集中存放镜像的场所。实际上,注册服务器是存放仓库的地方,其上往往存放着很多仓库。每个仓库集…

案例058:基于微信小程序的智能社区服务系统

文末获取源码 开发语言:Java 框架:SSM JDK版本:JDK1.8 数据库:mysql 5.7 开发软件:eclipse/myeclipse/idea Maven包:Maven3.5.4 小程序框架:uniapp 小程序开发软件:HBuilder X 小程序…

操作符(原码反码补码)

目录 前言&#xff1a; 原反补码&#xff1a; 位操作符&#xff1a; &#xff06; &#xff5c; &#xff3e; &#xff5e; >> << 总结&#xff1a; 逻辑操作符 && || 其他操作符&#xff1a; sizeof -- () &#xff1f;&#xf…

AMEYA360--罗姆与Quanmatic公司利用量子技术优化制造工序并完成验证

全球知名半导体制造商罗姆(总部位于日本京都市)于2023年1月起与 Quanmatic Inc.(总部位于日本东京都新宿区&#xff0c;以下简称“Quanmatic”)展开合作&#xff0c;在半导体制造工序之一的EDS工序中测试并引入量子技术&#xff0c;以优化制造工序中的组合。目前&#xff0c;双…

C#excel导入dategridview并保存到数据库/dategridview增加一行或几行一键保存数据库

excel导入到dategridview显示并保存到数据库 dategridview增加一行或几行一键保存数据库 ExcelHelper类(这个要导入NPOI包) using NPOI.HSSF.UserModel; using NPOI.SS.UserModel; using NPOI.XSSF.UserModel; using System; using System.Collections.Generic; using Syste…

dtaidistance笔记:dtw_ndim (高维时间序列之间的DTW)

1 数据 第一个维度是sequence的index&#xff0c;每一行是多个元素&#xff08;表示这一时刻的record&#xff09; from dtaidistance.dtw_ndim import *s1 np.array([[0, 0],[0, 1],[2, 1],[0, 1],[0, 0]], dtypenp.double) s2 np.array([[0, 0],[2, 1],[0, 1],[0, .5],[0…

Elasticsearch--解决磁盘使用率超过警戒水位线

原文网址&#xff1a;Elasticsearch--解决磁盘使用率超过警戒水位线_IT利刃出鞘的博客-CSDN博客 简介 本文介绍如何解决ES磁盘使用率超过警戒水位线的问题。 问题描述 当客户端向 Elasticsearch 写入文档时候报错&#xff1a; cluster_block_exception [FORBIDDEN/12/inde…

Qt进程和线程

一、进程 在设计一个应用程序时,有时不希望将一个不太相关的功能集成到程序中,或者是因为该功能与当前设计的应用程序联系不大,或者是因为该功能已经可以使用现成的程序很好的实现了,这时就可以在当前的应用程序中调用外部的程序来实现该功能,这就会使用到进程。Qt应用程序…

亿胜盈科 HT4182,HT4186,HT4188 电量均衡 同步升压型 双节理电池充电器

HT4182&#xff0c;HT4186&#xff0c;HT4188是一款5V输入&#xff0c;升压模式的充电管理IC&#xff0c;适用于双节串联鲤电池。其能自适应任意5V电源进行充电&#xff0c;并且由输入过压、欠压保护。 HT4182&#xff0c;HT4186&#xff0c;HT4188采用同步升压结构&#xff0…

基于单片机出租车计价器控制系统

**单片机设计介绍&#xff0c;基于单片机出租车计价器控制系统 文章目录 一 概要二、功能设计设计思路 三、 软件设计原理图 五、 程序六、 文章目录 一 概要 基于单片机的出租车计价器控制系统是一个用于控制和管理出租车费用计算的电子设备。下面是一个简单的系统设计介绍&…

Windows 下 PyTorch 入门深度学习环境安装与配置 GPU 版

1.确定自己的硬件信息&#xff0c;确定电脑有英伟达 (NVIDIA)显卡 在任务栏上右键打开任务管理器 2.下载安装 Anaconda &#xff08;建议安装迅雷下载&#xff0c;同时浏览器添加扩展 “迅雷Chrome支持”&#xff09; https://www.anaconda.com/ https://repo.anaconda.com/arc…

文本编辑软件:Ulysses mac介绍说明

Ulysses mac是面向 Mac、iPhone 和 iPad 的一站式写作环境。Ulysses 提供令人愉悦、专注的写作体验&#xff0c;加上高效文稿管理、无缝同步以及灵活导出。markdown 可以直接对于文本进行不同类型的分类、编辑&#xff0c;比如标题、注解、评论之类的内容。 Ulysses让注意力专…

嵌入式学习---ARM中断控制系统

目录 外部事件与CPU的交互方式查询方式中断方式 什么是中断源S3C2440支持60个中断源FIQ和IRQ 中断处理流程将外设中断通知给CPUSUBSRCPND寄存器INTSUBMSK寄存器SRCPND寄存器INTMSK寄存器INTMOD寄存器INTPND寄存器 硬件中断处理是实时系统设计的最重要、最关键的问题。 外部事件…