Monitor heap size used by different entities of DFW (VSIP) heap on transport nodes.

DFW rules is one of the entities that use the DFW heap memory. If the heap memory used by DFW rules exceeds a certain limit, NSX will raise alarms as per design.

You can monitor the amount of available heap memory by using the following API command on a transport node or a transport zone. For example, to know the memory used by DFW rules (vsip-rules), run the following API. It returns the status of the transport node.

GET https://<192.185.109.102>/policy/api/v1/transport-nodes/<71ed046c-cb9b-439d-965c-a515043bb2a6> /status?source=realtime

where <192.185.109.102> is the NSX Manager IP address and <71ed046c-cb9b-439d-965c-a515043bb2a6> is the Transport Node UUID.

{
    "node_uuid": "34088295-67b6-42d4-87e8-e94ab1b64879",
    "node_display_name": "10.212.193.81",
    "status": "UP",
    "pnic_status": {
        "status": "UP",
        "up_count": 2,
        "down_count": 0,
        "degraded_count": 0,
        "last_status_changed_time": 1715582798009
    },
    "mgmt_connection_status": "UP",
    "control_connection_status": {
        "status": "UP",
        "up_count": 1,
        "down_count": 0,
        "degraded_count": 0,
        "last_status_changed_time": 1715582798009
    },
    "tunnel_status": {
        "bfd_status": {
            "bfd_admin_down_count": 0,
            "bfd_down_count": 0,
            "bfd_init_count": 0,
            "bfd_up_count": 2
        },
        "bfd_diagnostic": {
            "no_diagnostic_count": 2,
            "control_detection_time_expired_count": 0,
            "echo_function_failed_count": 0,
            "forwarding_plane_reset_count": 0,
            "path_down_count": 0,
            "concatenated_path_down_count": 0,
            "administratively_down_count": 0,
            "reverse_concatenated_path_down_count": 0,
            "neighbor_signaled_session_down_count": 0
        },
        "status": "UP",
        "up_count": 2,
        "down_count": 0,
        "last_status_changed_time": 1715582798009
    },
    "evpn_tunnel_status": {
        "bfd_status": {
            "bfd_admin_down_count": 0,
            "bfd_down_count": 0,
            "bfd_init_count": 0,
            "bfd_up_count": 0
        },
        "bfd_diagnostic": {
            "no_diagnostic_count": 0,
            "control_detection_time_expired_count": 0,
            "echo_function_failed_count": 0,
            "forwarding_plane_reset_count": 0,
            "path_down_count": 0,
            "concatenated_path_down_count": 0,
            "administratively_down_count": 0,
            "reverse_concatenated_path_down_count": 0,
            "neighbor_signaled_session_down_count": 0
        },
        "status": "UP",
        "up_count": 0,
        "down_count": 0,
        "last_status_changed_time": 1715582798009
    },
    "agent_status": {
        "status": "UP",
        "up_count": 5,
        "down_count": 0,
        "agents": [
            {
                "status": "UP",
                "name": "NSX_NESTDB",
                "last_status_changed_time": 1715582995380,
                "resource_usage": {
                    "memory_used": 168972,
                    "memory_total": 1048576
                }
            },
            {
                "status": "UP",
                "name": "NSX_OPSAGENT",
                "last_status_changed_time": 1715582995380,
                "components": [
                    {
                        "status": "UP",
                        "name": "opsagent-proxy-connection"
                    }
                ],
                "resource_usage": {
                    "memory_used": 263012,
                    "memory_total": 1331200
                }
            },
            {
                "status": "UP",
                "name": "NSX_CFGAGENT",
                "last_status_changed_time": 1715582995380,
                "components": [
                    {
                        "status": "UP",
                        "name": "cfgagent-nestdb-connection"
                    }
                ],
                "resource_usage": {
                    "memory_used": 98304,
                    "memory_total": 1048576
                }
            },
            {
                "status": "UP",
                "name": "NSX_EXPORTER",
                "last_status_changed_time": 1715582995380,
                "resource_usage": {
                    "memory_used": 86208,
                    "memory_total": 786432
                }
            },
            {
                "status": "UP",
                "name": "NSX_VDPI",
                "last_status_changed_time": 1715582995380,
                "resource_usage": {
                    "memory_used": 651864,
                    "memory_total": 1048576
                }
            }
        ],
        "last_status_changed_time": 1715582995380,
        "degraded_count": 0
    },
    "node_status": {
        "last_heartbeat_timestamp": 1715582790048,
        "last_sync_time": 1716965189642,
        "mpa_connectivity_status": "UP",
        "mpa_connectivity_status_details": "Client is responding to heartbeats",
        "lcp_connectivity_status": "UP",
        "lcp_connectivity_status_details": [
            {
                "control_node_ip": "192.185.109.102",
                "status": "UP"
            }
        ],
        "host_node_deployment_status": "INSTALL_SUCCESSFUL",
        "inventory_sync_paused": false,
        "software_version": "4.2.1.0.0.23853945",
        "system_status": {
            "cpu_cores": 4,
            "disk_space_total": 0,
            "disk_space_used": 0,
            "file_systems": [
                {
                    "file_system": "root",
                    "mount": "/",
                    "total": 32768,
                    "type": "ramdisk",
                    "used": 15608
                },
                {
                    "file_system": "etc",
                    "mount": "/etc",
                    "total": 28672,
                    "type": "ramdisk",
                    "used": 1096
                },
                {
                    "file_system": "opt",
                    "mount": "/opt",
                    "total": 32768,
                    "type": "ramdisk",
                    "used": 2724
                },
                {
                    "file_system": "var",
                    "mount": "/var",
                    "total": 49152,
                    "type": "ramdisk",
                    "used": 732
                },
                {
                    "file_system": "tmp",
                    "mount": "/tmp",
                    "total": 262144,
                    "type": "ramdisk",
                    "used": 0
                },
                {
                    "file_system": "iofilters",
                    "mount": "/var/run/iofilters",
                    "total": 32768,
                    "type": "ramdisk",
                    "used": 0
                },
                {
                    "file_system": "shm",
                    "mount": "/var/run/shm",
                    "total": 1048576,
                    "type": "ramdisk",
                    "used": 0
                },
                {
                    "file_system": "crx",
                    "mount": "/var/run/crx",
                    "total": 1048576,
                    "type": "ramdisk",
                    "used": 0
                },
                {
                    "file_system": "configstore",
                    "mount": "/etc/vmware/configstore",
                    "total": 32768,
                    "type": "ramdisk",
                    "used": 176
                },
                {
                    "file_system": "configstorebkp",
                    "mount": "/var/lib/vmware/configstore/backup",
                    "total": 32768,
                    "type": "ramdisk",
                    "used": 176
                },
                {
                    "file_system": "hostdstats",
                    "mount": "/var/lib/vmware/hostd/stats",
                    "total": 210944,
                    "type": "ramdisk",
                    "used": 4132
                },
                {
                    "file_system": "nestdb",
                    "mount": "/var/lib/vmware/nsx/nestdb/db",
                    "total": 524288,
                    "type": "ramdisk",
                    "used": 35424
                },
                {
                    "file_system": "nsx-idps",
                    "mount": "/etc/nsx-idps/rules",
                    "total": 65536,
                    "type": "ramdisk",
                    "used": 13644
                },
                {
                    "file_system": "nsx-idps-pcap",
                    "mount": "/var/log/nsx-idps/pcaps",
                    "total": 32768,
                    "type": "ramdisk",
                    "used": 0
                }
            ],
            "load_average": [
                0.07000000029802322,
                0.07000000029802322,
                0.07000000029802322
            ],
            "edge_mem_usage": {
                "system_mem_usage": 0.0,
                "swap_usage": 0.0,
                "cache_usage": 0.0,
                "datapath_total_usage": 0.0
            },
            "mem_cache": 0,
            "mem_total": 16776632,
            "mem_used": 10043812,
            "source": "realtime",
            "swap_total": 0,
            "swap_used": 0,
            "system_time": 1716966921000,
            "uptime": 1385929000,
            "cpu_sockets": 4,
            "remote_logging_server_configured": false,
            "dfw_heap_memory_usage": [
                {
                    "name": "vsip-module",
                    "description": "vsip-module heap memory usage",
                    "total_mb": 512,
                    "used_mb": 3,
                    "usage_pct": 0.67
                },
                {
                    "name": "vsip-state",
                    "description": "vsip-state heap memory usage",
                    "total_mb": 192,
                    "used_mb": 0,
                    "usage_pct": 0.0
                },
                {
                    "name": "vsip-rules",
                    "description": "vsip-rules heap memory usage",
                    "total_mb": 512,
                    "used_mb": 0,
                    "usage_pct": 0.03
                },
                {
                    "name": "vsip-kentries",
                    "description": "vsip-kentries heap memory usage",
                    "total_mb": 1535,
                    "used_mb": 0,
                    "usage_pct": 0.0
                },
                {
                    "name": "netx-state",
                    "description": "netx-state heap memory usage",
                    "total_mb": 64,
                    "used_mb": 0,
                    "usage_pct": 0.0
                },
                {
                    "name": "netx-rules",
                    "description": "netx-rules heap memory usage",
                    "total_mb": 64,
                    "used_mb": 0,
                    "usage_pct": 0.0
                },
                {
                    "name": "vsip-flow",
                    "description": "vsip-flow heap memory usage",
                    "total_mb": 168,
                    "used_mb": 0,
                    "usage_pct": 0.0
                },
                {
                    "name": "vsip-attr",
                    "description": "vsip-attr heap memory usage",
                    "total_mb": 96,
                    "used_mb": 3,
                    "usage_pct": 3.52
                },
                {
                    "name": "vsip-fqdn",
                    "description": "vsip-fqdn heap memory usage",
                    "total_mb": 96,
                    "used_mb": 0,
                    "usage_pct": 0.05
                },
                {
                    "name": "vsip-si",
                    "description": "vsip-si heap memory usage",
                    "total_mb": 128,
                    "used_mb": 0,
                    "usage_pct": 0.0
                },
                {
                    "name": "vsip-fprules",
                    "description": "vsip-fprules heap memory usage",
                    "total_mb": 512,
                    "used_mb": 0,
                    "usage_pct": 0.0
                },
                {
                    "name": "vsip-ipreputation",
                    "description": "vsip-ipreputation heap memory usage",
                    "total_mb": 128,
                    "used_mb": 39,
                    "usage_pct": 31.23
                }
            ]
        }
    },
    "last_aggsvc_heartbeat": 1716966120855,
    "last_status_changed_time": 1715582995380
}

where,

total_mb and used_mb in MBs are associated with each heap.

usage_pct is the percentage of memory used by each heap.

You can also use the following APIs to know the heap or memory used by DFW rules for all transport nodes that are associated to a transport zone.

Policy APIs: Some of the API commands support a new parameter include_dfw_heap_stats, which displays the DFW heap statistics in the API response.

GET https://<nsx-mgr>/policy/api/v1/transport-nodes/<tn-uuid>/status

This API command displays the status of a transport node including the DFW heap memory statistics.

GET https://<nsx-mgr>/policy/api/v1/transport-zones/transport-node-status?include_dfw_heap_stats=true

This API command displays the DFW heap memory used by all transport nodes.

GET https://<nsx-mgr>/policy/api/v1/transport-nodes/<tn-uuid>/remote-transport-node-status?include_dfw_heap_stats=true

This API command displays the DFW heap memory used by remote transport nodes associated with a specific transport node.

GET https://<nsx-mgr>/policy/api/v1/transport-zones/<tz-uuid>/transport-node-status?include_dfw_heap_stats=true

This API command displays the DFW heap memory used by all transport nodes associated with a specific transport zone.

Management Plane APIs:

GET https://<nsx-mgr>/api/v1/transport-nodes/<tn-uuid>/status

This API command displays the status of a transport node including DFW heap memory usage statistics.

GET https://<nsx-mgr>/api/v1/transport-zones/transport-node-status?include_dfw_heap_stats=true

This API command displays the DFW heap memory used by all transport nodes.

GET https://<nsx-mgr>/api/v1/transport-nodes/<tn-uuid>/remote-transport-node-status?include_dfw_heap_stats=true

This API command displays the DFW heap memory used by remote transport nodes associated with a specific transport node.

GET https://<nsx-mgr>/api/v1/transport-zones/<tz-uuid>/transport-node-status?include_dfw_heap_stats=true

This API command displays the DFW heap memory used by all transport nodes associated with a specific transport zone.