When using VxFS with Veritas Volume Manager (VxVM), VxVM by default breaks up I/O requests larger than 256K. When using striping, to optimize performance, the file system issues I/O requests that are up to a full stripe in size. If the stripe size is larger than 256K, those requests are broken up.
To avoid undesirable I/O breakup, you can increase the maximum I/O size by changing the value of the
vol_maxio parameter in the
vol_maxio parameter controls the maximum size of logical I/O operations that can be performed without breaking up a request. Logical I/O requests larger than this value are broken up and performed synchronously. Physical I/Os are broken up based on the capabilities of the disk device and are unaffected by changes to the
vol_maxio logical request limit.
vol_maxio limit can cause problems if the size of an I/O requires more memory or kernel mapping space than exists. The recommended maximum for
vol_maxio is 20% of the smaller of physical memory or kernel virtual memory. It is not advisable to go over this limit. Within this limit, you can generally obtain the best results by setting
vol_maxio to the size of your largest stripe. This applies to both RAID-0 striping and RAID-5 striping.
To increase the value of
vol_maxio, add an entry to
/etc/system (after the entry
forceload:drv/vxio) and reboot for the change to take effect. For example, the following line sets the maximum I/O size to 16 MB:
This parameter is in 512-byte sectors and is stored as a 16-bit number, so it cannot be larger than 65535.
See the Veritas Volume Manager Administrator's Guide.