This content has been marked as final. Show 1 reply
Its a complex topic since there are several I/O layers involved. The stripe size, filesystem block size, database block size, etc. are all logical constructs that try to fit as much bytes inside a block as possible to minimize the amount of I/O required to efficiently handle a predictable amount of data. A certain block size may also be necessary to bypass physical address limitations.
The block size is the smallest addressable unit of a file system. Every read and write is done in multiples of the block size. A system cannot do 1/2 an I/O, for instance. How much data a system can handle in one I/O is a complex matter. If a filesystem uses a 4 KB fixed block size then a single database I/O of 8 KB may cause 2 I/O's on the filesystem. Even a disk media is comprised of blocks (sectors), which are not necessarily the same size as the logical blocks used by a filesystem or Oracle database file format. Modern hard disks use a 4 KB physical block size. Legacy systems and RAID are often based on 512 bytes for compatibility. The real situation is not predictable due to caching, read ahead buffering, etc., etc.