真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

oracle異步IO簡(jiǎn)述

       在同步IO中,線程啟動(dòng)一個(gè)IO請(qǐng)求之后就進(jìn)入等待狀態(tài),知道IO結(jié)束后線程才結(jié)束等待,轉(zhuǎn)而去處理其他請(qǐng)求。異步IO將IO請(qǐng)求發(fā)送到內(nèi)核后就不管了,無(wú)需等待IO操作完成,就去處理其他事情了。異步IO可以提高性能。但是顯而易見(jiàn)的是對(duì)磁盤(pán)處理IO能力有較高要求,否則提交的處理請(qǐng)求多,處理能力跟不上,根本無(wú)法達(dá)到提高性能的要求。異步IO需要Linux內(nèi)核是2.6版本。
檢查操作系統(tǒng)是否啟用異步IO:
cat /proc/slabinfo | grep kio
kioctx                29     40    384   10    1 : tunables   54   27    8 : slabdata      4      4      0
kiocb                  0      0    256   15    1 : tunables  120   60    8 : slabdata      0      0      0
kiocb前兩個(gè)值是0,表明異步IO沒(méi)有啟用。

要啟用異步IO,需要兩個(gè)參數(shù)配合:
alter system set filesystemio_options=setall scope=spfile;
alter system set disk_asynch_io = true scope=spfile;   --默認(rèn)就是開(kāi)啟的
disk_asynch_io開(kāi)啟后還需要filesystemio_options也開(kāi)啟,不然還是不會(huì)啟用,類(lèi)似雙開(kāi)關(guān)。這種默認(rèn)情況會(huì)出現(xiàn)db file async I/O submit等待事件。
filesystemio_options參數(shù)有四個(gè)值:
ASYNCH:在文件系統(tǒng)文件上啟用異步I/O,在數(shù)據(jù)傳送上沒(méi)有計(jì)時(shí)要求。
DIRECTIO:在文件系統(tǒng)文件上啟用直接I/O,繞過(guò)buffer cache。
SETALL:在文件系統(tǒng)文件上啟用異步和直接I/O。
NONE:在文件系統(tǒng)文件上禁用異步和直接I/O。

如果disk_asynch_io=false的話還可以設(shè)置參數(shù)dbwr_io_slaves為一個(gè)大于0的值來(lái)模仿異步io。

內(nèi)核參數(shù)中,fs.aio-max-nr參數(shù)指的是可以同時(shí)擁有的的異步IO請(qǐng)求數(shù)目。oracle建議大于等于1048576。

root@bd-dev-mingshuo-183:/home/oracle#more /etc/sysctl.conf |grep aio
fs.aio-max-nr = 1048576

SQL> sho parameter disk_asynch_io

NAME                                 TYPE        VALUE
------------------------------------ ----------- ------------------------------
disk_asynch_io                       boolean     TRUE

SQL> sho parameter filesystem

NAME                                 TYPE        VALUE
------------------------------------ ----------- ------------------------------
filesystemio_options                 string      none

root@bd-dev-mingshuo-183:/home/oracle#ps -ef|grep dbw
root      5068  4412  0 16:56 pts/5    00:00:00 grep dbw
oracle   10201     1  0 Jul11 ?        00:02:41 ora_dbw0_mingdb
root@bd-dev-mingshuo-183:strace -p 10201 -o /home/oracle/dbwn.trc

寫(xiě)入一些數(shù)據(jù):
SQL> create table test_io as select * from user_objects;
SQL> update test_io set object_id=11 ; SQL>  select file_no,filetype_name,asynch_io from v$iostat_file;

   FILE_NO FILETYPE_NAME                ASYNCH_IO
---------- ---------------------------- ---------
         0 Other                        ASYNC_OFF
         0 Control File                 ASYNC_OFF
         0 Log File                     ASYNC_OFF
         0 Archive Log                  ASYNC_OFF
         0 Data File Backup             ASYNC_OFF
         0 Data File Incremental Backup ASYNC_OFF
         0 Archive Log Backup           ASYNC_OFF
         0 Data File Copy               ASYNC_OFF
         0 Flashback Log                ASYNC_OFF
         0 Data Pump Dump File          ASYNC_OFF
         0 External Table               ASYNC_OFF

   FILE_NO FILETYPE_NAME                ASYNCH_IO
---------- ---------------------------- ---------
         1 Data File                    ASYNC_OFF
         1 Temp File                    ASYNC_OFF
         2 Data File                    ASYNC_OFF
         2 Temp File                    ASYNC_OFF
         3 Data File                    ASYNC_OFF
         3 Temp File                    ASYNC_OFF
         4 Data File                    ASYNC_OFF
         5 Data File                    ASYNC_OFF
         6 Data File                    ASYNC_OFF
         7 Data File                    ASYNC_OFF
         8 Data File                    ASYNC_OFF

   FILE_NO FILETYPE_NAME                ASYNCH_IO
---------- ---------------------------- ---------
         9 Data File                    ASYNC_OFF
        10 Data File                    ASYNC_OFF
        11 Data File                    ASYNC_OFF
        14 Data File                    ASYNC_OFF
        15 Data File                    ASYNC_OFF

27 rows selected.

修改參數(shù)并重啟
alter system set filesystemio_options=setall scope=spfile;
startup force  --測(cè)試環(huán)境,暴力了一點(diǎn)。

重啟后再寫(xiě)入一些數(shù)據(jù) root@bd-dev-mingshuo-183:/home/oracle#ps -ef|grep dbw
oracle    5137     1  0 16:59 ?        00:00:00 ora_dbw0_mingdb
root      5374  4412  0 16:59 pts/5    00:00:00 grep dbw
strace -p 5137 -o /home/oracle/dbwn_aio.trc

對(duì)比兩種情況下的trace文件:
同步IO:
root@bd-dev-mingshuo-183:/home/oracle#more dbwn.trc |grep pwrite
pwrite(267, "\2\242\0\0FW\202\1\326\351;\0\0\0\10\4j\257\0\0\207\0\35\0\211\0\0\0\"\0\f\f"..., 8192, 1256767488) = 8192
pwrite(267, "\2\242\0\0\360g\202\1\275\351;\0\0\0\2\4X\17\0\0\235\0\0\0\213\0\0\0\37\00099"..., 8192, 1291714560) = 8192
pwrite(267, "\2\242\0\0\303\177\202\1\276\351;\0\0\0\2\4\351\367\0\0\254\0\31\0\212\0\0\0 \00011"..., 8192, 1341677568) = 8192
pwrite(267, "\2\242\0\0\260\213\202\1\270\351;\0\0\0\4\4\263_\0\0&\1\31\0006\0\0\0\21\0&&"..., 8192, 1366687744) = 8192

異步IO:
more /home/oracle/dbwn_aio.trc|grep io_
io_submit(140219848069120, 1, {{data:0x7f8775482ed0, pwrite, filedes:262, str:"\6\242\0\0\3Y\0\1\246z=\0\0\0\1\6\246\310\0\0\2\0\0\0\322\"\0\0\245z=\0"..., nbytes:8192, offset:186671104}}) = 1
io_getevents(140219848069120, 1, 128, {{0x7f8775482ed0, 0x7f8775482ed0, 8192, 0}}, {600, 0}) = 1
io_submit(140219848069120, 1, {{data:0x7f8775482ed0, pwrite, filedes:262, str:"\6\242\0\0\360j\0\1\246z=\0\0\0\1\6\257\337\0\0\1\36@\0\323\"\0\0\245z=\0"..., nbytes:8192, offset:224264192}}) = 1
io_getevents(140219848069120, 1, 128, {{0x7f8775482ed0, 0x7f8775482ed0, 8192, 0}}, {600, 0}) = 1
io_submit(140219848069120, 1, {{data:0x7f8775482ed0, pwrite, filedes:262, str:"\6\242\0\0\177D\0\1\246z=\0\0\0\1\6\305\207\0\0\2\0\0\0\324\"\0\0\245z=\0"..., nbytes:8192, offset:143646720}}) = 1
io_getevents(140219848069120, 1, 128, {{0x7f8775482ed0, 0x7f8775482ed0, 8192, 0}}, {600, 0}) = 1

pwrite代表同步IO。
io_submit/io_getevents代表異步IO。io_submit代表一次異步IO請(qǐng)求,io_getevents獲得IO處理結(jié)果。獲取結(jié)果的目的是將結(jié)果寫(xiě)入io_event,而且在io_submit和io_getevents之間還有很多步驟,并不是這里看到的請(qǐng)求了還在繼續(xù)等待,好像與異步IO相違背,其實(shí)并沒(méi)有。

開(kāi)啟異步IO后:
SQL> select file_no,filetype_name,asynch_io from v$iostat_file;

   FILE_NO FILETYPE_NAME                ASYNCH_IO
---------- ---------------------------- ---------
         0 Other                        ASYNC_OFF
         0 Control File                 ASYNC_OFF
         0 Log File                     ASYNC_OFF
         0 Archive Log                  ASYNC_OFF
         0 Data File Backup             ASYNC_OFF
         0 Data File Incremental Backup ASYNC_OFF
         0 Archive Log Backup           ASYNC_OFF
         0 Data File Copy               ASYNC_OFF
         0 Flashback Log                ASYNC_OFF
         0 Data Pump Dump File          ASYNC_OFF
         0 External Table               ASYNC_OFF

   FILE_NO FILETYPE_NAME                ASYNCH_IO
---------- ---------------------------- ---------
         1 Data File                    ASYNC_ON
         1 Temp File                    ASYNC_ON
         2 Data File                    ASYNC_ON
         2 Temp File                    ASYNC_ON
         3 Data File                    ASYNC_ON
         3 Temp File                    ASYNC_ON
         4 Data File                    ASYNC_ON
         5 Data File                    ASYNC_ON
         6 Data File                    ASYNC_ON
         7 Data File                    ASYNC_ON
         8 Data File                    ASYNC_ON

   FILE_NO FILETYPE_NAME                ASYNCH_IO
---------- ---------------------------- ---------
         9 Data File                    ASYNC_ON
        10 Data File                    ASYNC_ON
        11 Data File                    ASYNC_ON
        14 Data File                    ASYNC_ON
        15 Data File                    ASYNC_ON

27 rows selected.

數(shù)據(jù)文件和臨時(shí)文件都變成異步方式了,不過(guò)還是有一些文件仍然是同步,這可能是因?yàn)椴荒軄G數(shù)據(jù)的緣故。比如日志文件如果啟用異步IO了,那么很可能就會(huì)造成數(shù)據(jù)丟失。

成都創(chuàng)新互聯(lián)公司于2013年成立,是專業(yè)互聯(lián)網(wǎng)技術(shù)服務(wù)公司,擁有項(xiàng)目成都做網(wǎng)站、成都網(wǎng)站設(shè)計(jì)網(wǎng)站策劃,項(xiàng)目實(shí)施與項(xiàng)目整合能力。我們以讓每一個(gè)夢(mèng)想脫穎而出為使命,1280元廬山做網(wǎng)站,已為上家服務(wù),為廬山各地企業(yè)和個(gè)人服務(wù),聯(lián)系電話:18980820575


新聞名稱:oracle異步IO簡(jiǎn)述
文章地址:http://weahome.cn/article/jpghcj.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部