linux带宽控制命令 linux网络带宽怎么看

linux如何测速以及带宽 – VPS面板知识

一、安装speedtest-cli

成都创新互联公司自2013年创立以来,是专业互联网技术服务公司,拥有项目网站设计制作、成都网站设计网站策划,项目实施与项目整合能力。我们以让每一个梦想脱颖而出为使命,1280元尤溪做网站,已为上家服务,为尤溪各地企业和个人服务,联系电话:13518219792

speedtest-cli是一个用Python编写的轻量级Linux命令行工具,在Python2.4至3.4版本下均可运行。它基于Speedtest.net的基础架构来测量网络的上/下行速率。安装speedtest-cli很简单——只需要下载其Python脚本文件。网上的教程非常古老,用了只会报过期脚本 ,更新如下

wget

chmod a+rx speedtest.py

mv speedtest.py /usr/local/bin/speedtest-cli

chown root:root /usr/local/bin/speedtest-cli

speedtest-cli

也可以在自己电脑上下载好 speedtest.py 然后上传到服务器上。

二、使用speedtest-cli测试网速

使用speedtest-cli命令也很简单,它不需要任何参数即可工作。

[root@localhost temp]# speedtest-cli

输入这个命令后,它会自动发现离你最近的Speedtest.net服务器(地理距离),然后打印出测试的网络上/下行速率。

[root@localhost temp]# speedtest-cli

Retrieving speedtest.net configuration…

Retrieving speedtest.net server list…

Testing from China Telecom (219.135.214.145)…

Selecting best server based on latency…

Hosted by CTM Internet Services (Macau) [106.48 km]: 55.974 ms

Testing download speed………………………………….

Download: 3.15 Mbit/s

Testing upload speed…………………………………………..

Upload: 0.58 Mbit/s

测试结果说明:上行为 0.58Mbit/s 下行为 3.15 Mbit/s

当然对于测试结果,一般在实际应用中不一定能达到这个值,仅作为参考使用。

关于Linux网卡带宽设置的问题

首先你得netem QDiscipline设置看起来没什么区别,limit太大,loss 0%和默认一样,剩下的delay 10ms都是指所有pakcat按照延迟10ms进行发送

至于你的TBF设置,用了TBF自身提供的两个途径

TBF叫做Token Bucket Filter.总体的思路就是数据包要领到Token(令牌)才能被发送,而令牌的产生速率收到rate这个参数的限制。Token是一个抽象的概念,Token的大小都是指的Token所指向的数据包的大小。

当要发送的速率低于令牌产生的速度时,所有的数据包都能领到Token,并且多余的Token会在你的Buffer里积累。积累的上限由Buffer/Burst这个参数指定。

当发送的速率等于Token产生的速度时,Token正好被完全消耗,所有的数据包都会发送,并且buffer不会积累多余的Token

当发送的速率大于Token的速率,如果Buffer里还有多余的Token,就会开始消耗Buffer的Token,同时允许数据包通过。如果buffer的Token耗尽,数据包就不被允许通过,并且进入Txqueue(发送队列)排队。如果排队的尺寸大于limit(你的第一个TBF有指定),则队列不能再增长,新到来的数据包会被drop。

明白上面的概念之后你的两条命令的区别也就容易看懂了。

第一个是用的Buffer/Limit

Buffer就是瞬间可以额外提供的Token的数量。Rate限制了你的持续上传速率为1Mb/s,然后在你长时间网络流量很低时,你得Token会积累,最后你可以有Buffer这么大(1600b)的缓冲无视rate的限制(可以瞬间发送1600b,所以叫做突发)。至于后面的limit 3000,是指你当你的缓冲区(Txqueue)超过3000b时,新来的包会被Drop

第二个用的是Burst/latency/rate组合

这里的burst和上面的buffer含义完全相同,都是能够以高于rate所限定的速度发送的数据量(4Mb,比第一个的大很多)。至于Latency,是对应limit的量。Latency规定的是数据包能在Txqueue中呆的最长的时间(你的是1S),在Txqueue中呆超过1s的包都会被Drop。所以结合你的rate来计算,latency 1s+rate 1Mbit/s 等价于 limit为1Mbit*1s=1Mb

*tc只能规整egress traffic,就是从NIC流出的流量(上传),对于下载,要用IFB将ingress(下载)模拟成egress

linux如何看网络带宽

使用bai命令:mii-tool -v

mii:是Linux下专门设置网卡工作模式的命令,详细参数如下

1. 查看网卡的工作模式,输入命令:

#mii-tool -v

eth0: negotiated 100baseTx-FD, link ok

product info: vendor 00:aa:00, model 56 rev 0

basic mode: autonegotiation enabled

basic status: autonegotiation complete, link ok

capabilities: 100baseTx-FD 100baseTx-HD 10baseT-FD 10baseT-HD

advertising: 100baseTx-FD 100baseTx-HD 10baseT-FD 10baseT-HD flow-control

link partner: 100baseTx-FD 100baseTx-HD 10baseT-FD 10baseT-HD

从以上信息中可以看出,这块网卡工作在100M全双工自适应模式下,“100BaseTx-FD”意为100M Full Duplex。

2. 更改网卡的工作模式,输入命令:

#mii-tool -F media [interface]

media可选的模式有100baseTx-FD、100baseTx-HD、10baseT-FD、10baseT-HD等。 Interface代表所选择的网卡,如eth0、eth1等,默认为eth0。

例如,设置网卡工作在10M半双工模式下,输入命令:

#mii-tool -F 10baseT-HD eth0

3. 恢复网卡的自适应工作模式,输入命令:

#mii-tool -r eth0

更详细的使用方法可以用mii-tool -h来获得。

linux可以用iptables限制单个进程的带宽吗

1、用 iptables 的 owner 模块,给 --pid-owner 加上 MARK,然后 tc 里针对这个 MARK 做限速 现在的服务器上,基本已经普及了 SMP ,更进一步的,内核已经在自动发现支持 SMP 的时候,在 iptables 里把 owner 模块的 pid/cmd/sid 三个 match 都去掉了!现在的 owner 里只有 uid/gid 两个。所以这条路,在生产环境上基本行不通。所以推荐下面的两种方法:

2、使用 pipeviewer和 trickle这两个工具。trickle 是在BSD 上诞生的项目,这个工具使用ELF 的 preloader 机制,在命令执行的时候替换掉标准库中的 socket recv() 和 send() 部分,达到限速的效

3、cgroup ,它有 net_cls 控制器。不过和其他控制器不太一样的是它不直接控制网络读写,只是给网络包打上一个标记,然后把专业的事情交给专业的 TC 去做。嗯,思路和原先的 iptable 是很类似的。

关于Linux命令的介绍,看看《linux就该这么学》,具体关于这一章地址3w(dot)linuxprobe/chapter-02(dot)html


名称栏目:linux带宽控制命令 linux网络带宽怎么看
网页网址:http://azwzsj.com/article/dosihee.html