Hello,
I have a problem with DelayedAck option on ESXi 5 hosts in conjunction with an iSCSI storage. We use EqualLogic PS6010 arrays over a 10GE SAN network together with an ESXi software iSCSI initiator. To get a reasonable SAN performance without terrible latencies, it is necessary to set DelayedAck=0 in iSCSI advanced options. On ESXi 4.1, once I set the option everything works fine. But on ESXi 5 it seems to me that the kernel sometimes "forget" that DelayedAck is set to zero and the SAN performance returns to iops/latency values as if DelayedAck would be set to 1, although vSphere Client and CLI still show that DelayedAck=0.
After a number of desperate tests, I guess that it is in some way related to a reconfiguration and/or a reconnection of the iSCSI adapter or a kernel port. I usually trigger the problem when I apply a host profile to a host or when I make iSCSI setup changes on the host. But at least one time I hit the bug when ESXi temporarily lost all connections to SAN switches due to network topology changes. (Of course, the host profile has DelayedAck set to zero and the other changes also didn't touch this option.)
To get the original performance, it usually suffices to reboot the host. But sometimes I also have to make a change of the DelayedAck option like turn it on and off, followed by a reboot.
I tried to set DelayedAck=0 globally in iSCSI storage adapter options, on a per-dynamic-target basis and also per-static-target basis, but there is no difference between them, the problem occurs despite the level on which DelayedAck=0 is set.
The problem is clearly in ESXi hosts and not in SAN or storage, because when I migrate a running VM with iometer to an unaffected host, the performance immediately increases after host switchover. (Hosts are equally installed blade servers with identical SAN setup and connections to blade switches.) I'm also quite sure that the described performance drop is related to the delayed ack feature, because the measured iometer performance statistics perfectly correspond to the ones measured when DelayedAck is intentionally turned on.
Does anybody have the same problem or is there something that I do wrong?
Best regards.
Martin