Symantec logo

VxVM maximum I/O size

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 /etc/system file.

vol_maxio

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.

Raising the 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:

set vxio:vol_maxio=32768

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.