Wednesday, August 22, 2012

stripe unit size and DB_FILE_MULTIBLOCK_READ_COUNT



Stripe-unit size
With RAID technology, data is striped across an array of physical disks. This data distribution scheme complements the way that the operating system requests data.
The granularity at which data is stored on one disk of the array before subsequent data is stored on the next disk of the array is called the stripe-unit size. The collection of stripe units, from the first disk of the array to the last disk of the array, is called a stripe.
For PCI-X and PCIe controllers, you can set the stripe-unit size of an IBM® SAS Disk Array to 16 KB, 64 KB, 256 KB, or 512 KB. You might be able to maximize the performance of your disk array by setting the stripe-unit size to a value that is slightly larger than the size of the average system I/O request. For large system I/O requests, use a stripe-unit size of 256 KB or 512KB. The recommended stripe size will be identified on the screen when you create the disk array.
For PCIe2 controllers, you can only set a stripe-unit size of 256 KB. This stripe-unit size has been selected to provide the optimum performance when used with both HDDs and SSDs.

And similar link http://ibm.co/Re9h3D


From http://communities.vmware.com/thread/293789

3. RAID array stripe unit size - This is how much data is written to one disk before having
to jump to the next disk within a single stripe. evidently performance in general follows
some sort of bell curve. We used the default 64k of our H700 RAID controller as the control
and found that setting this to 256k gave us the best overall performance gains.One would
think 1024k would be best but that was not the case. Ok, so here are some raw
percentages we pulled out of our tests using bonnie+, here we are looking at the
advantage of going with 256K stripe units:



A.2.5 Using the DB_FILE_MULTIBLOCK_READ_COUNT Parameter

When using Direct I/O or Concurrent I/O with Oracle Database 10g, the AIX file system does not perform any read-ahead on sequential scans. For this reason the DB_FILE_MULTIBLOCK_READ_COUNT value in the server parameter file should be increased when Direct I/O or Concurrent I/O is enabled on Oracle data files. The read ahead is performed by Oracle Database as specified by the DB_FILE_MULTIBLOCK_READ_COUNT initialization parameter.

Setting a large value for the DB_FILE_MULTIBLOCK_READ_COUNT initialization parameter usually yields better I/O throughput on sequential scans. On AIX, this parameter ranges from 1 to 512, but using a value higher than 16 usually does not provide additional performance gain.

Set this parameter so that its value when multiplied by the value of the DB_BLOCK_SIZE parameter produces a number larger than the LVM stripe size. Such a setting causes more disks to be used.