首先解释一下异步IO的概念:和同步IO相对的,当异步过程调用时,调用者不能立刻得到结果。实际处理这个调用的部件在完成后,通过状态、通知和回调来通知调用者。
异步I/O有着以下的优点:异步I/O是和同步I/O相比较来说的,如果是同步I/O,当一个I/O操作执行时,应用程序必须等待,直到此I/O执行完。相反,异步I/O操作在后台运行,I/O操作和应用程序可以同时运行,提高了系统性能;使用异步I/O会提高I/O流量,如果应用是对裸设备进行操作,这种优势更加明显,因此像数据库,文件服务器等应用往往会利用异步I/O,使得多个I/O操作同时执行。
异步IO是在多用户、多任务机上产生的,过去我们用的DOS是一种单用户、单任务操作系统,应用程序需要读或写操作时,通过DOS功能调用(INT 21),由功能程序负责读写,应用程序在等待完成,由于DOS的单任务性,不会发生有多个任务同时执行IO操作的。但是在多任务操作系统中,由于多个任务可能同时执行IO操作,操作系统在执行IO操作时,就有同步和异步两种方式:
1.同步方式:一个任务的IO完成后,再开始另一个任务的IO操作;
2.异步方式:IO操作按一定的规则执行,可能先申请的后完成,后申请的先完成。
在单任务系统中,异步方式没有优越性,反而增加了调度的开销,但在多任务系统中,如果按同步方式,先申请先执行,在磁盘IO中,则磁头移动的过程中是不能读写的,定位以后才能读写,这样移动的过程就浪费了,磁盘的效率就低。在异步方式中,磁头移动的过程中,如果途中有其它合适的IO操作,先完成这个IO操作,然后再继续移动,这样效率就提高了,也就有可能后申请,先完成。异步方式在多任务系统中,IO操作的效率是提高很明显的。磁头移动过程,需要一定的规则来进行调度,通常采用“电梯算法”,这个算法具体是:磁头沿一个方向移动,有合适的IO就处理,然后继续移动,直到这个方向的前面没有IO申请,再向反方向移动。
早在80年代,NETWARE操作系统就采用了电梯算法,也就是NETWARE在服务器硬盘上操作速度快的其中一个原因,SCSI硬盘在单任务操作系统中是没什么优越性的,但是在多任务系统中,其效率就很高,就是因为SCSI硬盘在处理IO申请时,采用了电梯算法。(当然SCSI硬盘的平均寻道时间短、平均等待时间短、缓存大也是快速的原因)
到目前为止,所有的多任务操作系统都采用了电梯算法,估计HP小型机也不例外。并且不需要用户设置,系统默认就是采用的。
在数据库应用中,这是典型的多任务应用,采用异步IO是最为明智的,可以说大型数据库毫不例外地从中获得好处,因为IO的时间占用与CPU相比是1000倍以上的,往往IO是数据库的瓶颈,所以IO性能提高可以使数据库的性能相应提高。Oracle 10g中默认支持了异步IO。
相关推荐
在HP-UX操作系统中,配置异步IO(Asynchronous I/O,简称Aio)是为了提升系统性能,特别是在处理大量I/O操作的场景下,如运行Oracle、Sybase等数据库时。传统的同步IO模式会在每次I/O操作完成后等待确认,这在高负载...
在本节中,我们将详细介绍 Oracle 数据库性能优化实务中数据文件 IO 相关的因素、参数、操作系统的影响、存储子系统的影响、RAID 种类和 IO 特性、磁盘转速和数量对 IO 总体性能的影响、操作系统对文件 IO 的影响、...
异步I/O(Asynchronous I/O,简称AIO)是一种高效的数据访问方式,在多种操作系统平台上都有应用,如Unix、Linux等。相较于同步I/O,异步I/O可以显著提高系统的响应速度与吞吐量,特别是在多任务并行执行的场景下...
在Linux操作系统中,异步I/O(Asynchronous Input/Output,简称AIO)是一种高效的I/O操作模式,它允许应用程序在发起I/O操作后立即继续执行其他任务,而无需等待I/O操作完成。这种模式显著提高了系统的并发性能,...
在企业级平台上,当IO请求的响应时间超过10毫秒时,用户可能会感觉到明显的延迟。然而,响应时间的变化受到多种因素的影响,包括数据迁移至共享存储、存储设备故障以及业务增长导致的IO性能瓶颈等。因此,需要从不同...
* 开启操作系统异步 IO(AIO): + 安装 libaio-0.3.106 软件包 + 检查在操作系统中 AIO 是否运行 五、网络配置要求 * 在生产环境中要求尽量使用 2 块千/百兆网卡做绑定,预防网卡、网线、端口、单个网络交换机...
4. **利用操作系统特性**:在支持的操作系统上启用异步I/O;调整文件系统的块大小以匹配数据库块大小;优化操作系统的内存管理设置。 #### 三、IO监控与调整 ##### Windows环境下的IO监控 在Windows环境下,可以...
- 下载对应操作系统的Orion版本(Linux/x86、Solaris/SPARC或Windows/x86)。 - 解压缩并安装Orion,如在Linux/Solaris上通过gunzip命令,Windows上运行msi安装程序。 - 为测试创建文件名,如mytest.lun,并指定...
文档《中金数据LINUX+Oracle RAC+搭建文档》详细记录了在Linux平台上搭建Oracle RAC(Real Application Clusters)的完整流程和要求。Oracle RAC是Oracle提供的用于在多个节点上运行同一数据库实例的技术,能够提高...
在Java编程中,Oracle存储过程的调用与标准输入(System.in)的交互可能会遇到一些问题,特别是当尝试使用System.in进行阻塞IO操作时。这个问题通常涉及到Java的多线程概念、I/O流的处理以及Oracle存储过程的执行...
本文档是关于在 AIX 操作系统下部署 Oracle RAC 平台的详细手册,涵盖了从主机规划到安装 Grid 和 Database 的所有步骤。 一、主机规划 * 硬件环境:需要两台 IBM P740 服务器,配备 DS5020 存储设备。 * 软件环境...
Oracle 11g RAC(Real Application Clusters)安装配置标准手册详细介绍了在AIX操作系统环境下,如何部署和配置Oracle 11g的RAC环境。RAC是Oracle的一种集群技术,允许多个实例共享访问同一数据库,提供了高可用性、...
### DBA在Linux上管理Oracle 10g #### 关键知识点概述 1. **I/O模式的理解与...这些策略有助于确保Oracle数据库在Linux平台上高效稳定地运行。对于DBA来说,深入了解这些技术细节对于有效管理Oracle 10g至关重要。
在给出的文件内容中,涵盖了安装和维护Oracle11g R2 RAC(Real Application Clusters)在HP-UX11.31 IA64版本操作系统上的详细步骤和知识点。Oracle RAC是一种用于构建高可用性数据库的集群技术,适用于HP-UX这样的...
2. **操作系统块**:操作系统为每个I/O请求分配的最小单位,如Linux的块大小通常为4KB或512B。 3. **Oracle块**:Oracle数据库内部使用的最小逻辑存储单位,一般为8KB、16KB或32KB。 4. **Buffer Cache**:缓存...
根据提供的文档信息,本文将...综上所述,Oracle在AIX平台上的架构和调优是一个复杂的过程,涉及到数据库配置、操作系统参数调整等多个方面。通过合理的规划和细致的调优工作,可以显著提高系统的整体性能和稳定性。
Python 3.5是Python 3.x系列的一个重要版本,它引入了许多新特性,如异步IO支持(async/await语法)、新的字典和集合视图操作、更强大的元组解包等。在本项目中,Python 3.5作为主要的编程语言,负责处理业务逻辑、...
§7.1.1 操作系统安装考虑 91 §7.1.2 Oracle系统安装考虑 92 §7.2 关于创建多个Oracle实例问题 93 §7.3 Oracle系统安装后的优化基础工作 94 §7.3.1 Oracle系统有关目录所有文件的保护 94 §7.3.2 避免新用户使用...