Oracle FAQ | Your Portal to the Oracle Knowledge Grid |
Home -> Community -> Usenet -> c.d.o.server -> Re: sun solaris and direct io
Hi ,
Thanks for your mail. I have already tuned my ufs file system :
My page size is 8K.
mkfs -m /dev/dsk/c2t16d65s0
mkfs -F ufs -o
nsect=64,ntrack=120,bsize=8192,fragsize=1024,cgsize=14,free=1,rps=90,nbpi=8239,opt=t,apc=0,gap=0,nrpos=8,maxcontig=128
/dev/dsk/c2t16d65s0 427683840
Maxcontig is 128 which makes the cluster size : 8k*128 = 1mb. This means each io operation requests 1mb. data from the underlying disk system.,
and , maxphys is :
set maxphys=8388608 in /etc/system.
and my file system is mounted without directio:
/data on /dev/dsk/c2t16d65s0
read/write/setuid/intr/noforcedirectio/largefiles/xattr/onerror=panic/dev=800288
on pers Haz 2 17:03:38 2005
With these values , os commands such as dd or mkfile can read or write upto 1mb. per io operation.
On the other hand , at database server , i test full table scans by using parallel query (instead of db scatterred read oracle uses direct path read for parallel full table scans , and bypasses the buffer cache.)
my db_file_multi_block_read_count is 128 , with 8k. db_block_size this is equal to 1mb. read in p3.
-On most systems, you should be able to get 128 for 8K blocks - that
-usually is the max IO size you can possibly get. Otherwise, you can
-only get as many blocks as your file system buffer allows which varies
-from 8K to 256K ( or 1 to 32 for p3 value ) depending on OS and file
-system type. I did this for my database and am able to get
-128 on my P3 value. With that I am sure it is doing DIO. Without it,
-with Dicovered DIO (default) with my Varitus FS, I can only get 32.
-If I use Sun straight UFS (2.8) without DIO, I can only get 1.
Isnt it 1mb. possible?And most importantly , i think direct io cant be really distinguished from the buffered io by checking the amount of data transferred. With or without direct io , on my sun box , i can see up to 1mb. read/write values:
This is a little test:
When i mount the filesystem with directio enabled:
verdenfs1_at_root/data/spss/oracle #timex dd if=/dev/zero of=test
bs=1048576 count=80
80+0 records in
80+0 records out
real 1.56 user 0.00 sys 0.14 extended device statistics device r/s w/s kr/s kw/s wait actv svc_t %w %b sd0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0 0 sd16 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0 0 sd81 0.0 66.0 0.0 53442.3 0.0 0.9 14.4 0 93
Here i have about 800kb. per write.
Without direct io:
bash-2.05$ timex dd if=/dev/zero of=test bs=1048576 count=80
80+0 records in
80+0 records out
real 0.76 user 0.00 sys 0.55 extended device statistics device r/s w/s kr/s kw/s wait actv svc_t %w %b sd0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0 0 sd16 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0 0 sd81 0.0 57.0 0.0 41549.1 0.8 5.0 102.4 3 47
more or less same value.
Kind Regards,
hope
Received on Sat Jun 04 2005 - 02:38:59 CDT