Oracle在Linux下使用非同步IO配置
最近在測試Oracle的時候,很想測試下使用非同步IO的效能。但是非同步IO是需要專門配置的,否則的話,容易遇到很著名的“ORA-01578: ORACLE data block corrupted (file # 202, block # 257)”的問題。
那麼什麼是非同步IO呢,非同步IO有什麼好處?
一般說來,非同步I/O是和同步I/O相比較來說的,如果是同步I/O,當一個I/O操作執行時,應用程式必須等待,直到此I/O執行完. 相反,非同步I/O操作在後臺執行,I/O操作和應用程式可以同時執行,提高了系統效能; 使用非同步I/O會提高I/O流量,如果應用是對裸裝置進行操作,這種優勢更加明顯, 因此象資料庫,檔案伺服器等應用往往會利用非同步I/O,使得多個I/O操作同時執行.
Oracle在預設情況是不使用非同步IO的。可檢視引數filesystemio_options(預設值為none),有四種選項
■ 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.
Oracle : 11.2.0.0.0
Linux:debian 2.6.18-6-amd64
具體步驟如下:
1、首先用root使用者安裝以下必要的包
# aptitude search libaio
i libaio-dev - Linux kernel AIO access library - development files
i libaio1 - Linux kernel AIO access library - shared library
# aptitude install libaio1 libaio-dev
2、在系統級支援非同步I/O
Oracle建議將aio-max-nr的值設定為1048576或更高。
# echo > /proc/sys/fs/aio-max-nr 1048576
3、在資料庫級啟用非同步I/O
SQL>alter system set disk_asynch_io=TRUE scope=spfile;
SQL>alter system set filesystemio_options=setall scope=spfile;
SQL>shutdown immediate
$ cd $ORACLE_HOME/rdbms/lib
$ ln -s /usr/lib/libaio.so.1 skgaio.o
$ make PL_ORALIBS=-laio -f ins_rdbms.mk async_on
SQL>startup
4、檢查非同步I/O是否在使用
用以下命令即可檢查非同步IO是否在使用,kiocb的值不為0即是已使用。與kernel 2.4.x不同,沒有顯示kiobuf,因為從kernel 2.5.43開始,kiobuf已經從核心中被移除。
$ cat /proc/slabinfo | grep kio
kioctx 64 110 384 10 1 : tunables 54 27 8 : slabdata 11 11 0
kiocb 13 315 256 15 1 : tunables 120 60 8 : slabdata 21 21 44
http://wangwei.cao.blog.163.com/blog/static/10236252620108323337465/
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/21601207/viewspace-677887/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- java同步非阻塞IOJava
- Java 非阻塞 IO 和非同步 IOJava非同步
- IO模式和IO多路複用(阻塞IO、非阻塞IO、同步IO、非同步IO等概念)模式非同步
- IO - 同步 非同步 阻塞 非阻塞的區別非同步
- IO通訊模型(二)同步非阻塞模式NIO(NonBlocking IO)模型模式BloC
- python之IO併發-阻塞IO 非阻塞IO IO多路複用 非同步IO(協程)Python非同步
- 談談對不同I/O模型的理解 (阻塞/非阻塞IO,同步/非同步IO)模型非同步
- 在 Linux 下配置 RAIDLinuxAI
- 如何解讀 Java IO、NIO 中的同步阻塞與同步非阻塞?Java
- 【IO】Linux下的五種IO模型Linux模型
- oracle非同步IO之filesystemio_options引數Oracle非同步
- 11、協程和io教程01 -- 併發 並行 同步 非同步 阻塞 非阻塞 以及 IO多路複用並行非同步
- 【死磕NIO】— 阻塞IO,非阻塞IO,IO複用,訊號驅動IO,非同步IO,這你真的分的清楚嗎?非同步
- Linux 阻塞和非阻塞 IO 實驗學習Linux
- 阻塞IO與非阻塞IO
- 手把手教你如何使用Python的非同步IO框架:asyncio(下)Python非同步框架
- Java網路程式設計和NIO詳解5:Java 非阻塞 IO 和非同步 IOJava程式設計非同步
- 如何給女朋友解釋什麼是IO中的阻塞、非阻塞、同步、非同步?非同步
- Django專案在Linux下基礎配置DjangoLinux
- 在Linux下安裝配置Cntlm代理教程Linux
- 在Linux中,如何配置和使用Xen?Linux
- Elasticsearch 在Linux下的安裝部署和配置ElasticsearchLinux
- ogg for oracle 19c 非cdb安裝配置Oracle
- 在 Linux 命令列下使用“原力”Linux命令列
- asyncio(非同步io)非同步
- jdk在linux下安裝、配置環境變數JDKLinux變數
- 在非 laravel 專案中使用 laravel 的特性 5: 配置 config && envLaravel
- 我在 Linux 中使用的 5 個 Git 配置LinuxGit
- Linux下使用Nginx做CDN伺服器下的配置LinuxNginx伺服器
- 同步非同步,阻塞非阻塞非同步
- 非同步、同步、阻塞、非阻塞非同步
- [作業系統]阻塞io 非阻塞io Epoll作業系統
- FastAPI之阻塞式io和非阻塞式ioASTAPI
- linux下配置javaLinuxJava
- 使用oracle的logminer同步資料Oracle
- 11. Oracle for Linux安裝和配置—11.3. Oracle安裝和配置—11.3.3. Oracle net配置OracleLinux
- 非空校驗在oracle和mysql中的用法OracleMySql
- 「linux」例項淺析epoll的LT和ET模式,ET模式為何要使用非阻塞IOLinux模式
- VSCode 使用Settings Sync同步配置VSCode