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。

  网友提问:限制带宽为50kbit后, 为什么下载速度达到457K/s?

  回复:Linux内核依靠粗糙的计时信息进行带宽固定。在一个较长的时间段内,可以维持很好的精度,但是在以秒为单位进行计量的时间段内,其结果非常不准确。

  所以,实际使用的带宽需要以wget下载时速度为准,去调整tc的带宽限制。