White Papers

Modifying queue depth and timeouts
15 Dell EMC SC Series: Best Practices with VMware vSphere | 2060-M-BP-V
Example PowerCLI Script (dsnro.ps1):
#Connect to vCenter. Change server, user, and password credentials below
Connect-VIServer -Server ‘vCenter_Server_IP_or_FQDN’ -User
‘administrator@vsphere.local’ -Password ‘thepassword’
#Change this variable to the desired dsnro (Default=32 Max=64)
$dsnro = 64
#Retrieve a list of ALL ESXi hosts from the vCenter server
$esxhosts = get-vmhost
#Cycle through each host retrieving all storage devices associated with that
host
foreach ($hostname in $esxhosts)
{
$esxcli = Get-EsxCli -VMHost $hostname
$devices = $esxcli.storage.core.device.list()
foreach ($device in $devices)
{
if ($device.Vendor -like "COMPELNT")
{
$esxcli.storage.core.device.set($false, $null, $device.Device, $null,
$null, $null, $null, $null, $null, $null, $null, $dsnro,$null,$null)
$esxcli.storage.core.device.list()
}
}
}
As a best practice for modifying any host settings, run tests to determine the impact of changing this variable
beforehand. Once successful tests have been completed, as a precautionary measure, it is recommended
only to run this script during a maintenance window. Since DSNRO helps to ensure fairness across the virtual
machines residing on a datastore, modifying this value could lead to individual virtual machines monopolizing
disk resources.
More information about the DSNRO can be found in the following documentation:
“Change Maximum Outstanding Disk Requests in the vSphere Web Client in the appropriate
vSphere Troubleshooting guide: VMware vSphere documentation
Setting the Maximum Outstanding Disk Requests for virtual machines (1268) in the VMware
Knowledge Base