This article addresses intermittent kernel memory allocation warnings (SetSockOpt SO_NETTRACKER failed with status Out of memory) on ESXi hosts observed during periods of high cluster workload or storage contention.
The root cause is identified as NFS datastore lock contention triggered by Storage I/O Control (SIOC).
ESXi hosts report persistent memory allocation warnings in /var/run/log/vmkwarning.log or /var/run/log/vmkernel.log:
WARNING: MigrateNet: <Session_ID> S: SetSockOpt SO_NETTRACKER of sock <Socket_Address> failed with status Out of memoryWARNING: MigrateNet: vm <World_ID>: 3303: SetSockOpt SO_NETTRACKER of sock <Socket_Address> status Out of memoryAssociated symptoms include:
WARNING: DVSDev: DVSDevPortAdd:526: failed to acquire lock <DVS_UUID>WARNING: NFSLock: 4156: File is being locked by a consumer on host <Host_FQDN> with exclusive lock.NFSLock: 5141: failed to get lock on file slotsfile(.lck-<Lock_ID>) ... Busy.VMware vSphere ESXi
The issue is caused by a resource exhaustion event triggered by NFS datastore lock contention:
The Storage I/O Control (SIOC) or statistics collection is enabled on shared NFS datastores, multiple hosts in a cluster concurrently attempt to acquire exclusive .lck file locks on the shared slotsfile.
This contention stalls low-level storage I/O worker threads in the VMkernel.
DVS Port Lockup this is a delayed I/O queue prevents dynamic virtual switch operations from acquiring the locks causing port attachment routines to hang.
Fault Domain Manager (FDM) retry loops with migration/replication socket tracking attempts, exhaust the VMkernel network heap (netPool), preventing SO_NETTRACKER socket options from allocating memory.
If active VMs are trapped in a locked DVS port state:
esxcli vm process list | grep -A 1 -i "<VM_Name_Pattern>"esxcli vm process kill --type=force --world-id=<World_ID>/etc/init.d/hbrsrv restart /etc/init.d/hostd restart /etc/init.d/vpxa restartfdm service to unbind across all hosts.