您如何知道 Cisco 交换机是否能够很好地处理流量?

网络工程 思科 转变 监控 国际标准化组织 表现
2021-07-10 14:53:47

我刚刚阅读了Jeremy 关于 2960-S 和 iSCSI 流量处理的问题,这促使我提出这个问题:我们都有很多交换机部署在不同的基础设施中,你怎么知道流量得到了很好的处理?

我通常检查 CPU、RAM 和系统日志,但没有考虑缓冲区。

我使用了show buffers failures,这是一个数据示例:

show buffers failures 
Caller       Pool          Size      When
0x1279AE0   Middle           445    3d19h
0x1279AE0   Middle           446    3d19h
0x1279AE0   Middle           444    3d19h

我怎么知道这是在哪个接口上发生的?

是否还有其他性能指标需要审查?

3个回答

这取决于您拥有的交换机型号,这并不容易。

较小的 Catalyst 交换机通常至少使用两种形式的缓冲区 - 通常有一个接口层缓冲区,在较小的Catalyst (2k/3k) 上,在名为“接口缓冲池:”的部分下的“显示缓冲区”中可见:

Interface buffer pools:
Syslog ED Pool buffers, 600 bytes (total 132, permanent 132):
   100 in free list (132 min, 132 max allowed)
   11151 hits, 0 misses
RxQ1 buffers, 2040 bytes (total 128, permanent 128):
   4 in free list (0 min, 128 max allowed)
   244594209 hits, 4559839 fallbacks
RxQ2 buffers, 2040 bytes (total 128, permanent 128):
   1 in free list (0 min, 128 max allowed)
   202559241 hits, 1582494 fallbacks, 0 trims, 0 created
   1582494 failures (0 no memory)
...

...还有“公共”区域,CPU 正在使用缓冲区,因为它们被扔向它并需要维修。“Rx”级缓冲区是共享缓冲区的一部分,用于服务所有接口(在旧的传统交换机上,如 2950 或最新的2960S/3560X/etc)或属于特定端口 ASIC(如29603560)的接口子集/3750/3560E/3750E)。

特别是4500 和 6500 上,它变得混乱,因为数据包可以通过许多池 - 输入接口 (ASIC) 缓冲区、线路卡级别的池(在 6500 上的 DFC)、交换机结构级别最后是主管级别的缓冲区。它们不必是物理上独立的内存池,但通常在不同的命令中映射到不同的名称以简化故障排除过程(例如,在数据包走查的哪个步骤丢弃了数据包)。

到目前为止,您得到了很好的答复。

就像 Lukasz 所说,Catalyst 交换机上的缓冲区设置有点复杂。您可以从一个池中为 4 个出口队列分配缓冲区。您可以选择保留一定数量的缓冲区,让其余的放在一个池中,并根据需要使用它。保留的缓冲区不能被其他队列/阈值触及。

在此处输入图片说明

要查看不同队列/阈值上的丢弃,请使用以下命令:

show platform port-asic stats drop gix/x

在此处输入图片说明

如果您遇到缓冲区故障,我将使用如下命令:

显示界面 | 我(线路协议|无缓冲区)

您将需要手动对输出进行一些排序,但是您正在寻找的行是您有超过 0 个没有缓冲区错误的行,如下所示:

FasttEthernet0/24 is up, line protocol is up (connected)
     1557332164 packets input, 3733280910 bytes, 6718 no buffer