`
hanjian861202
  • 浏览: 164948 次
  • 性别: Icon_minigender_1
  • 来自: 南京
文章分类
社区版块
存档分类
最新评论

Oracle:IO问题

 
阅读更多

但是如果系统支持AIO一般不用设置多dbwr 或者 io  slaves
      如果系统不支持AIO或者DISK_ASYNCH_IO 为 FALSE

 

多个dbwr 可以并行地搜集dirty buffer 并且并行地写数据文件

 

当系统不支持多个dbwr进程(如单CPU)且dbwr_io_slaves非零时,只有一个dbwr进程

一个 dbwr 进程搜集dirty  buffer 而 多个slaves 写数据文件

我想下面这段 oracle  document 说的再清楚不过了
Consider Multiple Database Writer (DBWR) Processes or I/O Slaves
Configuring multiple database writer processes, or using I/O slaves, is useful when the transaction rates are high or when the buffer cache size is so large that a single DBWn process cannot keep up with the load.

DB_WRITER_PROCESSES
The DB_WRITER_PROCESSES initialization parameter lets you configure multiple database writer processes (from DBW0 to DBW9 and from DBWa to DBWj). Configuring multiple DBWR processes distributes the work required to identify buffers to be written, and it also distributes the I/O load over these processes. Multiple db writer processes are highly recommended for systems with multiple CPUs (at least one db writer for every 8 CPUs) or multiple processor groups (at least as many db writers as processor groups).

Based upon the number of CPUs and the number of processor groups, Oracle either selects an appropriate default setting for DB_WRITER_PROCESSES or adjusts a user-specified setting.

DBWR_IO_SLAVES
If it is not practical to use multiple DBWR processes, then Oracle provides a facility whereby the I/O load can be distributed over multiple slave processes. The DBWR process is the only process that scans the buffer cache LRU list for blocks to be written out. However, the I/O for those blocks is performed by the I/O slaves. The number of I/O slaves is determined by the parameter DBWR_IO_SLAVES.

DBWR_IO_SLAVES is intended for scenarios where you cannot use multiple DB_WRITER_PROCESSES (for example, where you have a single CPU). I/O slaves are also useful when asynchronous I/O is not available, because the multiple I/O slaves simulate nonblocking, asynchronous requests by freeing DBWR to continue identifying blocks in the cache to be written. Asynchronous I/O at the operating system level, if you have it, is generally preferred.

DBWR I/O slaves are allocated immediately following database open when the first I/O request is made. The DBWR continues to perform all of the DBWR-related work, apart from performing I/O. I/O slaves simply perform the I/O on behalf of DBWR. The writing of the batch is parallelized between the I/O slaves.


--------------------------------------------------------------------------------
Note:
Implementing DBWR_IO_SLAVES requires that extra shared memory be allocated for I/O buffers and request queues. Multiple DBWR processes cannot be used with I/O slaves. Configuring I/O slaves forces only one DBWR process to start.

--------------------------------------------------------------------------------


Choosing Between Multiple DBWR Processes and I/O Slaves
Configuring multiple DBWR processes benefits performance when a single DBWR process is unable to keep up with the required workload. However, before configuring multiple DBWR processes, check whether asynchronous I/O is available and configured on the system. If the system supports asynchronous I/O but it is not currently used, then enable asynchronous I/O to see if this alleviates the problem. If the system does not support asynchronous I/O, or if asynchronous I/O is already configured and there is still a DBWR bottleneck, then configure multiple DBWR processes.


--------------------------------------------------------------------------------
Note:
If asynchronous I/O is not available on your platform, then asynchronous I/O can be disabled by setting the DISK_ASYNCH_IO initialization parameter to FALSE.

--------------------------------------------------------------------------------


Using multiple DBWRs parallelizes the gathering and writing of buffers. Therefore, multiple DBWn processes should deliver more throughput than one DBWR process with the same number of I/O slaves. For this reason, the use of I/O slaves has been deprecated in favor of multiple DBWR processes. I/O slaves should only be used if multiple DBWR processes cannot be configured.

 

 

 

如何鉴别系统是否使用了asynchronous I/O嘛

 

在9iR2以后oracle才支持aio的,但默认它们是不支持aio,如果要打开对aio的支持,需要重新链接一下可执行文件,9iR2与10g中打开aio选项的方式也是不同,所以需要注意,还有就是初始化参数中,对于data file使用raw devices或file system,那参数的设置也稍微有些差异。

9iR2:
1) cd to $ORACLE_HOME/rdbms/lib
a) make -f ins_rdbms.mk async_on
b) make -f ins_rdbms.mk ioracle
2) Parameter settings in init.ora for raw devices:
set 'disk_asynch_io=true' (default value is true)
2) Parameter settings in init.ora file for filesystem files:
a) set 'disk_asynch_io=true' (default value is true)
b) set 'filesystemio_options=asynch'
10gR1/10gR2:
1.1) In RHEL 2.1
Requires libaio packages.
libaio-0.3.13-3.i386.rpm
libaio-devel-0.3.13-3.i386.rpm
1.2)make option
make PL_ORALIBS=-laio -f ins_rdbms.mk async_on
1.3)In init.ora file add following option.
for raw devices
disk_asynch_io=true (this is default option)
for file system
filesystemio_options =asynch
disk_asynch_io=true (this is default option)
2.1) In RHEL 3
Requires libaio packages. (RHEL 3 Update 2)
libaio-0.3.96-3.i386.rpm
libaio-devel-0.3.96-3.i386.rpm
2.2) Make Option
make PL_ORALIBS=-laio -f ins_rdbms.mk async_on
3.3)In init.ora file add following option.
for data files on raw devices
disk_asynch_io=true (this is default option)
for data files on file system
filesystemio_options =asynch
disk_asynch_io=true (this is default option)
3.1) In RHEL 4
Requires libaio packages. (RHEL 4 Update 3)
libaio-devel-0.3.105-2.i386.rpm
libaio-0.3.105-2.i386.rpm
3.2) Make Option
make PL_ORALIBS=-laio -f ins_rdbms.mk async_on
3.3)In init.ora file add following option.
for data files on raw devices
disk_asynch_io=true (this is default option)
for data files on file system
filesystemio_options =asynch
disk_asynch_io=true (this is default option)

分享到:
评论

相关推荐

    oracle IO问题解析

    Oracle IO问题解析 Oracle IO 问题解析是指 Oracle 数据库中读写操作对 IO 的影响,包括写操作和读操作。写操作包括控制文件的写入、用户数据的修改、Redo Log 的写入、Archive Log 的写入和临时表空间的写入等。...

    Oracle IO问题解析

    Oracle数据库系统是企业级数据管理的核心,而IO(Input/Output)问题则直接影响到数据库的性能和稳定性。本文将深入探讨Oracle中的IO配置、管理以及性能优化,为DBA(数据库管理员)和开发人员提供宝贵的参考资料。 ...

    Oracle数据库服务器IO高的分析方案.docx

    为了判断Oracle数据库服务器是否存在IO性能问题,通常需要关注以下几个指标: **知识点:** - **单个IO响应时间**:衡量一个IO请求从发出到完成所需的时间,是评估IO性能的重要指标之一。 - **标准**:一般情况下...

    Oracle数据库优化之数据库磁盘IO

    在优化数据库磁盘IO时,需要监控数据库的性能,检查系统的I/O问题,使用V$FILESTAT确定oracle文件I/O的进程,分布I/O减少磁盘竞争,避免动态空间管理,确定动态扩展,分配分区,避免回滚段的动态空间管理,减少迁移...

    Oracle-IO问题及性能调优.docx

    Oracle IO 问题及性能调优 Oracle IO 问题是数据库性能优化的重要方面,任何数据库系统中都存在大量的读写操作,IO 问题也往往是导致数据库性能问题的重要原因。以下是 Oracle IO 问题及性能调优的相关知识点: ...

    oracle IO 使用情况

    通常,我们可以通过以下方式来监控Oracle数据库的IO: 1. **V$SESSION_WAIT** 视图:这个视图提供了当前会话正在等待的事件信息,包括I/O相关的等待事件,如“db file sequential read”(顺序读取数据库文件)和...

    Oracle数据库服务器IO高的分析方案和案例探讨.pdf

    本文旨在探讨 Oracle 数据库服务器 IO 高的分析方案和案例探讨,旨在帮助系统管理员和存储管理员更好地理解 Oracle 数据库服务器 IO 高的问题,并提供了一些实用的解决方案。 一、 Oracle 数据库服务器 IO 高的原因...

    ORACLE Fusion-io最佳实践

    "ORACLE Fusion-io 最佳实践" ORACLE Fusion-io 最佳实践是指如何使用 Fusion-io 存储设备来优化 ORACLE 数据库的性能。Fusion-io 是基于 NAND Flash 技术的存储设备,具有高性能和低延迟的特点。相比较于传统的...

    oracle性能监控sql 监控当前会话 执行的sql及io等信息

    可以使用以下SQL语句来查询会话信息和会话IO: ```sql select a.sid, block_gets, consistent_gets, physical_reads, block_changes, consistent_changes, b.serial#, b.username, b.command, b....

    Oracle IO问题解析.pdf

    Oracle IO问题解析.pdfOracle IO问题解析.pdfOracle IO问题解析.pdfOracle IO问题解析.pdfOracle IO问题解析.pdfOracle IO问题解析.pdf

    Oracle-IO问题及性能调优

    因此,对Oracle数据库进行I/O问题的诊断和性能优化至关重要。 一、Oracle I/O体系结构 Oracle数据库采用的是异步I/O模型,主要由以下组件构成: 1. **物理存储**:包括磁盘、RAID阵列、固态硬盘等,存储数据库的...

    JDBC连接Oracle数据库常见问题及解决方法

    "JDBC连接Oracle数据库常见问题及解决方法" 本文将对 JDBC 连接 Oracle 数据库常见问题进行总结和解决方法的介绍。以下是针对不同问题的解决方案: 1. Jbuilder 正确连接 Oracle 数据库需要注意的几个问题 在使用...

    Oracle数据库IO深入分析

    ### Oracle数据库IO深入分析 #### 1. Oracle中IO的产生 ##### 1.1 写操作 在深入了解Oracle数据库的I/O操作之前,我们首先需要了解Oracle数据库的基本物理结构,这有助于更好地理解I/O产生的原因及其过程。 **...

    Oracle_IO_性能调优手册

    《Oracle_IO_性能调优手册》是一本专为IT专业人士准备的深度指南,主要关注如何优化Oracle数据库的I/O性能。在Oracle数据库管理中,I/O性能是影响系统整体效率的关键因素,尤其对于大规模数据处理和高并发业务场景至...

    oracle基本知识+内存分析+数据库IO深入分析

    本资料包包含了三份PDF文件,分别是“oracle内存分析”、“Oracle数据库IO深入分析”以及“oracle基本知识”,旨在帮助读者深入理解Oracle的核心概念和技术。 首先,"oracle基本知识.pdf"将涵盖Oracle数据库的基础...

    如何判断数据库IO是否慢

    本月远程支持的一个项目中出现了数据库响应缓慢的问题,最终发现这是由于操作系统层面的IO性能不佳所致。为了确保解释充分、具有说服力,本文将深入探讨如何利用Oracle自带的工具来判断数据库IO是否过慢,从而为后续...

    Oracle-IO问题及性能调优.pdf

    Oracle数据库的I/O性能问题及调优是数据库管理和性能优化的重要环节。I/O性能问题通常由磁盘I/O速度和效率所引起,它直接影响到数据库操作的响应时间,包括查询、更新、事务提交等。而性能调优则涉及到多种技术手段...

    Oracle_IO.rar_oracle

    Oracle I/O涉及到数据的读取、写入以及缓存管理等多个层面,理解其运行过程对于优化数据库性能和解决相关问题具有重要意义。 Oracle I/O的基础在于操作系统级别的I/O操作,但Oracle通过其自身的内存结构和管理机制...

    Oracle10G控制台解决办法-Io 异常:Unknown host specified

    Oracle10G控制台解决办法-Io 异常:Unknown host specified解决方法

Global site tag (gtag.js) - Google Analytics