<form id="hz9zz"></form>
  • <form id="hz9zz"></form>

      <nobr id="hz9zz"></nobr>

      <form id="hz9zz"></form>

    1. 明輝手游網中心:是一個免費提供流行視頻軟件教程、在線學習分享的學習平臺!

      Oracle中AIO解析

      [摘要]Linux 異步 I/O (AIO)是 Linux 內核中提供的一個增強的功能。它是Linux 2.6 版本內核的一個標準特性,AIO 背后的基本思想是允許進程發起很多 I/O 操作,而不用阻塞或等...

      Linux 異步 I/O (AIO)是 Linux 內核中提供的一個增強的功能。它是Linux 2.6 版本內核的一個標準特性,AIO 背后的基本思想是允許進程發起很多 I/O 操作,而不用阻塞或等待任何操作完成。稍后或在接收到 I/O 操作完成的通知時,進程就可以檢索 I/O 操作的結果。

      同步IO:線程啟動一個IO操作然后就立即進入等待狀態,直到IO操作完成后才醒來繼續執行。
      異步IO:線程發送一個IO請求到內核,然后繼續處理其他的事情,內核完成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

      補充:出現 free buffer waits 等待事件 或者 io不給力的時候, 可以考慮開啟aio。

      以上就是Oracle中AIO解析的詳細內容,更多請關注php中文網其它相關文章!


      學習教程快速掌握從入門到精通的SQL知識。




      日韩精品一区二区三区高清