Linux下简单限制网卡带宽的设置方法

(编辑:jimmy 日期: 2024/11/20 浏览:2)

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的带宽限制。

本文转自:http://blog.s135.com/post/380/