trickle 限制用户空间带宽

对于用户量大的情况下,可能一个程序就占用了你所有的网络带宽。这种情况可以通过nethogs来查看。具体参见: 《nethogs 查看每个进程使用的带宽》。这种情况下,你就需要临时限制下带宽,来确保你的网络带宽不会被一个程序耗而对其他应用造成影响。下面来介绍一款轻量级的用户空间带宽控制管理的工具——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来限制网络带宽,否则不行。

3. 安装trickle
需要先安装EPEL源,参见《CentOS / RHCE 可供使用的yum》。

4. 使用trickle

5. 举例
限制wget下载速度为50KB/s

EPEL

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

EPEL

转载请注明来自运维生存时间:http://www.ttlsa.com/html/4103.html