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

发布时间:2020-12-16编辑:脚本学堂
Linux下限制网卡的带宽,可用来模拟服务器带宽耗尽,从而测试服务器在此时的访问效果。

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

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