Setting SNMP Queue Size
Problem
You want to increase the size of a router's SNMP trap queue.
Solution
The following command increases the size of a router's SNMP trap queue:
Router#configure terminal Enter configuration commands, one per line. End with CNTL/Z. Router(config)#snmp-server queue-length 25 Router(config)#end Router#
To increase the size of the router's SNMP inform queue, use the following configuration command:
Router#configure terminal Enter configuration commands, one per line. End with CNTL/Z. Router(config)#snmp-server inform pending 40 Router(config)#end Router#
Discussion
By default, the router can hold 10 trap messages in its queue. The queue holds traps until the router can forward them to the NMS. The queue fills when the router generates traps faster than it can forward them. If it generates additional traps when the queue is already full, these new trap messages are dropped. The router has only one SNMP message queue for all trap recipients.
Regardless of the network's capacity, the router will never send SNMP messages faster than four traps per second. This rate is hardcoded into the router and is not configurable. So if you have several NMS systems, or if your router creates a particularly large number of traps, you might want to increase the size of this queue to help prevent inadvertent discarding of traps.
The snmp-server queue-length command will accept any integer between 1 and 1,000, representing the maximum number of packets that can be held at a time.
To show the current number of SNMP messages in the queue, and the maximum queue size, use the show snmp EXEC command:
Router#show snmp Chassis: JAX123456789 Contact: Ian Brown 416-555-2943 Location: 999 Queen St. W., Toronto, Ontario 270 SNMP packets input 0 Bad SNMP version errors 12 Unknown community name 0 Illegal operation for community name supplied 0 Encoding errors 231 Number of requested variables 25 Number of altered variables 11 Get-request PDUs 222 Get-next PDUs 25 Set-request PDUs 584 SNMP packets output 0 Too big errors (Maximum packet size 1480) 2 No such name errors 0 Bad values errors 0 General errors 258 Response PDUs 326 Trap PDUs SNMP logging: enabled Logging to 172.25.1.1.162, 0/25, 309 sent, 17 dropped. Router#
In this example, the 0/25 in the last line means that no SNMP traps are currently queued for transmission, and the queue can accept up to 25 messages at once. You can use the number of dropped SNMP traps to verify whether your queue is too small by seeing if this number grows rapidly over time. In this case, the Trap PDUs line tells you that the router has tried to send 326 traps. Of these, the last line tells you that it has successfully sent 309 and dropped 17. This is a five percent drop rate, which suggests that the queue depth should probably be increased.
SNMP informs maintain a queue for messages pending acknowledgement. Each inform is held in the pending queue until an acknowledgement is received. Consequently, the inform queue must be considerably larger than the corresponding trap queue.
If you choose to implement SNMP informs, we highly recommend that you increase the size of the pending queue from the default value of 25:
Router(config)#snmp-server inform pending 40
The router will accept any integer between 1 and 4,294,967,295, representing the number of unacknowledged informs to hold. If the size of the pending queue is too small, then there is very little benefit to using informs, because the router will not be able to hold new messages.