Linux下测试带宽流量信息
查找了很多文章都使用的工具进行信息查看和获取,好巧不巧公司的服务器是内网环境,yum wget都获取不到,想本地下载上传后安装发现还需要下载很多依赖包一同安装。
懒癌晚期的我自然不死心,一顿查找之后发现一些原生可用的指令
watch more /proc/net/dev
查看系统网络信息,有实时的网络流量信息,就是字节看起来太难受了
这里也可以看到服务器的网卡名称
我们可以使用以下命令查看具体网卡信息
ethtool <网卡名称>
比如:
ethtool ens33
内网环境的网络测试工具大多需要一同下载多个依赖,从大堆文章中终于找到一个使用简单安装容易
感谢 https://www.cnblogs.com/ltlinux/p/11027474.html
1. Iperf
1.1. 安装软件
服务器端(Centos)执行如下命令:
wget http://downloads.es.net/pub/iperf/iperf-3.0.6.tar.gz
下载完成后进行解压:
tar zxvf iperf-3.0.6.tar.gz
进入解压后的程序目录,执行以下命令:
./configure && make && make installIperf3 -s
内网环境可以先下载rpm或者tar.gz编译包,上传至服务器安装
下载地址:https://iperf.fr/iperf-download.php
其中“iperf3 -s”命令为以服务器模式启动iperf软件,若启动成功则有如下提示(默认监听5201端口):
注:错误及解决方法:
问题原因:
Linux系统中找不到libiperf.so.0 库文件,导致执行iperf3 –s时提示缺少相关lib库
解决方法:
先执行echo $LD_LIBRARY_PATH命令,得到系统LIB库所在位置,如:
[root@hengda ~]# echo $LD_LIBRARY_PATH
/usr/lib/oracle/11.2/client64/lib
再通过find ./ | grep libiperf.so.0查找服务器上是否存在该lib库文件,查询到后拷贝libiperf.so.0库文件到上一步找到的LIB库所在目录下。
客户端下载iperf windows版软件,下载地址:https://iperf.fr/iperf-download.php
下载后解压出iperf两个文件,打开cmd命令行窗口,进入该文件解压目录。
1.2. Iperf使用方法
1.2.1. Tcp上传数据带宽
执行命令iperf3 -c [serverip] -b 100M -t 20
-c 代表以客户端方式运行
-b 代表使用100M带宽进行测试,如果馆方为1000M有线网络,也可以使用-b 1000M进行测试。带宽测试需要考虑客户端本机网卡能力、馆方内网能力、出口带宽、公网带宽、服务云接入带宽等。
-t即为测试20s时间,如果省略该参数则默认测试10s。
结果上来看,上传带宽为93.8Mb/s,也就是达到了百兆左右。
这里说明的是,第一个包应为要建立tcp连接,所以传输和带宽都会略低,而第12.00-13.00传输和带宽都有所下降,说明在该秒存在明显的丢包。正常无明显丢包的测试结果应该如下:
1.2.2. Tcp下载数据带宽
执行命令iperf3 -c [serverip] -b 100M -t 20 -R
相比下载数据带宽测试多了一个-R参数,意为Reverse,即服务器端发送数据,客户端接收数据。
1.2.3. UDP上传数据带宽
执行命令iperf3 -c [serverip] -u -b 100M -t 20
其中比tcp的上传数据带宽测试命令多一个-u,意为使用udp协议。
1.2.4. UDP下载数据带宽
执行命令iperf3 -c [serverip] -u -b 100M -t 20 -R
1.2.5. 多并发支持
执行命令iperf3 -c [serverip] -P 127 -i 20 -t 20
此处的-P是指启用多线程,127为线程数,范围为1-128,但是使用128则会引起windows端的iperf3程序崩溃,所以最多一台电脑可以模拟127个线程同时连接服务器。观察最后的统计结果,每个线程都有流量,且最后SUM为100M满速即可。
当然,-R和-u都是可以使用的,但是使用-u只能实现90个线程同时测试,超过90个线程软件最后会出现假死状态。
1.2.6. 稳定性测试
执行命令iperf3 -c [serverip] -t 3600
-t是设置时间,3600为持续测试3600s,即1小时。测试思路是可以通过增加时间来评估稳定性,如测试1小时(t的取值范围并未注明,但是10小时是可以的)。当然-P -u -R都是可选的参数。