vxfs 5.1sp1 solaris 10u9 qio not makes asynch read oracle 11.2.0.2
- From: Ujang Jaenudin <ujang.jaenudin@xxxxxxxxx>
- To: Oracle Discussion List <oracle-l@xxxxxxxxxxxxx>, indo-oracle <indo-oracle@xxxxxxxxxxxxxxx>
- Date: Thu, 22 Mar 2012 13:04:07 +0700
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.
http://www.symantec.com/business/support/index?page=content&pmv=print&impressions=&viewlocale=&id=TECH70327
-----
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) = 0
aio 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) = -4194888
aio succeeded
bash-3.2#
--
regards,
ujang jaenudin
databases independent consultant
http://ora62.wordpress.com
jakarta - Indonesia
--
http://www.freelists.org/webpage/oracle-l
Other related posts: