vxfs 5.1sp1 solaris 10u9 qio not makes asynch read oracle 11.2.0.2
Date: Thu, 22 Mar 2012 13:04:07 +0700
Message-ID: <CABcgmSFT_9-P47rid51J6Q=THrK7iGPF4Vt2ns5pKsfOgs7i0Q_at_mail.gmail.com>
dear all,
I have a puzzle things for this environment.
I tested create table as select/CTAS (the original table is on QIO file) it looks no kaio AIOREAD, but uses pread (synchronous IO).
play with db parameter:
filesystemio_options
disk_asynch_io
has no effects.
anyone had same experiences?
do you think oracle has some issues on this veritas QIO to use kaio AIOREAD
?
# /opt/VRTS/bin/qiomkfile -h 32k -s 200m /data01/zzztest1.dbf
# ls -al
# chown oracle:dba .filename
# chmod 660 .filename
sqlplus / as sysdba
create tablespace zzz datafile '/data01/zzztest1.dbf' size 200m autoextend
off;
create table zzz tablespace zzz as select * from dba_objects;
shutdown immediate
startup
truss for this CTAS:
create table zzz2 tablespace zzz as select * from zzz;
this system calls occured:
......
........
28355: pollsys(0xFFFFFFFF7FFE81E0, 1, 0xFFFFFFFF7FFE7A50, 0x00000000) = 0 28355: times(0xFFFFFFFF7FFEA5E0) = 360981539 28355: times(0xFFFFFFFF7FFEBA50) = 360981539 28355: times(0xFFFFFFFF7FFEB7D0) = 360981539 28355: times(0xFFFFFFFF7FFEB4D0) = 360981539 28355: open("/data01/zzztest1.dbf", O_RDWR|O_NDELAY|O_DSYNC|O_NONBLOCK) =10
28355: getrlimit(RLIMIT_NOFILE, 0xFFFFFFFF7FFEBD30) = 0 28355: fcntl(10, F_DUPFD, 0x00000100) = 258 28355: close(10) = 0 28355: fcntl(258, F_SETFD, 0x00000001) = 0 28355: pread(258, " #A2\0\0 %800582 -EFC3BD".., 8192, 11550720) = 8192 28355: times(0xFFFFFFFF7FFEE9F0) = 360981539...
...
28355/2: lwp_create() (returning as new lwp ...) = 0 28355/1: lwp_continue(2) = 0 28355/2: setustack(0xFFFFFFFF7BD00AC0) 28355/1: lwp_sigmask(SIG_SETMASK, 0x00000000, 0x00000000) = 0xFFBFFEFF [0x0000FFFF] 28355/2: schedctl() = 0xFFFFFFFF7DF70010 28355/1: kaio(AIOWRITE, 258, 0xFFFFFFFF7A01F000, 106496, 0x015060007A475C50) = 0 28355/1: pollsys(0xFFFFFFFF7FFF2B30, 1, 0xFFFFFFFF7FFF23A0, 0x00000000) = 0 28355/1: pollsys(0xFFFFFFFF7FFF2B30, 1, 0xFFFFFFFF7FFF23A0, 0x00000000) = 0 28355/1: pollsys(0xFFFFFFFF7FFF2B30, 1, 0xFFFFFFFF7FFF23A0, 0x00000000) = 0 28355/1: pollsys(0xFFFFFFFF7FFF2B30, 1, 0xFFFFFFFF7FFF23A0, 0x00000000) = 0 28355/1: pollsys(0xFFFFFFFF7FFF2B30, 1, 0xFFFFFFFF7FFF23A0, 0x00000000) = 0 28355/1: pollsys(0xFFFFFFFF7FFF2B30, 1, 0xFFFFFFFF7FFF23A0, 0x00000000) = 0 28355/1: pollsys(0xFFFFFFFF7FFF2B30, 1, 0xFFFFFFFF7FFF23A0, 0x00000000) = 0 28355/1: pread(258, "06A2\0\0 %800598 -EFC3 q".., 65536, 11730944) = 65536 28355/1: times(0xFFFFFFFF7FFF35C0) = 360981614 28355/1: pollsys(0xFFFFFFFF7FFF2B30, 1, 0xFFFFFFFF7FFF23A0, 0x00000000) = 0 28355/1: pollsys(0xFFFFFFFF7FFF2B30, 1, 0xFFFFFFFF7FFF23A0, 0x00000000) = 0 28355/1: pread(258, "06A2\0\0 %8005A1 -EFC3 v".., 57344, 11804672) = 57344 28355/1: times(0xFFFFFFFF7FFF35C0) = 360981615
test small c as this URL, and it works for AIOREAD.
aio.c
#include <sys/asynch.h>
#include <sys/fcntl.h>
#include <stdio.h>
#define BSIZE 1024
main(int argc, char *argv[])
{
aio_result_t res;
char buf[BSIZE];
int fd;
if ((fd=open(argv[1], O_RDONLY)) == -1) {
perror("open");
exit(-1);
}
aioread(fd, buf, BSIZE, 0L, SEEK_SET, &res);
aiowait(0);
if (res.aio_return == BSIZE) {
printf("aio succeeded\n");
close(fd);
exit(0);
}
perror("aio");
}
Compile:
#gcc -o aio -laio aio.c
/opt/VRTSvxfs/sbin/qiomkfile -s 1m /data01/qio/qio_file
bash-3.2# cd /data01/qio/ bash-3.2# #dd if=/dev/zero of=normal_file bs=1024k count=1 bash-3.2# ls -l total 0 lrwxrwxrwx 1 root root 21 Mar 22 12:44 qio_file ->.qio_file::cdev:vxfs:
bash-3.2# pwd
/data01/qio
bash-3.2# ls
qio_file
bash-3.2# ls -a
. .. .qio_file qio_file bash-3.2# pwd
/data01/qio
bash-3.2# dd if=/dev/zero of=normal_file bs=1024k count=1
1+0 records in
1+0 records out
bash-3.2# ls -l
total 2048
-rw-r--r-- 1 root root 1048576 Mar 22 12:45 normal_file lrwxrwxrwx 1 root root 21 Mar 22 12:44 qio_file ->.qio_file::cdev:vxfs:
bash-3.2# truss -t kaio,lwp_create /u01/oracle/qio/aio
/data01/qio/normal_file
kaio(5, 0x00000000, 0xFF368540, 0xFF368844, 0x00010000, 0x00000000,
0x000ED3DC) = 0
lwp_create(0xFFBFF548, LWP_DAEMON|LWP_DETACHED|LWP_SUSPENDED, 0xFFBFF544) =
2
/1: kaio(AIOREAD, 3, 0xFFBFF9B8, 1024, 0, 0xFFBFFDB8) Err#81 EBADFD /2: lwp_create() (returning as new lwp ...) = 0 /1: lwp_create(0xFFBFF4D8, LWP_DAEMON|LWP_DETACHED|LWP_SUSPENDED, 0xFFBFF4D4) = 3 /3: lwp_create() (returning as new lwp ...) = 0 /1: lwp_create(0xFFBFF4D8, LWP_DAEMON|LWP_DETACHED|LWP_SUSPENDED, 0xFFBFF4D4) = 4 /4: lwp_create() (returning as new lwp ...) = 0 /1: lwp_create(0xFFBFF4D8, LWP_DAEMON|LWP_DETACHED|LWP_SUSPENDED, 0xFFBFF4D4) = 5 /5: lwp_create() (returning as new lwp ...) = 0 /1: lwp_create(0xFFBFF4D8, LWP_DAEMON|LWP_DETACHED|LWP_SUSPENDED, 0xFFBFF4D4) = 6 /6: lwp_create() (returning as new lwp ...) = 0 /1: lwp_create(0xFFBFF4D8, LWP_DAEMON|LWP_DETACHED|LWP_SUSPENDED, 0xFFBFF4D4) = 7 /7: lwp_create() (returning as new lwp ...) = 0 /1: lwp_create(0xFFBFF4D8, LWP_DAEMON|LWP_DETACHED|LWP_SUSPENDED, 0xFFBFF4D4) = 8 /8: lwp_create() (returning as new lwp ...) = 0 /1: lwp_create(0xFFBFF4D8, LWP_DAEMON|LWP_DETACHED|LWP_SUSPENDED, 0xFFBFF4D4) = 9 /9: lwp_create() (returning as new lwp ...) = 0 /1: lwp_create(0xFFBFF4D8, LWP_DAEMON|LWP_DETACHED|LWP_SUSPENDED, 0xFFBFF4D4) = 10 /10: lwp_create() (returning as new lwp ...) = 0 /1: lwp_create(0xFFBFF4D8, LWP_DAEMON|LWP_DETACHED|LWP_SUSPENDED, 0xFFBFF4D4) = 11 /11: lwp_create() (returning as new lwp ...) = 0 /1: kaio(AIOWAIT, 0x00000000) = 1 /4: kaio(AIONOTIFY, 1) = 0aio succeeded
bash-3.2# truss -t kaio,lwp_create /u01/oracle/qio/aio /data01/qio/qio_file
kaio(5, 0x00000000, 0xFF368540, 0xFF368844, 0x00010000, 0x00000000,
0x000ED3DC) = 0
lwp_create(0xFFBFF548, LWP_DAEMON|LWP_DETACHED|LWP_SUSPENDED, 0xFFBFF544) =
2
/2: lwp_create() (returning as new lwp ...) = 0 /1: kaio(AIOREAD, 3, 0xFFBFF9B8, 1024, 0, 0xFFBFFDB8) = 0 /1: kaio(AIOWAIT, 0x00000000) = -4194888aio succeeded
bash-3.2#
-- regards, ujang jaenudin databases independent consultant http://ora62.wordpress.com jakarta - Indonesia -- http://www.freelists.org/webpage/oracle-lReceived on Thu Mar 22 2012 - 01:04:07 CDT