Link to home
Start Free TrialLog in
Avatar of it-rex
it-rex

asked on

aix concurrent io 5.3

We have an AIX 5.3 that hosts our database .we would like to confirm that we have concurrent IO enabled how would we check that?
Avatar of woolmilkporc
woolmilkporc
Flag of Germany image

To check whether a filesystem is mounted with cio enabled issue

mount

You should see "cio" in the "options" column for a concurrent I/O enabled filesystem.

lsfs -q

should also have that info,

and the /etc/filesystems file should have "cio" in the "options" field under the relevant filesystem stanza if this options is to be used by default.

I/O on files opened in a file system mounted that way will behave as if the files had been opened with O_CIO specified in the open() system call.

Performing CIO on files opened without that option consequently requires that these files were opened with O_CIO specified in the open() system call by your database application. This cannot easily be checked by means of OS commands.

However, for example Oracle (as opposed to e.g. Informix)  has no builtin CIO feature, so to make Oracle perform CIO on Oracle datafiles you must explicitly mount the relevant FS with CIO.
Avatar of it-rex
it-rex

ASKER

how does this look like


mount
  node       mounted        mounted over    vfs       date        options      
-------- ---------------  ---------------  ------ ------------ ---------------
         /dev/hd4         /                jfs2   Jan 15 23:07 rw,log=/dev/hd8
         /dev/hd2         /usr             jfs2   Jan 15 23:07 rw,log=/dev/hd8
         /dev/hd9var      /var             jfs2   Jan 15 23:07 rw,log=/dev/hd8
         /dev/hd3         /tmp             jfs2   Jan 15 23:07 rw,log=/dev/hd8
         /dev/hd1         /home            jfs2   Jan 15 23:10 rw,log=/dev/hd8
         /proc            /proc            procfs Jan 15 23:10 rw              
         /dev/hd10opt     /opt             jfs2   Jan 15 23:10 rw,log=/dev/hd8
         /dev/fslv00      /slac            jfs2   Jan 15 23:10 rw,log=/dev/hd8
         /dev/lv245001    /u001            jfs2   Jan 15 23:10 rw,log=/dev/loglv00
         /dev/lv245004    /u006            jfs2   Jan 15 23:10 rw,log=/dev/loglv03
         /dev/lv245005    /u004            jfs2   Jan 15 23:10 rw,rbw,rbr,log=/dev/loglv04
         /dev/fslv01      /esm             jfs2   Jan 15 23:10 rw,log=/dev/loglv03
         /dev/lv245002    /u005            jfs2   Jan 15 23:10 rw,log=/dev/loglv01
         /dev/lv245003    /u015            jfs2   Jan 15 23:10 rw,log=/dev/loglv02
         /dev/lv003       /u003            jfs2   Jan 15 23:10 rw,log=/dev/fsfsfsfsfsfsfsf
         /dev/lv245010    /u010            jfs2   Jan 15 23:10 rw,log=/dev/loglv05
         /dev/lv245013    /u013            jfs2   Jan 15 23:10 rw,log=/dev/loglv06
          /shared          /shared          nfs3   Jan 15 23:10 rw,bg,soft,intr,vers=3,sec=sys


lsfs -q
Name            Nodename   Mount Pt               VFS   Size    Options    Auto Accounting
/dev/hd4        --         /                      jfs2  1048576 --         yes  no
/dev/hd1        --         /home                  jfs2  3604480 --         yes  no
/dev/hd2        --         /usr                   jfs2  4980736 --         yes  no
/dev/hd9var     --         /var                   jfs2  2097152 --         yes  no
/dev/hd3        --         /tmp                   jfs2  2097152 --         yes  no
/proc           --         /proc                  procfs --      --         yes  no
/dev/hd10opt    --         /opt                   jfs2  720896  --         yes  no
/dev/fslv00     --         /slac                  jfs2  4194304 rw         yes  no
/shared         xxxxxxx   /shared                nfs   --      rw,bg,soft,intr,vers=3,sec=sys yes  no
/dev/lv245001   --         /u001                  jfs2  62062592 rw         yes  no
/dev/lv245004   --         /u006                  jfs2  20807680 rw         yes  no
/dev/lv245005   --         /u004                  jfs2  418250752 rbrw,rw    yes  no
/dev/fslv01     --         /esm                   jfs2  3375104 rw         yes  no
/dev/lv245002   --         /u005                  jfs2  62259200 rw         yes  no
/dev/lv245003   --         /u015                  jfs2  62259200 rw         yes  no
/dev/lv003      --         /u003                  jfs2  19321585664 rw         yes  no
/dev/lv245010   --         /u010                  jfs2  21466447872 rw         yes  no
/dev/lv245013   --         /u013                  jfs2  2100035584 rw         yes  no
ASKER CERTIFIED SOLUTION
Avatar of woolmilkporc
woolmilkporc
Flag of Germany image

Link to home
membership
This solution is only available to members.
To access this solution, you must be a member of Experts Exchange.
Start Free Trial
Avatar of it-rex

ASKER

so we do not have this benefit here ummm!!
so what exactly is the difference between concurrent IO and async IO?
is it worth enableing in busy systems?
Avatar of it-rex

ASKER

is it the same at this system too

mount
  node       mounted        mounted over    vfs       date        options      
-------- ---------------  ---------------  ------ ------------ ---------------
         /dev/hd4         /                jfs2   Oct 19 23:09 rw,log=/dev/hd8
         /dev/hd2         /usr             jfs2   Oct 19 23:09 rw,log=/dev/hd8
         /dev/hd9var      /var             jfs2   Oct 19 23:09 rw,log=/dev/hd8
         /dev/hd3         /tmp             jfs2   Oct 19 23:09 rw,log=/dev/hd8
         /dev/hd1         /home            jfs2   Oct 19 23:09 rw,log=/dev/hd8
         /proc            /proc            procfs Oct 19 23:09 rw              
         /dev/hd10opt     /opt             jfs2   Oct 19 23:09 rw,log=/dev/hd8
       
         /dev/slaclv      /slac            jfs2   Oct 19 23:09 rw,log=/dev/hd8
         /dev/lv2951011   /esm             jfs2   Oct 19 23:09 rw,log=/dev/loglv00
         /dev/lv2951012   /home/axway      jfs2   Oct 19 23:09 rw,log=/dev/loglv00
         /dev/lv2951013   /axway           jfs2   Oct 19 23:09 rw,log=/dev/loglv00
         /dev/lv2951014   /xip             jfs2   Oct 19 23:09 rw,log=/dev/loglv00
         /dev/lv2951015   /u001            jfs2   Oct 19 23:09 rw,log=/dev/loglv00
         /dev/lv2951071   /u020            jfs2   Oct 19 23:09 rw,log=INLINE  

         /dev/lv2951031   /u003            jfs2   Oct 19 23:27 rw,log=/dev/fsfsfsfsloglv02
         /dev/lv2951051   /u010            jfs2   Oct 19 23:27 rw,log=/dev/lv00
         /dev/lv2951021   /u002            jfs2   Oct 19 23:37 rw,log=/dev/loglv01
         /dev/lv2951023   /u004            jfs2   Oct 19 23:37 rw,rbw,rbr,log=/dev/loglv01
         /dev/lv2951024   /u005            jfs2   Oct 19 23:37 rw,log=/dev/loglv01
         /dev/ls2951026   /u007            jfs2   Oct 19 23:37 rw,log=/dev/loglv01
         /dev/lv2951025   /u015            jfs2   Oct 19 23:37 rw,log=/dev/loglv01
         /dev/lv2951061   /x001            jfs2   Oct 19 23:37 rw,log=INLINE  
         /dev/lv2951042   /u102            jfs2   Oct 19 23:37 rw,log=/dev/loglv03
         /dev/lv2951041   /u103            jfs2   Oct 19 23:37 rw,log=/dev/loglv03
         /dev/lv2951043   /u104            jfs2   Oct 19 23:37 rw,rbw,rbr,log=/dev/loglv03
         /dev/lv2951044   /u105            jfs2   Oct 19 23:37 rw,log=/dev/loglv03
         /dev/lv2951046   /u110            jfs2   Oct 19 23:37 rw,log=/dev/loglv03
         /dev/lv2951045   /u115            jfs2   Oct 19 23:37 rw,log=/dev/loglv03
         /dev/lv2951022   /home/        jfs2   Dec 12 13:04 rw,log=INLINE  
         
         
         
         
         

         lsfs -q
Name            Nodename   Mount Pt               VFS   Size    Options    Auto Accounting
/dev/hd4        --         /                      jfs2  1048576 --         yes  no
/dev/hd4: Permission denied
/dev/hd1        --         /home                  jfs2  5177344 --         yes  no
/dev/hd1: Permission denied
/dev/hd2        --         /usr                   jfs2  7536640 --         yes  no
/dev/hd2: Permission denied
/dev/hd9var     --         /var                   jfs2  3342336 --         yes  no
/dev/hd9var: Permission denied
/dev/hd3        --         /tmp                   jfs2  4194304 --         yes  no
/dev/hd3: Permission denied
/proc           --         /proc                  procfs --      --         yes  no
/dev/hd10opt    --         /opt                   jfs2  2097152 --         yes  no
/dev/hd10opt: Permission denied
/dev/livedump   --         /var/adm/ras/livedump  jfs2  524288  --         yes  no
/dev/livedump: Permission denied
/dev/slaclv     --         /slac                  jfs2  4194304 rw         yes  no
/dev/slaclv: Permission denied
/dev/lv2951011  --         /esm                   jfs2  3145728 rw         yes  no
/dev/lv2951011: Permission denied
/dev/lv2951012  --         /home/axway            jfs2  3145728 rw         yes  no
/dev/lv2951012: Permission denied
/dev/lv2951013  --         /axway                 jfs2  3145728 rw         yes  no
/dev/lv2951013: Permission denied
/dev/lv2951014  --         /xip                   jfs2  3145728 rw         yes  no
/dev/lv2951014: Permission denied
/dev/lv2951015  --         /u001                  jfs2  88342528 rw         yes  no
/dev/lv2951015: Permission denied
/shared         sy02131    /shared                nfs   --      bg,intr,vers=4,sec=sys yes  no
/dev/lv2951021  --         /u002                  jfs2  65011712 rw         no   no
/dev/lv2951021: Permission denied
/dev/lv2951023  --         /u004                  jfs2  591396864 rbrw,rw    no   no
/dev/lv2951023: Permission denied
/dev/lv2951024  --         /u005                  jfs2  60817408 rw         no   no
/dev/lv2951024: Permission denied
/dev/lv2951025  --         /u015                  jfs2  60817408 rw         no   no
/dev/lv2951025: Permission denied
/dev/lv2951041  --         /u103                  jfs2  200015872 rw         no   no
/dev/lv2951041: Permission denied
/dev/lv2951042  --         /u102                  jfs2  40108032 rw         no   no
/dev/lv2951042: Permission denied
/dev/lv2951043  --         /u104                  jfs2  60030976 rbrw,rw    no   no
/dev/lv2951043: Permission denied
/dev/lv2951044  --         /u105                  jfs2  40108032 rw         no   no
/dev/lv2951044: Permission denied
/dev/lv2951045  --         /u115                  jfs2  40108032 rw         no   no
/dev/lv2951045: Permission denied
/dev/lv2951046  --         /u110                  jfs2  200015872 rw         no   no
/dev/lv2951046: Permission denied
/dev/ls2951026  --         /u007                  jfs2  10485760 rw         no   no
/dev/ls2951026: Permission denied
/dev/lv2951061  --         /x001                  jfs2  1046478848 rw         no   no
/dev/lv2951061: Permission denied
/dev/lv2951071  --         /u020                  jfs2  2096103424 --         yes  no
/dev/lv2951071: Permission denied
/dev/lv2951031  --         /u003                  jfs2  8589934592 rw         no   no
/dev/lv2951031: Permission denied
/dev/lv2951051  --         /u010                  jfs2  8589934592 rw         no   no
/dev/lv2951051: Permission denied
/dev/lv2951022  --         /home/mmfeed           jfs2  10485760 rw         no   no
/dev/lv2951022: Permission denied
Under CIO, multiple threads may simulteanously perform reads and writes
on a shared file.
Applications must be able to enforce serialization when using CIO,
to avoid possible data corruption or performance issues.
Most, if not all, database servers do serialization on their own and can use CIO for their datafiles and redo logs (NOT for binaries (!) or other regular files and archivelogs).

AIO implements quite a different mechanism.

Synchronous I/O requires a disk operation, and applications cannot continue until the I/O operation is complete.

Asynchronous I/O allows applications to perform read or write operations without being blocked, since all I/O operations are done in background.
I/O operations and application processing can thus run simultaneously which can give a huge performance gain (particularly with Oracle).

Asynchronous I/O on filesystems is handled through kernel processes
(aioserver), and each I/O is handled by a single kernel process. The minimum and maximum numbers of aioserver processes are configurable.

Oracle has ain initialization parameter DISK_ASYNCH_IO, and if this parameter is "TRUE" and if AIO is available Oracle uses AIO transparently without further notification or the like.

Check whether AIO is available and configured with

lsattr -El aio0

"autoconfig" must be "available", otherwise ("defined") AIO is disabled.

To change the state from "defined" to "available" run

chdev -l aio0 -a autoconfig=available
cfgmgr # or "mkdev -l aio0"

On older 5.3 systems you must run

chdev -l aio0 - P -a autoconfig=available

and reboot.

Check the number of running aioservers (if any) with

ps -kf | grep aio

Once AIO is enabled CIO will have (almost) no effect, so, at least for Oracle, forget it.

There might be databases which do not check for or cannot use AIO, so CIO could be an option here.
Please consult the documentation shipped by the manufacturer of your DB system.

And yes, the second system you showed doesn't use CIO either.


wmp
Avatar of it-rex

ASKER

I will open a new Q about async IO ..so I can give you ,deserved points.
now we do not have CIO on both 1st system 5.3 and 1nd system 7.1
both are Oracle database servers. is it true that although both systems are mounted with no CIO option Oracle can still do CIO on its own if
filesystemio_options='setall'

this issue is scattered over the place and no single assured fact,some say u do not need to set it on the filesystem anymore and some say the opposite.
and even if this is correct is it correct for both
5.3 and 7.1?

thanks alot
The parameter filesystemio_options which in a way replaced the old DISK_ASYNCH_IO initialization parameter governs AIO and Direct I/O, but not Concurrent I/O!

'setall' enables both direct I/O and asynchronous I/O where possible.

And yes, that's the same for AIX 5, 6 and 7.

AIX 6 changed the implementation of AIO (no more device "aio0") and the way how to configure AIO  ("ioo" instead of "chdev") but the underlying mechanisms are still the same.

In regard to DIO and CIO nothing has changed at all.
Avatar of it-rex

ASKER

So final word no CIO on file system..
no CIO in Oracle although the affored mentioned parameter is set.

Correct?
Avatar of it-rex

ASKER

undisputed  woolmilkporc is the best expert here..
and probably the best AIX admin I have ever came across..
PERIOD.