Skip to content

Commit

Permalink
Update snmpd.conf.j2 prolong agentXTimeout to avoid timeout failure i…
Browse files Browse the repository at this point in the history
…n high CPU utilization scenario (sonic-net#21316)

Why I did it
Fix sonic-net#21314
Update and prolong the timeout of the requests between snmpd and SNMP AgentX.

In SONiC SNMP AgentX, the MIB updaters and AgentX client shares the same AsyncIO/Coroutine event loop.
During the MIB updaters update the SNMP values, the AgentX client can't respond to the snmpd request.

The default value of snmpd request is 1s(timeout) * 5(retries)

When the CPU is high, the MIB updaters are slow, 1s timeout is not enough, even if it retries 5 times.
Hence update to 5s(timeout) * 4(retries), the time windows = 20s, which makes sure the SNMP request can be handled even with 100% CPU utilization.

Work item tracking
Microsoft ADO 30112399:

How I did it
Update the default value(https://linux.die.net/man/5/snmpd.conf):

agentXTimeout 1(default value) -> 5
agentXRetries 5(default value) -> 4

How to verify it
Test on Cisco chassis, test_snmp_cpu.py which triggers 100% CPU utilization test whether snmp requests work well.
  • Loading branch information
yejianquan authored Jan 8, 2025
1 parent fe7ea66 commit 4317df5
Showing 1 changed file with 3 additions and 0 deletions.
3 changes: 3 additions & 0 deletions dockers/docker-snmp/snmpd.conf.j2
Original file line number Diff line number Diff line change
Expand Up @@ -194,6 +194,9 @@ trapsink {{ v3SnmpTrapIp }}:{{ v3SnmpTrapPort }}{% if v3SnmpTrapVrf != 'None' %}
#
# Run as an AgentX master agent
master agentx
agentXTimeout 5
agentXRetries 4

# internal socket to allow extension to other docker containers
# Currently the other container using this is docker-fpm-frr
# make sure this line matches bgp:/etc/snmp/frr.conf
Expand Down

0 comments on commit 4317df5

Please sign in to comment.