The nsx-edge-exporter leaks memory and this can cause high memory usage on an edge, leading unstable state and affecting data communication.
The following top command shows that the memory usage of nsx-edge-exporter is abnormally high on the edge.
root@edge:~# top -n 1 -b -c -o %MEM | head -10
top - 17:30:02 up 94 days, 15:27, 0 users, load average: 0.30, 0.27, 0.27
Tasks: 261 total, 1 running, 260 sleeping, 0 stopped, 0 zombie
%Cpu(s): 2.1 us, 2.8 sy, 0.0 ni, 95.1 id, 0.0 wa, 0.0 hi, 0.0 si, 0.0 st
KiB Mem : 32653032 total, 119268 free, 32437400 used, 96364 buff/cache
KiB Swap: 0 total, 0 free, 0 used. 42232 avail Mem
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ TGID COMMAND
3012 exporter 20 0 17.6g 14.8g 0 S 0.0 47.5 81:50.80 3012 /opt/vmware/nsx-aggservice/bin/nsx-edge-exporter <<============ !!!!!
.....
/var/log/vmware/top-mem.log shows the memory usage of this process is gradually increasing.
root@edge:/var/log/vmware# grep /opt/vmware/nsx-aggservice/bin/nsx-edge-exporter top-mem.log | grep -v nsx-edge-exporter.sh | awk '{print $10}' | uniq
45.3
45.4
45.5
45.6
45.5
45.6
45.7
45.8
45.9
46.0
.....
This issue occurs when the URL database is enabled to use the URL filtering feature.
Create a URL Filtering Policy
To check if the URL database is enabled, navigate to Security > General Security Settings and select the URL Database tab.
The issue occurs due to a certain process that runs periodically when URL filtering is enabled and does not free memory.
This issue is resolved in NSX 4.1.1 and later releases.
A temporary workaround is to restart the nsx-edge-exporter with the following command:
systemctl restart nsx-edge-exporter