使用trickle限制网络上传和下载速度

使用trickle限制网络上传和下载速度
yum install trickle
Trickle如何工作?
Trickle通过控制socket数据读写量来控制和限制应用的上传/下载速度。它使用另一个版本的BSD套接字API,
但是区别是trickle还管理socket调用。要注意的是trickle使用动态链接和加载,所以它只对于使用"Glibc库"的
程序有用。由于trickle可以设置数据在socket上的传输延迟,所以它可以用来限制一个应用的网络带宽。
Trickle不能做什么?
    Trickle不能用于限制使用UDP协议的应用的带宽,它只可用于TCP连接,但是你要知道它也并不是对所有的TCP
连接有效。如果你一直仔细地看这篇文章,你可以猜到原因是什么。你还记得trickle只对使用Glibc库应用有效吧?

如何验证应该程序是否可以使用Trickle.
ldd filezilla | grep libc.so

使用Trickle
# trickle -u 100 -d 50 ftp
上面的命令限制ftp 客户端的上传速度为100K/s,下载速度为50K/s。还可以使用下面的命令,限制在一个shell里运行的所有命令的带宽。 

另外一种方法见下面

  Linux下限制网卡的带宽,可用来模拟服务器带宽耗尽,从而测试服务器在此时的访问效果。

  1、安装iproute
yum -y install iproute


  2、限制eth0网卡的带宽为50kbit:
/sbin/tc qdisc add dev eth0 root tbf rate 50kbit latency 50ms burst 1000


  3、限制带宽为50kbit后,在百兆局域网中wget下载一个大文件:
[root@localhost ~]# wget http://192.168.1.7/test.zip 
--19:40:27--  http://192.168.1.7/test.zip
Connecting to 192.168.1.7:80... connected.
HTTP request sent, awaiting response... 200 OK
Length: 23862312 (23M) [application/zip]
Saving to: `test.zip‘

37% [=======>   ] 8,994,816    457K/s  eta 27s

  下载速度为457K/s,限制效果达到。

  4、解除eth0网卡的带宽限制:
/sbin/tc qdisc del dev eth0 root tbf


  5、对比:未作带宽限制情况下,在百兆局域网中wget下载一个大文件:
[root@localhost ~]# wget http://192.168.1.7/test.zip    
--19:44:33--  http://192.168.1.7/test.zip
Connecting to 192.168.1.7:80... connected.
HTTP request sent, awaiting response... 200 OK
Length: 23862312 (23M) [application/zip]
Saving to: `test.zip‘

100%[==========>] 23,862,312  6.14M/s   in 3.7s   

19:44:36 (6.16 MB/s) - `test.zip‘ saved [23862312/23862312]

  下载速度为6.16MB/s。



郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。