The vCenter Server (vpxd) service may experience:
Such behaviors can occur when a large number of ContainerView objects are created via the vSphere API but are not properly destroyed.
Each createContainerView API call creates a server-side view object within vpxd.
If a client repeatedly creates ContainerView objects without properly destroying them:
ContainerView objects accumulate in memory → leading to memory exhaustion in vpxd
To identify potential ContainerView leaks, vpxd logs can be analyzed to compare:
A mismatch indicates potential leakage.
The username and client IP address information are recorded in the vpxd-profile logs, which can be correlated with vpxd.log entries for detailed analysis.
A custom script ViewLeakTracer.sh can be used to aggregate ContainerView usage per username and client IP address, helping identify the source of the leak.
To run the script,
/tmp or /root.vpxd*.log.gz or vpxd-profiler*.log.gz.Sample Output
vCenter ContainerView Leak Report (Sorted by Net_Leak)
Username Client_IP Total_Create Total_Destroy Net_Leak(Diff)
###\### ###.###.###.### XXX YYY (XXX-YYY)
------------------------------------------------------------------------------------------------------------------------
###\### ###.###.###.### ZZZ ZZZ 0
A positive Net_Leak indicates potential unreleased ContainerView object.
vpxd-extension, vsan.health) usually have minimal differencesEntries showing Unknown_User / Unknown_IP in the script output indicate that the ContainerView operation could not be correlated between the vpxd.log and vpxd-profiler.log.
This typically occurs when the log time ranges do not overlap. If a ContainerView operation is present in the vpxd.log but not found in the vpxd-profiler.log, it is reported as Unknown_User / Unknown_IP.