欢迎来到福编程网,本站提供各种互联网专业知识!
您的位置:网站首页 > 操作系统 > LINUX

Linux系统中安装使用Trickle来控制用户带宽

发布时间:2016-08-29 作者:佚名 来源:运维生存时间
这篇文章主要介绍了Linux系统中安装使用trickle来控制用户带宽的方法,需要注意的是最好在使用之前对Trickle是否能够支持目标软件进行检测,需要的朋友可以参考下

1. trickle介绍

trickle是一款轻量级的用户空间带宽控制管理的工具,用来限制如浏览器Firefox等, FTP , SSH,curl,wget,scp等等使用网络带宽。

trickle通过控制socket数据读写量来控制和限制应用的上传和下载速度。要注意的是trickle使用动态链接和加载,所以只对于使用libc.so库的程序有用,其他的则无效的。由于trickle可以设置数据在socket上的传输延迟,因此就可以用来限制应用程序的网络带宽。

trickle不能用于限制使用UDP协议的应用的带宽,只可用于TCP连接。也无法工作在使用静态链接的可执行程序上。

2. 如何判定trickle对有个应用程序有效

根据是否使用libc.so库来判断。

可以通过ldd命令来查看某个应用程序是否使用了libc.so库。如果应用程序使用了这个库,就可以用trickle来限制网络带宽,否则不行。

复制代码代码如下:

# ldd /usr/bin/wget | grep libc.so

libc.so.6 => /lib64/libc.so.6 (0x00002adc30397000)

3.怎样在Linux上安装Trickle

trickle工具有一些依赖包,安装和使用trickle之前必须安装“libevent 库”,不过这个库在大多数现在的Linux机器上已经默认安装。

在 Debian/Ubuntu/Linux Mint 上

在Debian/Ubuntu/Mint 机器上运行 apt-get install trickle进行安装。请确保源列表已经更新,接着安装你想要的应用。

复制代码代码如下:

$ sudo apt-get update

$ sudo apt-get install trickle

在 RHEL/CentOS/Fedora 上

首先你需要更新系统,然后使用下面的命令安装trickle。

复制代码代码如下:

# yum update

# yum install trickle

Trickle如何工作?

Trickle通过控制socket数据读写量来控制和限制应用的上传/下载速度。它使用另一个版本的BSD套接字API,但是区别是trickle还管理socket调用。

要注意的是trickle使用动态链接和加载,所以它只对于使用“Glibc库”的程序有用。由于trickle可以设置数据在socket上的传输延迟,所以它可以用来限制一个应用的网络带宽。

Trickle不能做什么?

Trickle不能用于限制使用UDP协议的应用的带宽,它只可用于TCP连接,但是你要知道它也并不是对所有的TCP连接有效。如果你一直仔细地看这篇文章,你可以猜到原因是什么。

还要说一下,trickle无法工作在使用静态链接的可执行程序上。

4. 使用trickle

复制代码代码如下:

# trickle --help

Usage: trickle [-hvVs] [-d ] [-u ] [-w ] [-t ]

[-l ] [-n ] command ...

-h Help (this)

-v Increase verbosity level

-V Print trickle version

-s 在独立模式下独立运行

-d 设置最大累计下载速率为 KB/s

-u 设置最大累计上传速度为 KB/s

-w 设置窗口长度为 KB 。默认512KB。

-t 设置默认的平滑时间 s 。平滑时间决定多少时间间隔trickle将尝试让应用程序传输数据。较小的值(0.1 - 1秒)会导致更连续(平滑)会话,非常适合于交互式应用。而较大的值(1 - 10秒)可能会产生一阵阵的发送和接收数据,对需要大量带宽的应用程序更好。

-l 设置默认的平滑长度 KB 。 默认10 KB。

-n 指定trickled socket名称 。 默认/tmp/.trickled.sock 。

-L 设置延时。

5. 举例

限制wget下载速度为50KB/s

201615121115939.jpg (1425×132)

6. 限制一个shell的所有命令带宽

201615121132111.jpg (1418×132)

相关推荐