Linux下启用异步IO

#是否已经安装了AIO包
#rpm -qa|grep aio
libaio-0.3.107-10.el6.x86_64
libaio-devel-0.3.107-10.el6.x86_64
libsane-hpaio-3.12.4-4.el6_4.1.x86_64

#数据库在链接时是否已经加载了aio的包
$/usr/bin/ldd $ORACLE_HOME/bin/oracle | grep libaio
        libaio.so.1 => /lib64/libaio.so.1 (0x00000032e6800000)
如果没有看到libaio的包,说明Oracle没有链接aio,那么这时就需要重新make oracle的可执行文件,10g以后的方法为
make PL_ORALIBS=-laio -f ins_rdbms.mk async_on

#数据库的初始化参数开启了异步IO
SQL> show parameter disk_asynch_io
NAME                                 TYPE        VALUE
------------------------------------ ----------- ------------------------------
disk_asynch_io                       boolean     TRUE

SQL> show parameter filesystemio_options
NAME                                 TYPE        VALUE
------------------------------------ ----------- ------------------------------
filesystemio_options                 string      SETALL

filesystemio_options有4个选项
ASYNCH enable asynchronous I/O on file system files, which has no timing requirement for transmission.
DIRECTIO: enable direct I/O on file system files, which bypasses the buffer cache.
SETALL: enable both asynchronous and direct I/O on file system files.
NONE: disable both asynchronous and direct I/O on file system files.

#修改内核参数文件/etc/sysctl.conf
fs.aio-max-nr = 1048576

#确认异步IO特性已经使用
#cat /proc/slabinfo | grep kio
kioctx              8338   8380    384   10    1 : tunables   54   27    8 : slabdata    838    838      1
kiocb               1377   1665    256   15    1 : tunables  120   60    8 : slabdata    111    111    344
kiocb的第二、三列都不为0,表示ORACLE的异步IO特性已经使用。

原文地址:https://www.cnblogs.com/niyuelong/p/10223806.html

时间: 2024-10-05 05:50:09

Linux下启用异步IO的相关文章

Linux下启用Chrome/Firefox的Java插件

JDK 已经安装好,但是浏览器运行 Java Applet 时提示需安装 Java 插件. 这时,在浏览器安装目录中 plugins 文件夹下创建2个重要的符号链接即可. libnpjp2.so   (this file exist in /usr/lib/jvm/jdk1.6.0_35/jre/lib/i386/libnpjp2.so) libjavaplugin_oji.so (this file exist in /usr/lib/jvm/jdk1.6.0_35/jre/plugin/i3

linux下的文件IO缓冲区,及其相关操作

linux下的文件IO操作 浅谈文件IO缓冲 Read()和write()函数在操作磁盘文件时不会直接发起磁盘访问,而是仅仅在用户空间缓冲区与内核缓冲区高速缓存之间复制数据. 当调用write()函数的写入3个字节的时候,由于系统调用与磁盘操作并不同步,在write()函数结束后续某个时刻,内核才会将其缓冲区中的数据写入磁盘.如果在此期间,另一个进程试图读取该文件的这几个字节,那么内核将自动从缓冲区高速缓存中提供这些数据,而不是文件中. 与此同理,对输入而言,内核从磁盘中读取数据并存储到内核缓冲

Linux下5种IO模型的小结

概述 接触网络编程,我们时常会与各种与IO相关的概念打交道:同步(Synchronous).异步(ASynchronous).阻塞(blocking)和非阻塞(non-blocking).关于概念的区别在知乎上看到一位朋友(链接)打了一个比较形象的比喻: 你打电话问书店老板有没有<分布式系统>这本书,如果是同步通信机制,书店老板会说,你稍等,”我查一下",然后开始查啊查,等查好了(可能是5秒,也可能是一天)告诉你结果(返回结果).而异步通信机制,书店老板直接告诉你我查一下啊,查好了打

linux 下同步异步,阻塞非阻塞的一些想法

同步异步 阻塞非阻塞 今天和小伙伴讨论了这个问题,网上的说法有很多种,我按照自己的思路总结一边. 一句话总结区别: 同步异步关注的是事件发生时你的行为. 阻塞非阻塞关注的是的等待事件的状态. 下面看具体的分析 同步异步 同步: 在事件发生前,你的状态是时刻关注此事件,等待此事件给你返回结果. 例子: 烧水,同步就是你时刻关注着它,一段时间后,烧水壶冒烟了,你看见了,你知道水已经烧好. 那么在这段时间内你需要一直看着它是否冒烟. 异步: 在事件发生前,你并不关心此事件,而是自己去忙自己的,事件完成

Linux下C编程-----IO/文件操作 模拟linux ls程序显示文件系统树形结构(2)

Linux下的IO/文件操作练习,知识虽然简单 但是往往基础容易被忽略,偶尔的练习是有必要的. 练习printf /************************************************************************* > File Name: printf.c > Author: > Mail: > Created Time: Wed 11 Feb 2015 01:08:15 AM PST ***********************

Linux下C编程-----IO/文件操作/内存映射 实现简单记录存储(3)

利用linux下的文件内存映射可以实现进程共享数据,我们可以把一个文件映射到虚拟内存中使多个进程进行共享, 到这里我们大概能想到他能应用到的领域 是很广泛的 主要涉及到 mmap  munmap   msync 三个函数的应用 下面贴代码 下面一段代码是为文件建立一个简单的记录存储,并且通过内存映射修改文件内容 /************************************************************************* > File Name: memdb

oracle启用异步IO(db file async I/O submit)

市局双随机awr报告中有大量db file async I/O submit等待事件 参考两篇文章: [案例]Oracle等待事件db file async I/O submit产生原因和解决办法 db file async I/O submit 等待事件优化 查看数据文件是否开启异步IO Select Name, Asynch_Io From V$datafile f, V$iostat_File i Where f.File# = i.File_No And (Filetype_Name =

从操作系统层面理解Linux下的网络IO模型

I/O( INPUT OUTPUT),包括文件I/O.网络I/O.计算机世界里的速度鄙视: 内存读数据:纳秒级别. 千兆网卡读数据:微妙级别.1微秒=1000纳秒,网卡比内存慢了千倍.? 磁盘读数据:毫秒级别.1毫秒=10万纳秒 ,硬盘比内存慢了10万倍.? CPU一个时钟周期1纳秒上下,内存算是比较接近CPU的,其他都等不起. CPU 处理数据的速度远大于I/O准备数据的速度 . 任何编程语言都会遇到这种CPU处理速度和I/O速度不匹配的问题! 在网络编程中如何进行网络I/O优化:怎么高效地利

netty学习(一)--linux下的网络io模型简介

linux的内核将所有的外部设备都看作一个文件来操作,对一个文件的读写操作会调用内核提供的系统命令 ,返回一个file descriptor(fd,文件描述符).而对一个socket的读写也会有相应的描述符,成为socketfd (socket描述符),描述符就是一个数字,它指向内核中的一个结构体(文件路径,数据区等一些属性). 根据unix编程对I/O模型的分类,unix提供了5种I/O模型,分别是: (1)阻塞I/O模型:最常使用的就是阻塞I/O模型,在默认条件下所有的文件操作都是阻塞的!!