看了很多的帖子发现很多人都在论坛里写到说CBQ也就是用tc对宽带限速效果不好的论点,其实不是这样的,在后面我们会说到这方面问题怎样解决,但是现在我们还是说点基础知识吧!
在对网络宽带进行控制的时候我们通常的选择有两种:CBQ和HTB。
CBQ是指以具有优先级的类为单位分配传输宽带。CBQ设置可以使用(traffic control)命令进行。但是tc命令选项非常之多,而且又非常复杂。iproute工具包中包含读入配置文件并自动执行tc命令的启动脚本。所以学不懂tc的就用这个方法吧。具体配置过程就不说了,网上实在太多。
HTB支持根据IP地址、协议、端口等信息对数据流进行优先级设置,然后针对不同类别的数据流进行带宽控制。指定主机或服务预留带宽、限制最高带宽,也能实现平均分配带宽,并进行优先级管理,特别适合语音视频和数据混合的网络。
下面我们讲下怎样对CBQ进行优化:
1,
[root@steffen /]# ethtool -k eth0
Offload parameters for eth0:
rx-checksumming: on
tx-checksumming: off
scatter-gather: off
tcp-segmentation-offload: on
udp-fragmentation-offload: off
generic-segmentation-offload: off
generic-receive-offload: off
large-receive-offload: off
我们会看到有一项叫:tcp segmentation offload。我们把它关闭
2,
ethtool -K eth0 tso off
为什么要关掉tso?因为使用数据包捕获进行确认时,每隔200毫秒传输一次数据。tso和cbq组合是这个动作变得无意义了。
3,我们还要进行设置的就是:在你的配置文件里计入一行BUFFER=1000kb/8.
这是因为对于前兆一台网卡来说TBF的缓冲区不够大。TBF是Qdisc之一,用来把通信数据包放入队列。这里有个别人的介绍,挺全面的点击打开链接
完成了你就可可用nuttcp这个工具对你的CBQ进行测试了!