User guide
Technical white paper | HP Enterprise Virtual Array Storage and VMware vSphere 4.x and 5.x configuration best practices
39
VMware has carried out testing to compare I/O performance with aligned and non-aligned file systems and, as a result,
suggests working with your vendor to establish the appropriate starting boundary block size.
Best practices for aligning the file system
• No alignment is required with Windows Vista, Windows 7, or Windows Server 2008.
• Use the vSphere client when creating your datastore, which correctly aligns the file system.
• Verify that VMDKs used by the guest operating system are correctly aligned.
Enhancing storage performance
A range of vSphere 4.x/5.x features and tuning options provide opportunities for enhancing storage performance. This
section provides information on the following topics:
• Optimizing queue depth
• Using adaptive queuing
• Using the paravirtualized virtual SCSI driver
• Monitoring EVA performance in order to balance throughput
• Optimizing I/O size
Optimizing queue depth
Queue depth is a function of how quickly processes are loaded into the queue and how fast the queue is emptied between
the HBA and a Vdisk.
Tuning the Vdisk queue depth is often regarded as a requirement in a vSphere environment that uses SAN storage. Indeed,
in some deployments, tuning the queue may help to enhance performance; however, injudicious tuning can result in
increased latency. HP suggests that, if your storage system is properly configured and balanced, default queue depth values
may be ideal. The best approach is to analyze the entire environment, not just a single vSphere host.
Adjusting the queue depth requires you to determine how many commands the HBA can accept and process for a given
logical unit. Thus, as a best practice when adjusting the HBA queue depth, you should adjust the vSphere
Disk.Sched.NumReqOutstanding setting for each vSphere host. The simplest way is to use the vSphere client and login to
vCenter to make the necessary adjustments.
Best practice for adjusting the queue depth
• When increasing the HBA queue depth, also increase the vSphere Disk.Sched.NumReqOutstanding setting.
Using adaptive queuing
ESX 3.5 and vSphere 4.x/5.x provide an adaptive queue depth algorithm that can dynamically adjust the logical unit (LU)
queue depth in the VMkernel I/O stack when congestion is reported by the storage system in the form of QUEUE FULL or
DEVICE BUSY status.
Dynamically adjusting the LU queue depth allows the VMkernel to throttle back I/O requests sent to the particular LU, thus
reducing I/O congestion in the storage system.
Adaptive queuing is controlled by the following advanced parameters:
• QFullSampleSize: Controls how quickly the VMkernel should reduce the queue depth for the LU returning DEVICE
BUSY/QUEUE FULL status; by default, QFullSampleSize is set to 0, which disables adaptive queuing
• QFullThreshold: Controls how quickly the queue depth should be restored once congestion has been addressed
vSphere administrators often enable adaptive queuing as a means to address storage congestion issues. However, while
this approach can temporarily help reduce storage congestion, it does not address the root cause of the congestion.
Moreover, although adaptive queuing can enhance performance during times when storage is congested, overall I/O
performance is superior in a well-tuned, balanced configuration.