3PAR iSCSI Delayed ACK read or write performance issues

I’ve noticed a few people running iSCSI 3PARs with Delayed ACK enabled and experiencing latency on their datastores. Here’s what happens when you disable it (SSD backed datastore):
Before and after:

VMware KB about it:
https://kb.vmware.com/kb/1002598

I suggest to use Host Profiles to check compliance and make sure it’s disabled across all your hosts. In case you don’t use them I’ve also created Powercli script to disable it on all hosts.

# Name: delay_ack.ps1
# Author: Naz Snidanko
# Date Created: Jun 21, 2017
# Date Modified:
# Version: 0.1
# Description: checks all hosts for iSCSi adapter and disables delay ack
# Credit: http://tech.zsoldier.com/2011/09/disable-delayed-acknowledgement-setting.html
#import Powercli module
Import-Module VMware.PowerCLI
$vCenter = Read-Host -Prompt "Please enter vCenter server name"
connect-viserver -server $vCenter
Get-VMHost | Foreach {
write-host ( "Connecting to host: " + $_.name )
$HostView = $_ | Get-View
$HostStorageSystemID = $HostView.configmanager.StorageSystem
$HostiSCSISoftwareAdapterHBAID = ($HostView.config.storagedevice.HostBusAdapter | where {$_.Model -match "iSCSI Software"}).device
if ($HostiSCSISoftwareAdapterHBAID -eq $null)
{
write-host ("No Software iSCSI adapter found on host " + $_.name + ". No changes were made.") -BackgroundColor Red
}
else
{
$options = New-Object VMWare.Vim.HostInternetScsiHbaParamValue[] (1)
$options[0] = New-Object VMware.Vim.HostInternetScsiHbaParamValue
$options[0].key = "DelayedAck"
$options[0].value = $false
$HostStorageSystem = Get-View -ID $HostStorageSystemID
$HostStorageSystem.UpdateInternetScsiAdvancedOptions($HostiSCSISoftwareAdapterHBAID, $null, $options)
write-host ("Software iSCSI adapter found on host " + $_.name + ". Changes were made.") -BackgroundColor Green
}
}
disconnect-viserver -server $vCenter -confirm:$false
This entry was posted in 3par, Powershell, VMware and tagged , , . Bookmark the permalink.

Leave a Reply

Your email address will not be published. Required fields are marked *