cffd87a627
#### Why I did it When CPU is busy, the sonic_ax_impl may not have sufficient speed to handle the notification message sent from REDIS. Thus, the message will keep stacking in the memory space of sonic_ax_impl. If the condition continues, the memory usage will keep increasing. #### How I did it Add a monit file to check if the SNMP container where sonic_ax_impl resides in use more than 4GB memory. If yes, restart the sonic_ax_impl process. #### How to verify it Run a lot of this command: `while true; do ret=$(redis-cli -n 0 set LLDP_ENTRY_TABLE:test1 test1); sleep 0.1; done;` And check the memory used by sonic_ax_impl keeps increasing. After a period, make sure the sonic_ax_impl is restarted when the memory usage reaches the 4GB threshold. And verify the memory usage of sonic_ax_impl drops down from 4GB.
39 lines
1.4 KiB
Makefile
39 lines
1.4 KiB
Makefile
# docker image for snmp agent
|
|
|
|
DOCKER_SNMP_STEM = docker-snmp
|
|
DOCKER_SNMP = $(DOCKER_SNMP_STEM).gz
|
|
DOCKER_SNMP_DBG = $(DOCKER_SNMP_STEM)-$(DBG_IMAGE_MARK).gz
|
|
|
|
$(DOCKER_SNMP)_PATH = $(DOCKERS_PATH)/docker-snmp
|
|
|
|
## TODO: remove LIBPY3_DEV if we can get pip3 directly
|
|
$(DOCKER_SNMP)_DEPENDS += $(SNMP) $(SNMPD)
|
|
|
|
$(DOCKER_SNMP)_DBG_DEPENDS = $($(DOCKER_CONFIG_ENGINE_BULLSEYE)_DBG_DEPENDS)
|
|
$(DOCKER_SNMP)_DBG_DEPENDS += $(SNMP_DBG) $(SNMPD_DBG) $(LIBSNMP_DBG)
|
|
$(DOCKER_SNMP)_DBG_DEPENDS += $(LIBSWSSCOMMON) $(PYTHON3_SWSSCOMMON)
|
|
|
|
$(DOCKER_SNMP)_DBG_IMAGE_PACKAGES = $($(DOCKER_CONFIG_ENGINE_BULLSEYE)_DBG_IMAGE_PACKAGES)
|
|
|
|
$(DOCKER_SNMP)_PYTHON_WHEELS += $(SONIC_PY_COMMON_PY3) $(SONIC_PLATFORM_COMMON_PY3) $(ASYNCSNMP_PY3)
|
|
$(DOCKER_SNMP)_LOAD_DOCKERS += $(DOCKER_CONFIG_ENGINE_BULLSEYE)
|
|
|
|
$(DOCKER_SNMP)_VERSION = 1.0.0
|
|
$(DOCKER_SNMP)_PACKAGE_NAME = snmp
|
|
|
|
SONIC_DOCKER_IMAGES += $(DOCKER_SNMP)
|
|
SONIC_INSTALL_DOCKER_IMAGES += $(DOCKER_SNMP)
|
|
|
|
SONIC_DOCKER_DBG_IMAGES += $(DOCKER_SNMP_DBG)
|
|
SONIC_INSTALL_DOCKER_DBG_IMAGES += $(DOCKER_SNMP_DBG)
|
|
|
|
$(DOCKER_SNMP)_CONTAINER_NAME = snmp
|
|
$(DOCKER_SNMP)_RUN_OPT += --privileged -t
|
|
$(DOCKER_SNMP)_RUN_OPT += -v /etc/sonic:/etc/sonic:ro
|
|
$(DOCKER_SNMP)_RUN_OPT += -v /usr/share/sonic/scripts:/usr/share/sonic/scripts:ro
|
|
$(DOCKER_SNMP)_FILES += $(SUPERVISOR_PROC_EXIT_LISTENER_SCRIPT)
|
|
$(DOCKER_SNMP)_BASE_IMAGE_FILES += monit_snmp:/etc/monit/conf.d
|
|
|
|
SONIC_BULLSEYE_DOCKERS += $(DOCKER_SNMP)
|
|
SONIC_BULLSEYE_DBG_DOCKERS += $(DOCKER_SNMP_DBG)
|