交换机端口流量读数怎么换算,bit和字节差着八倍

在交换机上敲一条display interface,每个端口后面都跟着input rate和output rate两个数字,单位是bit/s。维护人员常有三问:这个数是怎么算出来的?为什么和电脑上看到的拷贝速度对不上?能不能把所有端口的数字加起来算总流量?这三个疑问不解开,端口的读数就只是摆设。

原因分析

先说数字从哪来。交换机给每个端口维护两组计数器:收到的累计字节数、发出的累计字节数,从开机起一直往上加。看到的实时速率,是交换机取两个相邻采样点之间的计数器差值,除以间隔时间得出来的平均速率——它不是某一瞬间的真实值,而是距上一采样点一小段时间内的平均。

再说单位陷阱。交换机报的是bit(比特)每秒,日常说的拷贝速度、下载速度是Byte(字节)每秒,一个字节等于八比特。千兆口跑满时读数约1000Mbps,换算下来是125MB/s——“千兆怎么只有一百多兆”的疑惑,九成出在这个八倍换算上。

还有相加的问题。同一台交换机上,接入端口的流量几乎都会在上联口再出现一次:终端发给服务器的数据,从接入口进、从上联口出。把所有端口的输入速率加总,等于把同一批流量按进出重复计数,结果翻倍还多,没有参考意义。

分步解决

  1. 看读数先认方向。input rate是本端口收进来,output rate是本端口发出去。查“某台设备到底跑多大流量”,认准它接的那个口,收发两个方向分开记。
  2. 换算成字节再对比。把bit/s除以8得到B/s,再除以1024换算成KB/s或MB/s,与文件拷贝速度、测速结果才有可比性。对比前确认两边测的是同一段路径。
  3. 算总量只看上联口。想知道这台交换机往上游跑了多少,只看上联口一对收发速率,不要做全端口加法——上联口的读数天然就是本机所有端口的汇聚结果。
  4. 判断端口是否跑满。百兆口满载约100Mbps,千兆口约1000Mbps,读数长期贴着九成以上,说明该口容量到顶,考虑链路聚合或者升级端口速率。
  5. 留读数要留成对。记录时把时间点、端口、input/output、采样间隔一起记下来。换一天或者换一台设备再对比,缺了采样间隔的数字没有可比性。

预防

诚鑫致达科技交付网络时有个挑时段的习惯:验收安排在上班高峰,顺手把上联口和几个业务口的速率读数各抄一份,放进交付资料——基线读数留在纸面上,日后“网络变卡了”到底是真慢还是本来如此,把当时的数字再调出来一对就有结论。