trickle 限制用户空间带宽

  • 摘要:对于用户量大的情况下,可能一个程序就占用了你所有的网络带宽。这种情况可以通过nethogs来查看。具体参见:《nethogs查看每个进程使用的带宽》。这种情况下,你就需要临时限制下带宽,来确保你的网络带宽不会被一个程序耗而对其他应用造成影响。下面来介绍一款轻量级的用户空间带宽控制管理的工具------trickle。1.trickle介绍trickle是一款轻量级的用户空间带宽控制管理的工具,用来限制如浏览器Firefox等,FTP,SSH,curl,wget,scp等等使用
  • 对于用户量大的情况下,可能一个程序就占用了你所有的网络带宽。这种情况可以通过nethogs来查看。具体参见: 《nethogs 查看每个进程使用的带宽》。这种情况下,你就需要临时限制下带宽,来确保你的网络带宽不会被一个程序耗而对其他应用造成影响。下面来介绍一款轻量级的用户空间带宽控制管理的工具------trickle。

原:https://www.aliyun.com/jiaocheng/143037.html?spm=5176.100033.1.28.61492a90YuetXv

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) 

# ldd /usr/bin/wget | grep libc.so libc.so.6 => /lib64/libc.so.6 (0x00002adc30397000) 

3. 安装trickle

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

# yum install trickle 

1# yum install trickle 

4. 使用trickle

# trickle --help 

Usage: trickle [-hvVs] [-d <rate>] [-u <rate>] [-w <length>] [-t <seconds>] 

[-l <length>] [-n <path>] command ... 

-h Help (this) 

-v Increase verbosity level 

-V Print trickle version 

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

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

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

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

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

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

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

-L <ms> 设置延时。 

1234567891011121314 

# trickle --helpUsage: trickle [-hvVs] [-d <rate>] [-u <rate>] [-w <length>] [-t <seconds>] [-l <length>] [-n <path>] command ...-h Help (this)-v Increase verbosity level-V Print trickle version-s 在独立模式下独立运行-d <rate>设置最大累计下载速率为 <rate> KB/s-u <rate>设置最大累计上传速度为 <rate> KB/s-w <length>设置窗口长度为 <length> KB 。默认512KB。-t <seconds> 设置默认的平滑时间 <seconds> s 。平滑时间决定多少时间间隔trickle将尝试让应用程序传输数据。较小的值(0.1 - 1秒)会导致更连续(平滑)会话,非常适合于交互式应用。而较大的值(1 - 10秒)可能会产生一阵阵的发送和接收数据,对需要大量带宽的应用程序更好。-l <length>设置默认的平滑长度 <length> KB 。 默认10 KB。-n <path>指定trickled socket名称 <path> 。 默认/tmp/.trickled.sock 。-L <ms>设置延时。 

5. 举例

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

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

 

©️2020 CSDN 皮肤主题: 书香水墨 设计师:CSDN官方博客 返回首页