Oracle 之 AIO (非同步io)
Linux 非同步 I/O (AIO)是 Linux 核心中提供的一個增強的功能。它是Linux 2.6 版本核心的一個標準特性,AIO 背後的基本思想是允許程式發起很多 I/O 操作,而不用阻塞或等待任何操作完成。稍後或在接收到 I/O 操作完成的通知時,程式就可以檢索 I/O 操作的結果。
同步IO:執行緒啟動一個IO操作然後就立即進入等待狀態,直到IO操作完成後才醒來繼續執行。
非同步IO:執行緒傳送一個IO請求到核心,然後繼續處理其他的事情,核心完成IO請求後,將會通知執行緒IO操作完成
補充:當後臺等待事件排在第一的是 db file async I/O submit,這是一個非同步IO相關的等待事件,可以考慮開啟非同步io。
1、--檢視系統是否使用非同步IO 。 slab是Linux的記憶體分配器,AIO相關的記憶體結構已經分配。
more /proc/slabinfo |grep kio
[root@localhost ~]# grep kio /proc/slabinfo
kioctx 0 0 384 10 1 : tunables 54 27 0 : slabdata 0 0 0
kiocb 0 0 256 15 1 : tunables 120 60 0 : slabdata 0 0 0
看到kiocb行顯示為0,說明非同步IO沒有啟動。
2、 檢視資料庫是否開啟非同步io
(11G)SYS@qixindb> show parameter disk_asynch_io
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
disk_asynch_io boolean TRUE
(11G)SYS@qixindb> show parameter filesystem
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
filesystemio_options string none
filesystemio_options 的四種值:
ASYNCH: enable asynchronous I/O on file system files, which has no timing requirement for transmission.
在檔案系統檔案上啟用非同步I/O,在資料傳送上沒有計時要求。
DIRECTIO: enable direct I/O on file system files, which bypasses the buffer cache.
在檔案系統檔案上啟用直接I/O,繞過buffer cache。
SETALL: enable both asynchronous and direct I/O on file system files.
在檔案系統檔案上啟用非同步和直接I/O。
NONE: disable both asynchronous and direct I/O on file system files.
在檔案系統檔案上禁用非同步和直接I/O。
3、 oracle已經連結了aio的包
[oracle@localhost ~]$ /usr/bin/ldd $ORACLE_HOME/bin/oracle | grep libaio
libaio.so.1 => /lib64/libaio.so.1 (0x0000003e13000000)
說明:檢查顯示oracle已經連結了aio的包
4、 調整資料庫引數 開啟aio
資料庫中的filesystemio_options引數設定為none,看來oracle中也沒有配置非同步IO,
這裡可以將資料庫中的filesystemio_options引數調整為setall;
SQL> alter system set filesystemio_options = setall scope=spfile;
SQL> alter system set disk_asynch_io = true scope=spfile;
SQL> shutdown immediate;
SQL> startup;
5、檢視aio是否生效
[oracle@localhost ~]$ more /proc/slabinfo |grep kio
kioctx 130 160 384 10 1 : tunables 54 27 8 : slabdata 16 16 0
kiocb 16 30 256 15 1 : tunables 120 60 8 : slabdata 2 2 1
6、 資料庫層面檢視是否開啟非同步io
select name, asynch_io
from v$datafile f, v$iostat_file i
where f.file# = i.file_no
and (filetype_name = 'Data File' or filetype_name = 'Temp File');
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/31383567/viewspace-2144666/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- Oracle在Linux下使用非同步IO(aio)配置(轉)OracleLinux非同步AI
- Linux的非同步IO(AIO)在Oracle中應用Linux非同步AIOracle
- 網路IO之阻塞、非阻塞、同步、非同步總結非同步
- java同步非阻塞IOJava
- Java 非阻塞 IO 和非同步 IOJava非同步
- IO模式和IO多路複用(阻塞IO、非阻塞IO、同步IO、非同步IO等概念)模式非同步
- direct IO和AIOAI
- 轉:SYBASE在Linux下使用非同步IO(aio)配置Linux非同步AI
- IO - 同步 非同步 阻塞 非阻塞的區別非同步
- ORACLE 非同步IOOracle非同步
- oracle非同步IO之filesystemio_options引數Oracle非同步
- 談談對不同I/O模型的理解 (阻塞/非阻塞IO,同步/非同步IO)模型非同步
- IO通訊模型(二)同步非阻塞模式NIO(NonBlocking IO)模型模式BloC
- BIO、NIO、多路複用IO、AIOAI
- FastAPI之阻塞式io和非阻塞式ioASTAPI
- 如何解讀 Java IO、NIO 中的同步阻塞與同步非阻塞?Java
- 10g on aix 6.1 預檢查不通過 報aio 非同步io不通過AI非同步
- 11、協程和io教程01 -- 併發 並行 同步 非同步 阻塞 非阻塞 以及 IO多路複用並行非同步
- 阻塞IO與非阻塞IO
- 【死磕NIO】— 阻塞IO,非阻塞IO,IO複用,訊號驅動IO,非同步IO,這你真的分的清楚嗎?非同步
- 【網路IO系列】IO的五種模型,BIO、NIO、AIO、IO多路複用、 訊號驅動IO模型AI
- Java網路程式設計和NIO詳解5:Java 非阻塞 IO 和非同步 IOJava程式設計非同步
- Linux上Oracle啟用非同步IOLinuxOracle非同步
- 如何給女朋友解釋什麼是IO中的阻塞、非阻塞、同步、非同步?非同步
- 非同步IO,同步IO,Direct IO,FILESYSTEMIO_OPTIONS, DISK_ASYNCH_IO [final]非同步
- 非同步IO非同步
- Oracle在Linux下使用非同步IO配置OracleLinux非同步
- 今天我們來聊Java IO模型,BIO、NIO、AIO三種常見IO模型Java模型AI
- linux oracle AIO實現LinuxOracleAI
- asyncio(非同步io)非同步
- 【轉載】Linux上Oracle啟用非同步IOLinuxOracle非同步
- 檔案讀寫網路IO簡單瞭解,同步IO和非同步IO非同步
- 同步非同步,阻塞非阻塞非同步
- 非同步、同步、阻塞、非阻塞非同步
- 同步、非同步、阻塞、非阻塞非同步
- [作業系統]阻塞io 非阻塞io Epoll作業系統
- Linux上Oracle是否使用非同步io的診斷LinuxOracle非同步
- 同步非同步 與 阻塞非阻塞非同步