|
|
本帖最后由 xykz 于 2023-11-21 13:01 编辑
众所周知,SQM在应对缓冲区膨胀时候的效果非常好,但是在连接数高、上行满载的网络环境下,默认的配置还是差强人意,会出现正常网页/app浏览由于偶发性丢包引起的高延迟,或者运气不好某个请求连续丢包到失败;或者你有公网IP连接的时候,上行流量没法被很好的分配;
这几天看了一下分层和DSCP相关的内容,解决了上面提出的问题,先上对比效果:
这是直接使用piece_of_cake.qos时上行接口一周的监控数据,第一张表可以看到上行是时刻满载的;第二张表可以看到高峰期PCDN对整个网络延迟的影响,可以高达100ms(这里因为PCDN的包多,且和正常流量混在了一起,所以显得高,实际使用网络体感延迟倒还好,还是比较顺畅的);第三张表可以看到拥塞时的丢包统计数据;
这是调整后得BE(Best Effort,尽力而为,大多数数据包没分类都会被分到这里,可以吃满整个带宽)数据,各方面数据都比上面低了几个数量级
这是调整后的BK(Bulk,CS1及其他的慢速流量都会被分配到这里,最多只能吃3648Kbit的流量)数据,可见已经吃满了上行,非常拥堵
还有两个Video和Voice的我就不贴了,除非应用有DSCP打标(很少,尤其国内的环境),不然流量不会去到这俩;
直接文字举例吧,调整前,公网下载家里的文件,最高就500Kb/s的速度,高峰期还没有;调整后,可以直接吃满50Mbps的带宽,此时去看PCDN的带宽几乎被压到没有;
下面开始配置教程:
首先是基于你的上下行带宽*85%-95%设置一个值
注意使用layer_cake.qos,才能为PCDN/BT/PT的流量分类
注意黄色框的内容是要填写的:
入口(下行)填
nat dual-dsthost ingress
出口(上行)填
nat dual-srchost diffserv4
这里的nat dual-xxx意思是在NAT的环境执行下每IP公平策略,即所有IP均分带宽
下行的ingress忘了啥意思了,diffserv4是流量分类的等级
如果你清楚什么是数据包开销,直接按图设置即可;这个值偏大会浪费一点带宽,但是小了会影响QOS的效果
到这里,SQM的设置就结束了,但是光这样还不行,因为大家都不怎么care DSCP标识,PCDN/BT/PT的流量还是会跑到高优先级队列。
所以我们还要在iptables里对这些流量打个DSCP标识,以便QOS可以识别它们。因为我家的PCDN都是单独的机器,所以这里只做单独机器演示,如果不是,按照这个思路想办法:
- iptables -t mangle -A PREROUTING -m mac --mac-source xx:xx:xx:xx:xx:xx -j DSCP --set-dscp-class CS1 -m comment --comment "dcsp-wxedge"
复制代码
这句的意思是,对某个mac地址出来的所有流量,都打上CS1的DSCP标签,意为低优先级数据,在SQM的diffserv4分类下,对应的是Bulk,拥塞情况下最高的速度只有3648Kbit
注意,通过iptables对流量打DSCP标志需要关闭快速转发引擎/fastpath之类的东西,有硬件转发的话更不用说了,否则数据包都没到你这就转走了
|
本帖子中包含更多资源
您需要 登录 才可以下载或查看,没有账号?立即注册
×
评分
-
查看全部评分
|