Re: 答复: Check if async_io is enabled at disk-level

  • From: Deepak Sharma <sharmakdeep_oracle@xxxxxxxxx>
  • To: zhuchao@xxxxxxxxx, oracle-l@xxxxxxxxxxxxx
  • Date: Tue, 16 Sep 2008 09:20:59 -0700 (PDT)

Using nmon on the test server, shows values changing for "Actually in use", but 
same does not happen on production server, both AIX machines.

Using truss on the dbwriter in test shows this:

...
thread_wait(1180)                               = 0
kioctl(12, 1448627996, 0x0FFFFFFFFFFF5070, 0x0000000000000000) = 0
kioctl(12, 1448627996, 0x0FFFFFFFFFFFB1B0, 0x0000000000000000) = 0
times(0x0FFFFFFFFFFFD2A0)                       = 519703833
times(0x0FFFFFFFFFFFD1F0)                       = 519703833
...

On prod, something like :

...
thread_wait(2640)                               = 0
thread_wait(2590)                               = 0
thread_post(3043721)                            = 0
kioctl(12, 1448627996, 0x0FFFFFFFFFFF4E70, 0x0000000000000000) = 0
kioctl(12, 1448627996, 0x0FFFFFFFFFFFAFB0, 0x0000000000000000) = 0
kioctl(12, 1448627996, 0x0FFFFFFFFFFFAEB0, 0x0000000000000000) = 0
...

However, using truss in test (where I think async is working based on nmon 
changing values), I still do not see calls such as aio_write or kwrite etc.

-Deepak



----- Original Message ----
From: "zhuchao@xxxxxxxxx" <zhuchao@xxxxxxxxx>
To: sharmakdeep_oracle@xxxxxxxxx; oracle-l@xxxxxxxxxxxxx
Sent: Tuesday, September 16, 2008 9:54:34 AM
Subject: 答复: Check if async_io is enabled at disk-level

I think what you have seen with nmon just confirms you are using kaio. If it is 
using threaded aio then the aioserver will be used.
Truss should proves that. I am not sure what the system call is like on aix, on 
solaris it is pwrite vs kaio(write...). Should be somrthing similar


Sent via BlackBerry by AT&T
________________________________
From:  Deepak Sharma <sharmakdeep_oracle@xxxxxxxxx>
Date: Mon, 15 Sep 2008 21:39:09 -0700 (PDT)
To: <oracle-l@xxxxxxxxxxxxx>
Subject: Check if async_io is enabled at disk-level

Hi,

We are using ODM (Oracle Disk Manager) on one of our 10.2.0.3 DBs, and the 
disk_asynch_io is TRUE in the database. I have also read that ODM supports 
kernel asynchronous I/O.  The platform is AIX 5.3

Using 'nmon' and choosing "A = Async I/O Servers", this is what we see :

Asynchronous-I/O-Processes
Total AIO processes= 100 Actually in use=   0 

This might indicate that AIO is not happening at kernel-level.  

How else can we verify if async I/O is actually happening at Kernel-level?  We 
could possibly truss the DB Writer process(es) and check for the kernel-level 
calls for writes - what should we look for?  Is it kiowrite() instead of plain, 
write() ?


Thanks,
Deepak


      

Other related posts: