filesystemio_options
Oracle 初始化參數 filesystemio_options 控制非同步和直接 I/O 的使用
ASA r2 上的 filesystemio_options 的行為和建議與AFF/ FAS系統相同,因為此參數是 Oracle 特有的,與儲存平台無關。ASA r2 和AFF/ FAS一樣使用ONTAP ,因此相同的最佳實務也適用。
與一般的看法相反、非同步和直接 I/O 並不相互排斥。NetApp 發現、在客戶環境中、此參數經常設定錯誤、而這種錯誤設定直接導致許多效能問題。
非同步 I/O 表示 Oracle I/O 作業可以平行化。在各種作業系統上均可使用非同步 I/O 之前、使用者已設定數個 dbwriter 程序、並變更伺服器程序組態。透過非同步 I/O 、作業系統本身就能以高效率且平行的方式代表資料庫軟體執行 I/O 。此程序不會讓資料面臨風險、而且關鍵作業(例如 Oracle 重做記錄)仍會同步執行。
直接 I/O 會略過作業系統緩衝區快取。UNIX 系統上的 I/O 通常會流經作業系統緩衝區快取。這對不維護內部快取的應用程式很有用、但 Oracle 在 SGA 中擁有自己的緩衝區快取。在幾乎所有情況下、最好是啟用直接 I/O 並將伺服器 RAM 分配給 SGA 、而非仰賴作業系統緩衝區快取。Oracle SGA 更有效率地使用記憶體。此外、當 I/O 流經作業系統緩衝區時、它會受到額外處理、因此會增加延遲。當低延遲是關鍵需求時、在大量寫入 I/O 時、延遲特別明顯。
的選項 filesystemio_options 是:
-
* 非同步 * 。 * Oracle 將 I/O 要求提交給作業系統以進行處理。此程序可讓 Oracle 執行其他工作、而非等待 I/O 完成、進而增加 I/O 平行化。
-
directio. Oracle 直接針對實體檔案執行 I/O 、而非透過主機作業系統快取來路由 I/O 。
-
* 無。 * Oracle 使用同步和緩衝 I/O在此組態中、選擇共享與專用伺服器程序與 dbWriters 數量更為重要。
-
setall. Oracle 同時使用非同步和直接 I/O在幾乎所有情況下、都是使用
setall是最佳的。
|
|
在 ASM 環境中,Oracle 會自動對 ASM 管理的磁碟使用直接 I/O 和非同步 I/O,因此 filesystemio_options 對 ASM 磁碟組沒有影響。對於非 ASM 部署(例如,SAN LUN 上的檔案系統),請設定: filesystemio_options = setall。這樣既可以實現非同步 I/O,也可以實現直接 I/O,從而獲得最佳效能。
|
一些較舊的作業系統在非同步 I/O 方面存在問題,導致一些過時的建議認為應該避免使用非同步 I/O。但是,非同步 I/O 穩定可靠,並且在所有目前的作業系統上都得到全面支援。除非發現特定的作業系統漏洞,否則沒有理由禁用它。
如果資料庫已使用緩衝 I/O 、則直接 I/O 的交換器也可能需要變更 SGA 大小。停用緩衝 I/O 可消除主機作業系統快取為資料庫提供的效能優勢。將 RAM 新增回 SGA 可修復此問題。最終結果應該是 I/O 效能的改善。
雖然 Oracle SGA 使用 RAM 幾乎比使用 OS 緩衝區快取更好、但可能無法判斷最佳值。例如、最好在資料庫伺服器上使用具有極小型 SGA 大小的緩衝 I/O 、其中有許多間歇性作用中的 Oracle 執行個體。這種配置可讓所有執行中的資料庫執行個體靈活使用作業系統上的剩餘可用 RAM 。這是非常不尋常的情況、但在某些客戶據點已發現這種情況。
|
|
NetApp建議設定 filesystemio_options 到 `setall`但請注意,在某些情況下,主機緩衝區快取的遺失可能需要增加 Oracle SGA。ASA r2 系統針對低延遲的 SAN 工作負載進行了最佳化,因此使用 setall 與 ASA 的高效能 Oracle 部署設計完美契合。
|