Skip to main content
Enterprise applications
本繁體中文版使用機器翻譯,譯文僅供參考,若與英文版本牴觸,應以英文版本為準。

Oracle 資料庫參數: filesystemio_options

貢獻者

Oracle 初始化參數 filesystemio_options 控制非同步和直接 I/O 的使用

與一般的看法相反、非同步和直接 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 是最佳的。

註 filesystemio_options 參數在 DNFS 和 ASM 環境中無效。使用 DNFS 或 ASM 時、會自動同時使用非同步和直接 I/O

有些客戶過去曾遇到非同步 I/O 問題、尤其是先前的 Red Hat Enterprise Linux 4 ( RHEL4 )版本。網際網路上有些過時的建議仍建議避免非同步 IO 、因為資訊過時。在所有目前的作業系統上、非同步 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 。