I/O tuning in Oracle: filesystemio_options and disk_asynch_io

第一部分:這是系列I / O調整的第一部分

UNIX和Linux系統中的I / O操作通常通過文件系統緩存進行。儘管這本身並不代表問題,但是這種額外的處理確實需要資源。繞過文件系統緩存可減少CPU需求,並釋放文件系統緩存以進行其他非數據庫文件操作。針對原始設備的操作會自動繞過文件系統緩存。

當將同步I / O請求提交給操作系統時,寫入過程將阻塞,直到寫入完成,然後再繼續進行處理。使用異步I / O,將在提交和處理I / O請求的同時繼續處理。這允許異步I / O繞過與I / O操作相關的某些性能瓶頸。

檢查服務器是否有直接I / O

Oracle can take advantage of direct I/O and asynchronous I/O on supported platforms using the FILESYSTEMIO_OPTIONS parameter, whose possible values are listed below.

    ASYNCH - Enabled asynchronous I/O where possible.
    DIRECTIO- Enabled direct I/O where possible.
    SETALL- Enabled both direct I/O and asynchronous I/O where possible.
    NONE - Disabled both direct I/O and asynchronous I/O.

大多數性能調整問題都可能與任何數據庫中的I / O有關。 Oracle僅提供兩個主要參數來控制I / O行為,它們是filesystemio_options和disk_asynch_io

filesystemio_options允許您指定同步和異步讀/寫以及直接和間接讀寫。默認情況下為空,這表示已選擇操作系統默認的I / O模式,即同步讀/寫和間接讀寫,即文件系統緩存的讀寫操作。但是由於disk_asynch_io參數默認為true,因此Oracle默認情況下支持異步讀寫。

Oracle recommends to set parameter filesystemio_options to value 'setall' but it is not always good practise especially when SGA is small. setting it to setall lets your Oracle DB perform I/O operations without going to file system cache and it saves overhead of double caching but if SGA is smaller and DB host machine has large free memory then it is not good to set this parameter to value setall. In this case you should increase DB_CACHE_SIZE and only then set filesystemio_options to setall.

désert/Oracle/disk_asynch_io (last edited 2020-04-04 13:17:34 by merlin)