iperf(ubuntu)

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了iperf(ubuntu)相关的知识,希望对你有一定的参考价值。

参考技术A iperf是一种命令行工具,用于通过测量服务器可以处理的最大网络吞吐量来诊断网络速度问题。它在遇到网络速度问题时特别有用,通过该工具可以确定哪个服务器无法达到最大吞吐量。
开始之前
您需要root权限具有sudo权限的用户帐户。
update 系统源
安装iperf
该iperf软件包在大多数Linux发行版的存储库中
Debian和Ubuntu安装

CentOS 安装
CentOS存储库没有iperf,使用EPEL存储库,它是用于在Redhat系统上安装第三方软件包的存储库

如何使用iperf
必须在测试的两台计算机上同时安装iPerf。如果在个人计算机上使用基于Unix或 Linux的操作系统,则可以在本地计算机上安装iPerf。

但是,如果要测试网络提供商的吞吐量,最好使用另一台服务器作为终点,因为本地ISP可能会施加影响测试结果的网络限制。

TCP客户端和服务器
iperf需要两个系统,因为一个系统必须充当服务端,另外一个系统充当客户端,客户端连接到需要测试速度的服务端
1.在需要测试的电脑上,以服务器模式启动iperf

iperf -s
可以看到类似于下图的输出

2.在第二台电脑上,以客户端模式启动iperf连接到第一台电脑,替换198.51.100.5为地台电脑的ip地址

3.这时可以在第一步中的服务端终端看到连接和结果,类似下图

4.要停止iperf服务进程,请按CTRL+c.

UDP客户端和服务器
使用iperf,还可以测试通过UDP连接实现的最大吞吐量
1.启动UDP iperf服务

2.将客户端连接到iperf UDP服务器,替换198.51.100.5为服务端ip地址

1.05Mbits/sec远低于TCP测试中观察到的值,它也远远低于1GB 的最大出站贷款上限,这是因为默认情况下,iperf讲UDP客户端的贷款限制为每秒1Mbit。
3.可以用-b标志更改此值,讲数字替换为要测试的最大带宽速率。如果需要测试网络速度,可以将数字设置为高于网络提供商提供的最大带宽上线:
iperf -c 198.51.100.5 -u -b 1000m
这将告诉客户端我们希望尽可能达到每秒1000Mbits的最大值,该-b标志仅在使用UDP连接时有效,因为iperf未在TCP客户端上设置带宽限制。

通过上面可以发现这次测试结果相当高。

双向测试
-在某些情况下,可能希望测试两台服务器以获得最大吞吐量。使用iperf提供的内置双向测试功能可以轻松完成此测试。

要测试两个连接,从客户端运行一下命令,替换ip为服务端ip地址
iperf -c 198.51.100.5 -d
结果是iperf将在客户端服务器上启动服务器和客客户端(198.51.100.6)连接。完成此操作后,iperf会将iperf服务器连接到客户端,该连接现在既充当服务器连接又充当客户端连接。

在服务器是哪个,可以看到:

选项
选项 描述
-F 更改运行测试的格式。例如,您可以使用-f k以每秒Kbits而不是每秒Mbits的速度获得结果。有效选项包括m(Mbits,默认),k(Kbits),K(KBytes)和M(MBytes)。
-V 强制iPerf使用IPv6而不是IPv4。
-i 更改带宽测试之间的间隔。例如,-i 60将每60秒生成一个新的带宽报告。默认值为零,执行一次带宽测试。
-p 更改端口。未指定时,默认端口为5001.您必须在客户端和服务器上都使用此标志。
-B 将iPerf绑定到特定的接口或地址。如果通过server命令传递,则将设置传入接口。如果通过client命令传递,则将设置传出接口。

mips-linux-uclibc 编译iperf 工具

mips-linux-uclibc 编译iperf 工具

1 环境说明

硬件环境:君正T30开发板, mips架构
操作系统:ubuntu
交叉编译工具链:mips-linux-uclibc-gnu-gcc-5.4.0、mips-linux-uclibc-gnu-g++

2 编译步骤

2.1 下载 iperf 源码:

官网链接: https://iperf.fr/iperf-download.php
选择 iPerf C++ source ,下载源码,选择版本 Perf 3.1.3 或者其他。


将下载代码放到个人ubuntu 目录,如本人的为:/home/houf/tool/

2.2 解压源码

tar -vxf iperf-3.1.3-source.tar.gz

2.3 创建安装目录

此目录根据个人需要配置为对应的目录(如果不需要单独安装可忽略本步骤),如本人的目录为

/home/houf/tool/iperf-3.1.3/iperf_install

2.4 配置源码包

配置为 mips平台,uclibc 编译工具链,安装目录信息

./configure  --host=mips-linux-uclibc CC=mips-linux-uclibc-gnu-gcc-5.4.0 CXX=mips-linux-uclibc-gnu-g++  --prefix=/home/houf/tool/iperf-3.1.3/iperf_install

关于configure 配置参数说明,可参考本人另外一篇博客

 https://blog.csdn.net/xhoufei2010/article/details/82768995?spm=1001.2014.3001.5502

2.5 编译

make

2.6 安装

make install

3 编译错误处理

在使用uclibc 编译iperf时候,会提示错误如下:

mips-linux-gnu/bin/ld: cannot find gcrt1.o: No such file or directory

解决方法:
修改src/Makefile.in, 在613 行和 615 行,其中2行,将 -pg 参数删掉
原始代码:

iperf3_profile_CFLAGS = -pg -g
iperf3_profile_LDFLAGS = -pg -g

修改后的代码:

#iperf3_profile_CFLAGS = -pg -g
iperf3_profile_CFLAGS = -g
iperf3_profile_LDADD = libiperf.la
#iperf3_profile_LDFLAGS = -pg -g
iperf3_profile_LDFLAGS = -g

修改之后,make distclean 清除,重新配置编译,编译通过

4 运行测试

编译安装后,生存的文件目录如下:

将各个目录的文件都拷贝到开发板对应的 /usr/ 目录下,最后在开发板上运行 iperf3,实测可以正常运行

以上是关于iperf(ubuntu)的主要内容,如果未能解决你的问题,请参考以下文章

iperf安装与使用

ubuntu 多网卡配置

命令之iperf-服务器之间网络测速

命令之iperf-服务器之间网络测速

使用 iperf 工具测试 Linux 网络性能

使用 iperf 工具测试 Linux 网络性能