I have just read Jeremy's question about 2960-S and iSCSI traffic handling, which drove me to ask this question: We all have lots of switches deployed in distinct infrastructures, how can you know that the traffic is treated well?
I usually check CPU, RAM and system logs but didn't think about buffers.
I used show buffers failures and here is an example of the data:
show buffers failures
Caller Pool Size When
0x1279AE0 Middle 445 3d19h
0x1279AE0 Middle 446 3d19h
0x1279AE0 Middle 444 3d19h
How can I know on which interface this occurred?
Are there other performance metrics that should be reviewed?
Best Answer
That depends on the switch model you have and it's not that easy.
Smaller Catalyst switches in general use at least two forms of buffer - there's usually a interface-lavel buffer, on the smaller Catalyst (2k/3k) visible in 'show buffers' under the section named 'Interface buffer pools:':
...and there's "public" area, where CPU is using the buffers as they're punted towards it and need servicing. The "Rx"-level buffers are part of the shared buffer to service all interfaces (on either old, legacy switches like 2950 or newest 2960S/3560X/etc) or a subset of interfaces, belonging to specific port ASIC (like 2960 or 3560/3750/3560E/3750E).
On the 4500 and 6500 in particular it gets messy, as there is a number of pools that packet can go through - input interface (ASIC) buffer, the pool at linecard level (on the 6500 at DFC), at the switch-fabric level and at the end the buffer at Supervisor level. They don't have to be physically separate memory pools, but are often mapped in different commands to different names to ease the troubleshooting process (at which step of the packet walk-through was the packet dropped for example).