Congestion cannot be solved by just adding more buffer, the buffers are small and constant congestion cannot be solved with just adding buffers.
The folllowing actions can reduce port congestion;
Usefull commands to see buffers:
- Increase port speed or add more ports to a LAG (port sharing), this is the ultimate solution although not always possible.
- remove unneeded QosProfiles (every created qosprofile takes buffer away from the shared buffer )
- Configure the congested port to be able to use more shared-packet-buffer (in below example the port can use 100 % of the shared-packet-buffer instead of the default 20 %)
- configure port <PORT> shared-packet-buffer 100
- Reduce the amount of shared-packet-buffer the other ports can use (decrease from the default 20 %)
- If there are more ports that show congestion try to move ports to different asics, shared-packet-buffer is shared among ports on the same chip, if the slot or unit has more asics moving a congested port to another asic could make more buffer available to that port.
show port <PORT-LIST> buffer
Example output from an X460 with some QOS profiles configured:
X460.1 # show ports 1 buffer
In this command output you can see which other ports share the same buffer/asic in the first line.
Packet Buffer Allocation for ports in range 1-24
Total Packet Buffer Size: 3145728 bytes, Not Overcommitted
Total Shared Buffer Size: 2828672
Port 1 Max Shared Buffer Usage: 565632 bytes (20%)
QP1: Reserved Buffer: 1536 bytes
QP4: Reserved Buffer: 1536 bytes
QP5: Reserved Buffer: 1536 bytes
QP6: Reserved Buffer: 1536 bytes
QP8: Reserved Buffer: 1536 bytes
If above command is not available (older EXOS versions) there is a debug command:
debug hal show platform packet-buffer ports <PORT-LIST>
Implementing QOS will not prevent packet drops, but will prevent higher priority traffic to be dropped because of low priority traffic.