找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
广告投放联系QQ68610888
查看: 8880|回复: 28

OpenWRT SQM QoS 使用及针对PCDN/BT/PT调优的方案

[复制链接]
本帖最后由 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都是单独的机器,所以这里只做单独机器演示,如果不是,按照这个思路想办法:

  1. 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之类的东西,有硬件转发的话更不用说了,否则数据包都没到你这就转走了

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

×

评分

参与人数 2恩山币 +4 收起 理由
eachen*** + 2 感谢你的分享,无论怎样,你都是最无私的人.
boa*** + 2 3Q

查看全部评分

收藏,谢谢大佬解惑~~~~~~~~~
回复

使用道具 举报

硬核,但看不懂,给大佬顶起来~
顺便问下,如果是普通家用,没有pcdn/pt需求,是不是不用修改到高级设置就可以了
回复

使用道具 举报

 楼主| | 显示全部楼层
acnixuil 发表于 2023-12-2 03:45
硬核,但看不懂,给大佬顶起来~
顺便问下,如果是普通家用,没有pcdn/pt需求,是不是不用修改到高级设置就 ...

可以省最后一步加iptables规则,其他的不变,最多就是费多点U
回复

使用道具 举报

收藏,谢谢大佬解惑~~~~~~~~~
回复

使用道具 举报

楼主你好,如果是针对网内所有设备的PCDN/BT/PT的流量打标应该怎么操作啊?谢谢
回复

使用道具 举报

请教下,对ipv6有用吗?
回复

使用道具 举报

感谢LZ分享经验,请教一下,对于赚钱宝这种PCDN设备,有时它会生成多个虚拟机,那 iptables 那条也就要写多个吗?有没有一直次性搞定它多个mac地址的方法?
回复

使用道具 举报

nice,实测有效果,按LZ的方式设定,再将PCDN的三个mac地址(其中有2个是赚钱宝的虚拟机mac地址)都在防火墙打上标记。 平时这些货都是满速占上行,但只要我远程复制文件时,它们的上行速度立刻就降下来,我还能获得接近宽带上行极限的最好的下载效果。
回复

使用道具 举报

谢谢分享,试一试
回复

使用道具 举报

 楼主| | 显示全部楼层
smdx 发表于 2023-12-15 12:05
楼主你好,如果是针对网内所有设备的PCDN/BT/PT的流量打标应该怎么操作啊?谢谢 ...

BT/PT只要是正经的客户端,应该都是自带CS1的DSCP标记的

PCDN就直接用上面的IPTABLES规则就可以了
回复

使用道具 举报

 楼主| | 显示全部楼层
boa2005 发表于 2024-1-13 09:45
nice,实测有效果,按LZ的方式设定,再将PCDN的三个mac地址(其中有2个是赚钱宝的虚拟机mac地址)都在防火 ...

哈哈,我也是virtual**复制文件测的,效果拔群,几乎是一瞬间压下去的;以前用peace of cake的时候,理论上应该是均分带宽的,但是不知道为何就是做不到。。。

不过这个有个小问题,很多流量都跑到voice那边去了,video几乎没有。。。不过这个无伤大雅,这部分包不多,一般都触发不了class的限额
回复

使用道具 举报

xykz 发表于 2024-1-16 19:14
哈哈,我也是virtual**复制文件测的,效果拔群,几乎是一瞬间压下去的;以前用peace of cake的时候,理论 ...

我是wireguard连回去远程下载测的。

“很多流量都跑到voice那边去了,video几乎没有” 这个不太懂是什么意思

回复

使用道具 举报

两个问题
LZ这个监控软件叫啥?
目前用的好像是nftables 执行了iptable的命令虽然页成功了 但是有个提示 支持nftables吗 写法有什么不同的吗
回复

使用道具 举报

 楼主| | 显示全部楼层
boa2005 发表于 2024-1-17 07:56
我是wireguard连回去远程下载测的。

“很多流量都跑到voice那边去了,video几乎没有” 这个不太懂是什么 ...

额,就是sqm的默认分类,Bulk\Best Effort\Video\Voice,以50M上行为例,对应的最大可用带宽是3648Kbit\58368Kbit\29184Kbit\14592Kbit,这个值是随你填入的带宽按比例分配的,可以除一下就知道大概占比了

如果流量不做任何打标,就走Best Effort,也就是58368Kbit能吃尽带宽这一档

打标就是为了把BT/PT/PCDN的流量划入Bulk,最多只能用3648Kbit

所以你复制文件的时候流量走的是Best Effort,此时需求大,那Bulk那边就会被压到目标的限额,等复制文件完事了,带宽宽裕了,才能用超限额

Video\Voice这俩个跟每个人的使用环境有关系,我这边是Voice有流量,Video没有流量,不知道是什么应用自己带标记
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关闭

欢迎大家光临恩山无线论坛上一条 /1 下一条

有疑问请添加管理员QQ86788181|手机版|小黑屋|Archiver|恩山无线论坛(常州市恩山计算机开发有限公司版权所有) ( 苏ICP备05084872号 )

GMT+8, 2024-5-8 11:40

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

| 江苏省互联网有害信息举报中心 举报信箱:js12377 | @jischina.com.cn 举报电话:025-88802724 本站不良内容举报信箱:68610888@qq.com 举报电话:0519-86695797

快速回复 返回顶部 返回列表