Tuning ESX/ESXi for better storage performance by modifying the maximum I/O block size

Many applications are designed to issue large I/O requests for higher bandwidth. ESX/ESXi 3.5 and ESX/ESXi 4.x support increased limits for the maximum I/O request size passed to storage devices. These versions of ESX pass I/O requests as large as 32767 KB directly to the storage device. I/O requests larger than this are split into several, smaller-sized I/O requests. Some storage devices, however, have been found to exhibit reduced performance when passed large I/O requests (above 128KB, 256KB, or 512KB, depending on the array and configuration). As a fix for this, you can lower the maximum I/O size ESX allows before splitting I/O requests.

If you have measured a decreased storage performance in ESX/ESXi 3.5 or ESX/ESXi 4.x compared to a similar ESX 3.0.x system, try reducing the maximum I/O size, as described below, and see if performance improves. If your storage device does not have this problem (or if the problem does not go away when you reduce the maximum I/O size), you are better off leaving the maximum I/O size at its default 32767KB setting because it increases performance and (or) lower CPU utilization on your system.

One way to diagnose the problem is by looking at latency statistics reported by esxtop. Beginning in ESX/ESXi 3.5,esxtop includes several detailed storage statistics that report time spent in various components. If storage devices are a problem, esxtop displays high device latencies.

To reduce the size of I/O requests passed to the storage device using the VMware Infrastructure/ vSphere Client:
  1. Go to Host > Configuration.
  2. Click Advanced Settings.
  3. Go to Disk.
  4. Change Disk.DiskMaxIOSize.
Note: You can make this change without rebooting the ESX/ESXi host or without putting the ESX/ESXi host in maintenance mode.

Comments

Popular Posts