IT博客汇
  • 首页
  • 精华
  • 技术
  • 设计
  • 资讯
  • 扯淡
  • 权利声明
  • 登录 注册

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

    jsh13417发表于 2015-01-10 15:16:02
    love 0

    使用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。





沪ICP备19023445号-2号
友情链接