ablog

不器用で落着きのない技術者のメモ

disk_asynch_io=false ならASMに対して同期I/O(pwrite)になる

As you know ASM is doing non (operating system) buffered I/O (also known as ‘DIO’ or Direct I/O) regardless of the oracle database filesystemio_options parameter.

But what’s about : Asynchronous/Synchronous I/O ?

If you have a look to MOS note [ID 751463.1] you’ll see that ASM asynchronous/synchronous I/O is entirely controlled by the DISK_ASYNCH_IO parameter and not the FILESYSTEMIO_OPTIONS one.

At the time being, this note only deals with 10.2 databases, so I want to check if this is still the case with 11.2 databases (Let me tell you than I hope so ;-) ) :


...

Conclusion :
With 11.2 databases, ASM asynchronous/synchronous I/O is still entirely controlled by the DISK_ASYNCH_IO parameter

ASM Asynchronous or Synchronous I/O – bdt's blog

まとめると、Oracle Database(10.2-12.1) on Linux でデータベースファイルを ASM に置いている場合、

  • filesystemio_options は非同期I/O(io_submit and io_getevents or 同期I/O(pwrite)とは関係ない
  • disk_asynch_io=true(デフォルト)なら、非同期I/O(io_submit and io_getevents)だが、false なら同期I/O(pwrite)になる

ということが書かれています。

ここでの同期 or 非同期は O_SYNC or not の話ではありません。Oracle Database は I/O がロストしないよう常に O_SYNC で I/O を行います。