实战案例:交换机之间汇聚为 2Gbps 口,但实际使用中竟达不到 2G 吞吐量且丢包严重?
本期分享的案例是有线/无线网络的相关问题。
一、背景介绍
客户是一家工作室,主要业务是做自媒体,对于网络要求很高,每日都会负载很大的上下行流量。入户是下行10Gbps的万兆宽带,路由和核心交换机也都是万兆设备,汇聚和接入交换机通过汇聚的方式互联,设备品牌是某J。
现场简化拓扑如下:
规划配置如下:
傻瓜式网络,网段为:10.0.0.0/16所有的路由器、交换机全部都是管理型设备二、问题现象
IT客户使用的方式主要是终端(PC1....PC6等)跑大流量的下载任务,使用过程中存在问题:汇聚和接入交换机之间的2Gbps汇聚口LAG无法跑满,并且在跑大流量的时候PC上网会出现卡顿的情况。
三、排查分析
第一步:确认总吞吐量无法跑满2Gbps问题首先查看交换机汇聚口两条链路的吞吐总量,可以看到接入交换机的两条物理链路上分别为996Mbps+250Mbps,差不多总计1.3Gbps。
从目前的现象来看是因为单条链路的流已经打满了,但是另外一条链路远不到瓶颈,所以总吞吐量没法打满。并且从这个现象来看,如果流量继续跑9口(打满流量的那条链路),那么就可能会产生丢包。
第二步:确认大流量的情况下丢包情况跑高吞吐量时PC ping测试外网和内网网关的结果如下:
从目前的现象来看确实存在丢包了,大概率是该PC的流量打在了那条将近跑满1Gbps的物理链路上。
综上所述,那么基于这种情况初步判断是汇聚分流不均匀导致,由于交换机可看信息有限,我们就要从原理侧进行分析并尝试解决。
第三步:深度思考汇聚算法因为汇聚算法要么基于IP要么基于MAC,所以一条四元组固定的会话流只会走1条固定的物理链路。因此当前的总流量打不起来的问题,基于拓扑:
分析如下:
会话1来自PC5—峰值肯可能是700Mbps,正好hash到了汇聚物理口9会话2来自PC6—峰值肯可能是300Mbps,正好hash到了汇聚物理口10会话3来自PC4—峰值肯可能是600Mbps,正好hash到了汇聚物理口9会话4来自PC5—峰值肯可能是300Mbps,正好hash到了汇聚物理口10所以总的流量是:
9物理口实际最多只能1Gbps而达不到1.3Gps(600+700)10物理口实际可达预期600Mbps,因为该口是1bps还不到瓶颈。基本结论:
交换机汇聚口是不具备带宽均衡策略的,所以如果有PC又概率性的走到9口那就会导致丢包的情况出现。基于此,符合现场存在“总吞吐量达不到2Gbps和高吞吐量下PC出现通信丢包的问题现象”
四、解决方案
从上述分析出发,这是一个数学的概率性问题,所以可以尝试增加汇聚口,如下:
会话1—峰值肯可能是700Mbps,正好hash到了汇聚物理口9会话2—峰值肯可能是300Mbps,正好hash到了汇聚物理口10会话3—峰值肯可能是600Mbps,正好hash到了汇聚物理口11即每个口的hash就能大概率的均衡过去了,每个物理口皆保持在1Gbps以下
可以明显的看到分流更均匀了,每个物理口的流量都未达到1Gbps瓶颈,然后测试下PC ping网关和外网的情况:
基本没有再出现丢包的问题,问题解决!