Oracle FAQ Your Portal to the Oracle Knowledge Grid
HOME | ASK QUESTION | ADD INFO | SEARCH | E-MAIL US
 

Home -> Community -> Usenet -> c.d.o.server -> Re: ORACLE on Linux - IO bottleneck

Re: ORACLE on Linux - IO bottleneck

From: Fabrizio Magni <fabrizio.magni_at_mycontinent.com>
Date: Thu, 09 Feb 2006 17:15:57 +0100
Message-ID: <43eb6abd$0$13116$892e7fe2@authen.yellow.readfreenews.net>


Wyvern wrote:
>
> As you say in your previous post, without an IO scheduler, we may have
> a problem if we have an oracle 8K block size and a device (sdc, sdd,
> etc ...) 1K blocksize. Is it right?. Before reading your post, I
> thought that using direct IO let us not worrying about device´s
> blocksize but .... now I´m in doubt...
>

Sorry,
I think I confused you with the previous post. A raw device is a character device and as far as I know the I/O elevator   (so in a 2.4 kernel) cannot operate on such devices (it works on block device). Things can be different if RH has backported something from kernel 2.6... and that's I cannot say for sure.

In my example I showed the same dd, on the same hardware and device. The difference: in the first case the I/O was not merged while in the second one it was.

Below you can see the iostat related to the previous post.

Device: rrqm/s wrqm/s r/s w/s rsec/s wsec/s rkB/s wkB/s avgrq-sz avgqu-sz await svctm %util

ida/c0d1     0.00   0.00  0.00 246.46    0.00 3943.43     0.00  1971.72 
    16.00     0.99    4.02   4.02  99.19

Device: rrqm/s wrqm/s r/s w/s rsec/s wsec/s rkB/s wkB/s avgrq-sz avgqu-sz await svctm %util
ida/c0d1 0.00 9277.00 0.00 328.00 0.00 76776.00 0.00 38388.00 234.07 142.87 383.93 3.05 100.10

The kernel is 2.6 so the I/O on raw can be bigger than 512 byte (as you can see it is done in 8k requests).
The first case show direct I/O (syncronous). The second one a buffered I/O.

The I/O scheduler clearly merges the writes (second line). Resulting in in 328 writes in a second (average: 117K each) and this cause the big difference in performance.

>
> What do you recommend: "aligning" both block sizes (we have unique
> oracle block size - 8K) or using an IO scheduler (IO elevator as you
> said previously in kernel 2.4) ??
>

Personally I'd try a filesystem, in your case (you already stated you don't wish to upgrade to 2.6 kernel).

What do you mean saying that your device had 1k block size?!? Isn't you using it "raw"?

Regards

-- 
Fabrizio Magni

fabrizio.magni_at_mycontinent.com

replace mycontinent with europe
Received on Thu Feb 09 2006 - 10:15:57 CST

Original text of this message

HOME | ASK QUESTION | ADD INFO | SEARCH | E-MAIL US