直接IO

Direct I/O就是當一個進程對系統文件進行IO操作的時候越過系統的文件寫緩衝區和讀緩存區。
文件系統緩衝區:當系統讀寫塊設備,爲了加快讀寫速度,系統維護了一個塊緩衝區。當系統讀
數據的時候,先去緩衝區中讀,如果沒有,再讀寫磁盤。當系統寫數據的時候,先寫數據到緩衝
區中。
Oracle數據庫本身已經有自己的數據緩衝區,如果再加上系統文件的緩衝區。數據就被緩衝了倆
次,系統的內存就被浪費了。而且如果Oracle的數據庫的塊比系統文件的塊小,那麼就會造成系
統的浪費。比如Oracle的塊大小是8K,系統文件的塊大小是16K,那麼Oracle單個讀寫一次就浪費
了8K的資源。
啓用Direct IO
Linux內核2.4開始有Direct I/O功能, 也就是raw device裸設備。raw device可以在低級別被直
接地和併發地訪問。最終塊設備ext3也支持Direct IO。OCFS和ASM/ASMLib本身也支持Direct IO。
當然前提條件是存儲設備需要支持VERYIO。
Direct IO可以用mount在整個文件系統範圍內啓用,也可以在應用中使用O_DIRECT打開文件。
Direct IO操作的塊大小是512字節。
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章