Direct IO on solaris 10 with VxFS
DBAsupport.com Forums - Powered by vBulletin
Results 1 to 10 of 10

Thread: Direct IO on solaris 10 with VxFS

  1. #1
    Join Date
    Mar 2009
    Posts
    8

    Question Direct IO on solaris 10 with VxFS

    Hi,

    Does any one know or is there any way to find out if my database is using direct I/O on Veritas File system from oracle database. File system is already mounted with direct IO option and filesystemio_options is set to setall.

    I followed this metalink document : 555607.1, i got the truss output which has no meaning to it( even as per oracle support could not help on it)

    here is the ouput i got.
    =====================================================
    21919/1: ioctl(326, 0x0403, 0xFFFFFFFF7FFFD04C) Err#25 ENOTTY


    The last column supposed to be either 0 or 1 , but i got different results. so that document i followed seems to not useful.

    Any help on this greatly appreciated.

    Thanks
    CSReddy

  2. #2
    Join Date
    Jan 2001
    Posts
    2,828
    Hi

    For direct IO veritas has something called quickio on thier VsFs filesystem.
    It involves creating a datafile with . and then making oracle use that.

    You need to ask your sys admins if quickio is liscensed in your shop and only then you can use directIo.

    google for veritas quick io.

    http://seer.entsupport.symantec.com/docs/238079.htm

    regards
    Hrishy

  3. #3
    Join Date
    Mar 2009
    Posts
    8
    Thanks for the update !!!

    But unfortunatly we don't have quick IO licence on this server and its not enable. but we mounted this file system with convosync=direct option. and to our surprise all our dbs are much faster now. but we still don't know if dbs are using direct IO or not and if this is the reason why its faster now.


    Thanks
    CSReddy

  4. #4
    Join Date
    Jan 2001
    Posts
    2,828
    Hi

    Are you using VxFS filesystem or Solaris UFS ?

    regards
    Hrishy

  5. #5
    Join Date
    Mar 2009
    Posts
    8
    I am using VxFS, here is mount output for that FS.

    /local/oracle/oradata on /dev/vx/dsk/oradg/ORACLE_DATA read/write/setuid/devices/convosync=direct/delaylog/largefiles/ioerror=mwdisable/dev=46ca029 on Sun Feb 15 07:52:49 2009

    Thanks
    CSReddy

  6. #6
    Join Date
    Mar 2009
    Posts
    8
    here is the output from /etc/fstab for this FS.

    /dev/vx/dsk/oradg/ORACLE_DATA /dev/vx/rdsk/oradg/ORACLE_DATA /local/oracle/oradata vxfs 3 yes convosync=direct

    Thanks
    CSReddy

  7. #7
    Join Date
    Nov 2002
    Location
    Mooresville, NC
    Posts
    349
    http://www.perf-engg.com
    A performance engineering forum

  8. #8
    Join Date
    Mar 2009
    Posts
    8
    Thanks for the doc..

    my question was not answered in that doc as its only talks about Performance tuning of VxFS; what i need is to find out if oracle database is using direct I/O even though FS is mounted in direct IO.

    thanks
    CSReddy

  9. #9
    Join Date
    Apr 2001
    Location
    Bangalore, India
    Posts
    727
    My understanding is, if you do not use Direct I/O, OS issues READ() system calls, as

    12056: times(0xFFFFFFFF7FFFB610) = 1400029210
    12056: write(12, "01F2\0\006\0\0\0\0\01017".., 498) = 498
    12056: read(9, "\015\0\006\0\0\0\0\00305".., 2064) = 21
    12056: times(0xFFFFFFFF7FFFB860) = 1400029210
    12056: times(0xFFFFFFFF7FFFB000) = 1400029210
    12056: times(0xFFFFFFFF7FFFB000) = 1400029210

    But when OS uses Direct I/O calls thru DIRECTIO() system calls instead of READ().

    You may read more at

    http://docs.sun.com/app/docs/doc/816...ctio-3c?a=view

    Well, what options you used foir truss...? I used,

    $ truss -aefp ==> try various PIDs - DBWR, LWR and a server process.

    There is one parameter "_DB_FILE_DIRECT_IO_COUNT" (8 and above. in Oracle7, it was _DIRECT_IO=TRUE)and according to oracle (documented 8 when it was not hidden), it uses only for certain operations like backups, restore, parallel query execution and large sort or joins. In that case you need to trace a server process created by RMAN for backup or restore. How ever, Direct I/O on file systems is "Synchornus". Anyway, I am yet to do more research on this.



    Note 1: If possible, please paste some of the truss output containing READ()/WRITE()/DIRECTIO() calls. Many Thanks.

    Note 2: VxFS Quick I/O is based KAIO ( Kernalised Asychonous I/O), KAIO eliminates the AIO API calls, and incorporating the I/O services to the kernal itself - I think that is different story? Again kaio() and aioread() are the respective system calls for KAIO and AIO, different from directio().
    Thomas Saviour(royxavier@yahoo.com)
    Technical Lead (Databases)
    Thomson Reuters (Markets)

    http://ora600tom.wordpress.com/

  10. #10
    Join Date
    Dec 2002
    Location
    Bangalore ( India )
    Posts
    2,434
    very useful peice of info @ thomas, thanks for the link.

    Rgds
    Abhay.
    funky...

    "I Dont Want To Follow A Path, I would Rather Go Where There Is No Path And Leave A Trail."

    "Ego is the worst thing many have, try to overcome it & you will be the best, if not good, person on this earth"

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •  


Click Here to Expand Forum to Full Width