多DBWR进程与IO slave

2023-10-26

DBWn
DBWn定期写脏数据到磁盘。频繁的磁盘I/O会影响性能,所以每当数据库内存中产生脏数据时,是不一定也不应该产生写数据到磁盘的操作的,DBWn会尽量少的写入磁盘。
虽然一个数据库DBW0进程适用于所有系统,为了提高数据库写的能力可以配置DBW1-DBW9,DBWa-DBWj。这些新增的DBWn不使用于单处理器系统。
在以下情况DBWn进程写脏数据到磁盘:
? When a server process cannot find a clean reusable buffer after scanning a threshold number of buffers, it signals DBWn to write. DBWn writes dirty buffers to disk asynchronously if possible while performing other processing.当服务器进程扫描所有buffer后不能找到干净可用的buffer,服务器进程会发消息给DBWn去写。DBWn会同步写脏数据到磁盘。?
? DBWn periodically writes buffers to advance the checkpoint, which is the position in the redo thread from which instance recovery begins. The log position of the checkpoint is determined by the oldest dirty buffer in the buffer cache.为了提升检查点,DBWn周期性的写脏数据。检查点的位置取决于在buffer cache中最旧的脏数据
在很多情况下,DBWn写的块分布在整个磁盘,因此写数据的速度会慢于LGWR连续写日志的速度。DBWn为了提高写的效率会多块写。多块写的块数取决于操作系统。

DB_WRITER_PROCESSES
DB_WRITER_PROCESSES参数可用设置DBWn的个数。设置多个DBWR进程可用分散写脏数据到磁盘的任务,也分散了进程的IO。强烈建议在多个CPU或者多个进程组情况下使用多个DBWR进程,至少每8个CPU使用一个DBWR进程。
在多个CPU和进程组的情况下,数据库使用合适的默认DBWn数或者直接使用DB_WRITER_PROCESSES指定DBWn个数。

DBWR_IO_SLAVES
如果使用多个DBWR进程不实用,oracle提供了可用分散IO的奴隶进程。DBWR是唯一一个可用扫描buffer cache中LRU的进程。然而,这些块的IO由IO slave表现。IO slave的数量取决于DBWR_IO_SLAVES参数。
在不能使用DB_WRITER_PROCESSES 的情况下(比如只有一个CPU),就需要使用DBWR_IO_SLAVES。异步IO同样也适用于不能使用异步IO的情况。如果系统支持异步IO,就使用异步IO。
在数据库开启后的获取到第一个IO请求时DBWR IO slave便会立即分配。DBWR仍然做着自己相关的工作,IO被分开。

使用DBWR_IO_SLAVES需要额外的内存分配IObuffer和响应队列。多DBWR进程不能使用IO slave。使用IO slave只能有一个DBWR进程。

在一个DBWR不能跟上系统压力需求时,使用多个DBWR进程可用提高性能。然而在使用多个DBWR进程前,需要确认异步IO是否可用,是否已使用。如果系统支持异步IO但没有使用,开启一步IO功能并查看是否减缓了IO问题。如果系统不支持异步IO,或者异步IO已经使用但仍然存在DBWR性能瓶颈,那么需要使用多DBWR进程。
如果异步IO不可用,设置DISK_ASYNCH_IO为FALSE去关闭异步IO。
因为多个DBWR进程同步获取buffer,所以多DBWR进程会比多IO slave的单DBWR要快。因为如此,在不能使用多DBWR进程时才应该去考虑IO slave。

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/31461640/viewspace-2141492/,如需转载,请注明出处,否则将追究法律责任。

转载于:http://blog.itpub.net/31461640/viewspace-2141492/

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

多DBWR进程与IO slave 的相关文章

  • centos系统出现grub问题修复

    问题 解决方式 1 查看系统分区情况 ls 查看分区 ls hd0 msdos1 查看分区内容 找到存在vmlinuz文件和initramfs文件的分区 操作3步骤 3 grub gt set root hd0 msdos1 将存在vmli
  • echarts(横向柱状图和grid)

    场景 最近在做知识图谱的时候 右侧弹窗需要有数据统计功能 大概 如下图 当时想到的是横向柱状图来实现 目前的效果与UI的不同是后面统计的数量显示的位置 后来经其他前端同事启发 他是用进度条来实现的 发现自己的思想有些死板了 原来进度条实现也
  • VScode中设置vue代码的自动提示&主题

    VScode中设置vue代码的自动提示 下载VueHelper即可 主题推荐 Solarized Light

随机推荐

  • react 阻止默认行为

    react在做某一些弹层的时候 会用到原生的监听点击事件document addEventListener click 这个时候会用到阻止默认事件发生 代码如下 e nativeEvent stopImmediatePropagation
  • 2023linux面试问答_Linux基础

    1 什么是Linux Linux是一套免费使用和自由传播的类Unix操作系统 是一个基于POSIX和Unix 的多用户 多任务 支持多线程和多CPU的操作系统 它能运行主要的Unix工 具软件 应用程序和网络协议 它支持32位和64位硬件
  • 深入随机数Random

    以下内容来自 http www cnblogs com rupeng p 3723018 html 今天再园子上看到了杨老师的一片blog 受益了 原来随机数还有这么多道道 要走的路还远啊 以下为个人收录 几乎所有编程语言中都提供了 生成一
  • windows2008文件服务器端口,windows server 2008 文件服务器不定期出现大量CLOSE_WAIT状态的连接,必须重启服务器,客户端才能访问共享。...

    故障现象如题 用netstat ano p tcp 可以看到大量的连接 都处于close wait状态 然后客户端访问共享就很卡 EXCEL也卡死 服务器重启恢复正常 但是过一段时间又出现这个问题 不知道有谁知道这个问题可能出在哪里 服务器
  • apt-cache - 搜索软件包

    Apt cache是一个命令行工具 可以从本地 APT 文件中查询和显示有关包的可用信息 包信息包括包名称 描述 版本 依赖项 repo 和维护者 存储来自 Debian 镜像的副本的本地 apt 文件位于 var lib apt list
  • day03-switch&循环语句

    1 流程控制语句 应用 在一个程序执行的过程中 各条语句的执行顺序对程序的结果是有直接影响的 所以 我们必须清楚每条语句的执行流程 而且 很多时候要通过控制语句的执行顺序来实现我们想要的功能 1 1 流程控制语句分类 顺序结构 分支结构 i
  • 计算机网络第五章——传输层(下)

    安得广厦千万间 大庇天下寒士俱欢颜 文章目录 按序的不丢失的 这个校验也是二进制求反码来判断有没有发送错误 TCP传输的时候就是以一个字节为单位 所以就会把一个字节编一个序号 对于一个文件第一个需要是多少是可以随机的 发送的时候是以报文段为
  • 4元数(转)

    这是国内找不到的超好文章 为什么大陆的4元数文章很垃圾呢 翻译中 奉献给大家 70秒即懂 能使用 用四元数 4元数 阔特尼恩 Quaternion旋转 C 中田 亨 独立行政法人 产业技术综合研究所 数字人类研究中心 研究员 博士 工学 2
  • wireshark抓包图解 TCP三次握手/四次挥手详解

    一 TCP IP协议族 TCP IP是一个协议族 通常分不同层次进行开发 每个层次负责不同的通信功能 包含以下四个层次 1 链路层 也称作数据链路层或者网络接口层 通常包括操作系统中的设备驱动程序和计算机中对应的网络接口卡 它们一起处理与电
  • 医疗大数据安全技术实践

    随着医疗大数据的不断积累 其安全性问题也逐渐受到广泛的关注 保护医疗大数据的安全和隐私至关重要 不仅需要制定相应的政策措施 更需要实际的技术实践 下面我将重点介绍医疗大数据安全技术实践的相关措施 1 数据加密技术 数据加密技术是医疗大数据安
  • 源码分享-go语言实现的snow3g加密算法

    源码路径 free5gc nas security snow3g snow3g go package snow3g var sr byte 0x63 0x7c 0x77 0x7b 0xf2 0x6b 0x6f 0xc5 0x30 0x01
  • 利用Python爬虫爬取淘宝商品做数据挖掘分析实战篇,超详细教程

    如需完整代码 加 LiteMango 付费 项目内容 本案例选择 gt gt 商品类目 沙发 数量 共100页 4400个商品 筛选条件 天猫 销量从高到低 价格500元以上 以下是分析 源码点击文末链接 项目目的 1 对商品标题进行文本分
  • Python爬虫要学多久

    Python爬虫要学三个月到半年 自学的话 根据每个人的情况来说 学习周期是不同的 如果没有任何基础 零基础小白进行Python学习的话 需要先进行简单的Python基础知识学习 就需要三个月左右的时间 再进行爬虫知识的学习 少则半年左右
  • 常用网址合集

    常用网址合集 一 壁纸网站 a AweSome Wallpapers 二 音乐网站 a 音乐下载器 三 电子书下载网站 a PDF之家 四 摸鱼网站 a Fakeupdate 很早之前就想收集一些比较常用的网址 最开始是直接放浏览器里面 但
  • 北大学生控诉字节跳动backup制度,怎么破解职场pua?

    5月13日下午 一名北大学生在校内论坛未名BBS上写下4000多字长文 陈述自己在字节跳动实习的经历 该同学表示 2021年1月份在字节跳动办理实习生入职 四月中旬实习期已满 且因毕业事宜繁忙向leader表达了近期需要离职的诉求 但竟遭遇
  • unity3d课后练习(四)

    文章目录 1 基本操作演练 建议做 2 编程实践 1 基本操作演练 建议做 下载 Fantasy Skybox FREE 构建自己的游戏场景 在 Asset Store 中搜索 Fantasy Skybox FREE 下载完成后 按照介绍导
  • better-scroll的学习和使用

    better scroll的学习和初始化 介绍 在日常的移动端开发中 列表滚动条的处理是非常常见的需求 横竖的滚动条使用better scroll都可以帮助我们在开发中实现 什么是better scroll better scroll是一个
  • Lattice Planner从入门到放弃

    Lattice Planner相关背景和更正式的公式推导可以直接参考其原始论文 Optimal Trajectory Generation for Dynamic Street Scenarios in a Fren t Frame ICR
  • protobuf快速上手

    protobuf快速上手 一 序列化与反序列化 序列化与反序列化的场景 常用的工具 二 protobuf工作原理 三 快速上手 protobuf中的数据类型 proto文件格式 编译选项 快速上手 四 通讯录demo 编写proto文件 编
  • 多DBWR进程与IO slave

    DBWn DBWn定期写脏数据到磁盘 频繁的磁盘I O会影响性能 所以每当数据库内存中产生脏数据时 是不一定也不应该产生写数据到磁盘的操作的 DBWn会尽量少的写入磁盘 虽然一个数据库DBW0进程适用于所有系统 为了提高数据库写的能力可以配