网站漂浮窗口代码,云南网是什么网站,wordpress 端口 跳转,旅游网站建设色彩搭配表注#xff1a;本文为 “iperf 测网络吞吐量” 相关文章合辑。
未整理去重。 使用 iperf3 监测网络吞吐量
Tom 王 2019-12-21 22:23:52
一 iperf3 介绍
(1.1) iperf3 是一个网络带宽测试工具#xff0c;iperf3 可以擦拭 TCP 和 UDP 带宽质量。iperf3 可以测量最大 TCP 带宽…注本文为 “iperf 测网络吞吐量” 相关文章合辑。
未整理去重。 使用 iperf3 监测网络吞吐量
Tom 王 2019-12-21 22:23:52
一 iperf3 介绍
(1.1) iperf3 是一个网络带宽测试工具iperf3 可以擦拭 TCP 和 UDP 带宽质量。iperf3 可以测量最大 TCP 带宽具有多种参数和 UDP 特性iperf3 可以报告带宽、延迟抖动和数据包丢失。利用 iperf3 这一特性可以用来测试一些网络设备如路由器防火墙交换机等的性能。
(1.2) 使用 iperf3你可以调整与时序、缓冲区和协议如 TCP、UDP、SCTP相关的几个参数。它对网络性能调优操作很方便为了获得最大或相当改善的网络性能你需要增加吞吐量以及网络接收个发送功能的延迟。但是在进行实际调整之前你需要执行一些测试以收集整体网络性能统计信息以指导你的调优过程。其结果包括以秒为单位的时间间隔数据传输带宽传输速率丢失和其他有用的网络性能参数它主要用于协助调整特定路径上的 TCP 连接。
二 iperf3 安装
(2.1) 我们使用的操作系统是 CentOS 7.4然后我们使用 base 源安装便可以将 iperf3-3.1.7-2.el7.x86_64 软件包安装好。 (2.2) 然后我们使用两台主机其中 192.168.26.51 作为服务器端将 192.168.26.131 作为客户端。在两台主机上安装好 iperf3 后即可开始测试网络吞吐量。我们首先连接到我们的服务器端的远程机器使用 - s 标志的是服务器模式下的 iperf3默情况下它将监听 5201 端口我们也可以使用 - f 开关指定生成报告的数据格式类型其中 k 表示 Kbits、m 表示 Mbits、g 表示 Gbits、K 表示 KBytes、M 表示 MBytes、G 表示 GBytes。
# iperf3 -s -f K(2.3) 如果服务器上的另一个程序正在使用端口 5201则我们可以使用 - p 开关指定其他端口监听例如指定 4000 端口
# iperf3 -s -p 4000(2.4) 我们也可以使用 - D 标志作为守护程序运行并将服务器消息写入日志文件
# iperf3 -s -D iperf3.log三 iperf3 客户端操作
(3.1) 我们将 192.168.26.51 作为服务器并且执行监听 5201 端口的命令图 3-1在客户端 192.168.26.131 的主机上使用 - c 标志在客户端模式下运行 iperf3 并指定运行服务器的主机使用 IP 地址或域主机名都可以。执行大约 18 至 20 秒后客户端终止并生成指示基准测试平均吞吐量的结果显示信息如下图 3-2。
注意从基准测试结果中如下面的屏幕接入所示服务器和客户端的值存在差异但是我们应该始终考虑在执行的每个测试中使用从 iperf3 客户端主机获得的结果。
\# iperf3 -s -f K— 在服务器端执行\# iperf3 -c 192.168.26.51 -f K— 在客户端执行(3.2) 如果我们想在 Linux 中实现先进的网络测试吞吐量确定网络中给定时间内数据量的一个重要因素是 TCP 窗口大小它在调整 TCP 连接时很重要我们可以使用 - w 标志设置窗口大小、套接字缓冲区大小如图所示。
\# iperf3 -c 192.168.26.51 -f K -w 200K(3.3) 如果要在服务器发送和客户端接收的反向模式下运行可以添加 - R 开关。
\# iperf3 -c 192.168.26.51 -f K -w 200K -R(3.4) 如果要运行双向测试意味着我们要同时测量两个方向上的宽带可以使用 - d 选项。 (3.5) 如果要在客户端输出中获取服务器结果可以使用 “–get-server-output” 选项此时我们便会在客户端 192.168.26.131 主机上获取两份数据。 (3.6) 也可以使用 - P 选项设置并行客户端流的数量它们同时运行 ——— 本文至此结束 ——— iperf 测 UDP 和 TCP 丢包率及带宽
嘟嘟嘟嘟于 2021-09-01 16:34:39 发布
iperf
iperf3 安装包是iperf-master安装遇到 error while loading shared libraries:libiperf.so.0
解决方法在正常编译以后运行 ldconfig
安装软件包的方法 (参考 REDMINE)在顶层目录下
./configure make make install
yqqubuntu18:~/Tool/iperf-master$ iperf3 -s
iperf3: error while loading shared libraries: libiperf.so.0: cannot open shared object file: No such file or directory
yqqubuntu18:~/Tool/iperf-master$ sudo ldconfig
yqqubuntu18:~/Tool/iperf-master$ iperf3 -s
//tcp 和 udp 服务器端用 iperf3 的话都是这个命令如果是 udp在客户端加上 - u 即可
// 如果是 iperftcp 和 udp 在服务器端加 - utcp 和 udp 的客户端命令相同
Server listening on 5201 (test #1)安装
方法 1sudo apt-get install iperf
方法 2下载 iperf 的源码包 ( 在板子上使用二进制文件时可将源码直接拷贝到板子上 ./configure make)
测试
无论是 tcp 还是 udp 方式测试都要一端运行服务器模式另一端运行客户端模式另外如果打开了 iptables, 要打开 tcp 5001 端口当然也可以指定端口
tcp 方式
服务器端iperf -s
客户端 iperf -c SERVERIP -t 60 -i 1 -P 5
udp 方式
服务器端iperf -u -s //iperf3 服务端不支持 - u 选项
客户端 iperf -c SERVERIP -t 60 -i 1 -b 100M
共用的指令
-f -- 格式 [k|m|K|M] 分别表示 KbitsMbitsKbitsKBytesMBytes 显示报告默认是 Mbits
-i -- 以秒为单位统计带宽值
-l -- 读写缓冲区的大小默认是 8kb
-m -- 显示最大的 TCP 数据段大小 (MTU-TCP/IP header)
-o -- 将报告和错误信息输出到文件
-p -- 指定服务器和客户端连接的端口
-w -- 指定 TCP 窗口的大小默认是 8KB
-B -- 绑定一个主机地址或接口当主机有多个地址或接口时使用该参数
-C -- 兼容旧版本当 server 和 client 端版本不一样时使用
-M -- 指定 TCP 数据包的最大 MTU 值
-N -- 设定 TCP 不延时
-V -- 传递 ipv6 数据包
适用于 server
-s -- 服务器
-U -- 单线程 UDP 模式下运行
-D -- 以守护进程模式运行
适用于 client
-b -- 指定客户端通过 udp 协议发送信息的带宽默认为 1Mbit/s
-c -- 客户端
-d -- 同时进行双向传输测试
-n -- 指定传输的字节数
-r -- 单独进行双向传输测试
-t -- 指定 iperf 测试时间默认 10 秒
-F -- 指定需要传输的文件
-I -- 从标准输入 (stdin) 中读取要传输的数据
-L -- 指定一个端口服务器将利用这个端口与客户端相连
-P -- 客户端到服务器的连接数默认为 1
-T --ttl 值
-u -- 使用 udp 协议# iperf -s -u // 此为 iperf不是 iperf3如果是 iperf3 则如果是测试 UDP则在客户端加上 - u服务器不需要 - u------------------------------------------------------------Server listening on UDP port 5001Receiving 1470 byte datagramsUDP buffer size: 208 KByte (default)------------------------------------------------------------[ 3] local 192.168.1.6 port 5001 connected with 192.168.1.6 port 52657
[ ID] Interval Transfer Bandwidth Jitter Lost/Total Datagrams
[ 3] 0.0-16.4 sec 196 MBytes 101 Mbits/sec 0.003 ms 0/139968 (0%)
[ 3] 0.0-16.4 sec 1 datagrams received out-of-order
[ 4] local 192.168.1.6 port 5001 connected with 192.168.1.6 port 39426
[ 4] 0.0-41.1 sec 2.90 GBytes 606 Mbits/sec 0.004 ms 9271/2128456 (0.44%)
[ 4] 0.0-41.1 sec 1 datagrams received out-of-order
[ 3] local 127.0.0.1 port 5001 connected with 127.0.0.1 port 60678
[ 3] 0.0-22.1 sec 1.55 GBytes 602 Mbits/sec 0.032 ms 4317/1136481 (0.38%)
[ 3] 0.0-22.1 sec 1 datagrams received out-of-order
[ 3840.205662] ata1: exception Emask 0x10 SAct 0x0 SErr 0x10200 action 0xe frozen
[ 3840.213102] ata1: irq_stat 0x00400000, PHY RDY changed
[ 3840.218375] ata1: SError: { Persist PHYRdyChg }
12345678910111213141516171819
# iperf -c 192.168.1.6 -t 60 -i 1 -b 1GB
WARNING: option -b implies udp testing
------------------------------------------------------------
Client connecting to 192.168.1.6, UDP port 5001
Sending 1470 byte datagrams
UDP buffer size: 208 KByte (default)
------------------------------------------------------------
[ 3] local 192.168.1.6 port 39426 connected with 192.168.1.6 port 5001
[ ID] Interval Transfer Bandwidth
[ 3] 0.0- 1.0 sec 76.0 MBytes 638 Mbits/sec
[ 3] 1.0- 2.0 sec 71.2 MBytes 597 Mbits/sec
[ 3] 2.0- 3.0 sec 65.2 MBytes 547 Mbits/sec
[ 3] 3.0- 4.0 sec 66.5 MBytes 557 Mbits/sec
[ 3] 4.0- 5.0 sec 72.5 MBytes 608 Mbits/sec
[ 3] 5.0- 6.0 sec 73.4 MBytes 616 Mbits/sec
[ 3] 6.0- 7.0 sec 76.8 MBytes 644 Mbits/sec
[ 3] 7.0- 8.0 sec 76.2 MBytes 639 Mbits/sec
[ 3] 8.0- 9.0 sec 75.1 MBytes 630 Mbits/sec
[ 3] 9.0-10.0 sec 76.6 MBytes 643 Mbits/sec
[ 3] 10.0-11.0 sec 76.3 MBytes 640 Mbits/sec
[ 3] 11.0-12.0 sec 76.7 MBytes 643 Mbits/sec
[ 3] 12.0-13.0 sec 76.1 MBytes 638 Mbits/sec
[ 3] 13.0-14.0 sec 76.4 MBytes 641 Mbits/sec
[ 3] 14.0-15.0 sec 76.8 MBytes 644 Mbits/sec
[ 3] 15.0-16.0 sec 76.7 MBytes 643 Mbits/sec
[ 3] 16.0-17.0 sec 72.8 MBytes 610 Mbits/sec
[ 3] 17.0-18.0 sec 69.5 MBytes 583 Mbits/sec
[ 3] 18.0-19.0 sec 69.6 MBytes 584 Mbits/sec
[ 3] 19.0-20.0 sec 75.8 MBytes 636 Mbits/sec
[ 3] 20.0-21.0 sec 62.1 MBytes 521 Mbits/sec
[ 3] 21.0-22.0 sec 76.1 MBytes 639 Mbits/sec
# iperf -c 127.0.0.1 -t 60 -i 1 -b 4g
WARNING: option -b implies udp testing
------------------------------------------------------------
Client connecting to 127.0.0.1, UDP port 5001
Sending 1470 byte datagrams
UDP buffer size: 208 KByte (default)
------------------------------------------------------------
[ 3] local 127.0.0.1 port 60678 connected with 127.0.0.1 port 5001
[ ID] Interval Transfer Bandwidth
[ 3] 0.0- 1.0 sec 78.8 MBytes 661 Mbits/sec
[ 3] 1.0- 2.0 sec 77.2 MBytes 648 Mbits/sec
[ 3] 2.0- 3.0 sec 70.1 MBytes 588 Mbits/sec
[ 3] 3.0- 4.0 sec 73.5 MBytes 617 Mbits/sec
[ 3] 4.0- 5.0 sec 73.1 MBytes 613 Mbits/sec
[ 3] 5.0- 6.0 sec 72.4 MBytes 608 Mbits/sec
[ 3] 6.0- 7.0 sec 74.5 MBytes 625 Mbits/sec
[ 3] 7.0- 8.0 sec 61.4 MBytes 515 Mbits/sec
[ 3] 8.0- 9.0 sec 71.0 MBytes 596 Mbits/seciPerf 3 测试 UDP 和 TCP 方法详解
诸葛悠闲已于 2024-12-11 10:50:41 修改
前言
工具安装、说明等详细信息可参考官方文档
ipef user doc https://iperf.fr/iperf-doc.php#3doc
一、What is iPerf /iPerf3 ?
Perf3 是一款用于主动测量 IP 网络最大带宽的工具。它支持调整与定时、缓冲区和协议TCP、UDP、SCTP 与 IPv4 和 IPv6相关的各种参数。每次测试都会报告带宽、损耗和其他参数。
二、功能
1. TCP and SCTP 测量带宽 报告 MSS/MTU 大小和观察到的读取大小 通过套接字缓冲区支持 TCP 窗口大小。
2. UDP 客户端可创建指定带宽的 UDP 数据流 测量数据包丢失 测量延迟抖动 支持组播
3. 其他 客户端和服务器可同时进行多个连接-P 选项。 服务器处理多个连接而不是在一次测试后退出。 可在指定时间-t 选项内运行而不是在设定的数据传输量-n 或 -k 选项内运行。 以指定时间间隔打印定期的中间带宽、抖动和损耗报告-i 选项。 将服务器作为守护进程运行-D 选项 使用代表性数据流测试链路层压缩对可实现带宽的影响-F 选项。 服务器同时接受单个客户端iPerf3或多个客户端iPerf2 新功能忽略 TCP 慢启动-O 选项。 新功能为 UDP 和新TCP 设置目标带宽-b 选项。 新功能设置 IPv6 流量标签-L 选项 新功能设置拥塞控制算法-C 选项 新功能 使用 SCTP 而非 TCP–sctp 选项 新功能 以 JSON 格式输出-J 选项。 新功能 磁盘读取测试服务器iperf3 -s / 客户端iperf3 -c testhost -i1 -F 文件名 新功能 磁盘写入测试服务器iperf3 -s -F 文件名 / 客户端iperf3 -c testhost -i1
三、 Iperf 的使用
1. Iperf 的工作模式
Iperf 可以运行在任何 IP 网络上包括本地以太网、接入因特网、Wi-Fi 网络等。在工作模式上iperf 运行于服务器、客户端模式下其服务器端主要用于监听到达的测试请求而客户端主要用于发起测试连接会话因此要使用 iperf 至少需要两台服务器一台运行在服务器模式下另一台运行在客户端模式下。
2. 通用指令 3. 服务端特有选项 4. 客户端特有选项 5. -t -n 参数联系
-t 参数说明如下 -n 参数说明如下 -n 会重写 - t 参数-n 参数会使 - t 参数失效。
-n 30M 意思表明传输完 30M 便停止-t 失效。 四、Iperf 使用实例
1. 调整 TCP 连接
1. 1 TCP 窗口大小调节
iPerf 的主要目标是帮助调整特定路径上的 TCP 连接。TCP 最基本的调整问题是 TCP 窗口大小它控制着网络中任何一点的数据量。如果窗口大小太小发送方有时就会处于空闲状态从而导致性能低下。
窗口大小的理论值为
瓶颈带宽 * 往返时间
若瓶颈链路是 45 Mbit/sec 链路用 ping 测量的往返时间是 42 ms。带宽延迟乘积为:
45 Mbit/sec * 42 ms (45e6) * (42e-3) 1890000 bits 230 KByte
这是计算最佳窗口大小的一个起点将其设置得更高或更低可能会产生更好的结果。
请注意许多操作系统和主机都有 TCP 窗口大小的上限。iPerf 会尝试检测这些限制并在实际窗口大小与请求的窗口大小不相等时发出警告。
另一个测试方法是运行并行 TCP 流。如果总带宽大于单个数据流的带宽就说明出了问题。要么是 TCP 窗口大小太小要么是操作系统的 TCP 实现有问题要么是网络本身有缺陷。
测试示例
启动服务端 启动客户端
单线程测试TCP 窗口大小 1000 字节。(非常小所以性能不能达到网卡瓶颈 1Gbit) 单线程测试TCP 窗口大小 16K。速度有所提升 单线程测试窗口调整为 420K 时基本达到了 1Gbit 的极限。 最后测试一下多线程使用 190k 的窗口同样可以把网卡极限跑满 所以如果我们使用单线程传输tcp 窗口的大小很关键。
1. 2 最大传输单元 (MTU) 调整
为了达到最佳效果两台主机都应支持路径 MTU 发现。不支持路径 MTU 发现的主机通常使用 536 作为 MSS这会浪费带宽和处理时间。使用 -m 选项可显示正在使用的 MSS并查看是否与预期相符。以太网的 MSS 通常在 1460 字节左右。
2. 调整 UDP 连接
iPerf 创建了一个恒定比特率的 UDP 数据流。没有其他功能。
需要将数据报大小 (-l) 调整为您的应用程序所使用的大小。
服务器通过数据报中的 ID 号来检测 UDP 数据段是否丢失。通常一个 UDP 数据段会变成多个 IP 数据包。丢失一个 IP 数据包就会丢失整个数据段。要测量数据包丢失而不是数据段丢失可使用 -l 选项使数据段小到足以容纳进一个数据包。默认的 1470 字节大小适用于以太网。还能检测出乱序数据包。由于 TCP 不会向用户报告数据包丢失情况UDP 测试有助于查看路径上的数据包丢失情况。
根据 RFC 1889 中 RTP 的规定抖动计算由服务器持续计算。客户端在数据包中记录 64 位秒 / 微秒时间戳。服务器计算的相对传输时间为服务器接收时间 - 客户端发送时间。客户端和服务器的时钟无需同步抖动计算中会减去任何差异。抖动是连续传输时间差的平滑平均值。
测试示例
服务端启动 启动客户端 请注意在使用较大的 50 KB 数据报每个数据报分成 23 个 1500 字节的数据包时数据报重组导致的抖动较高。这里看到的数据报丢包率较高可能是由于流量的突发性即 23 个背靠背的数据包然后是长时间的停顿而不是均匀分布的单个数据包。 3. 测试 TCP 吞吐量
Server 端开启 iperf 的服务器模式 Client 端启动 iperf 的客户端模式 Server 端监听结果 ① Interval 表示时间间隔。
② Transfer 表示时间间隔里面转输的数据量。
③ Bandwidth 是时间间隔里的传输速率 。
4. 测试 UDP 吞吐量
带宽测试通常采用 UDP 模式因为能测出极限带宽、时延抖动、丢包率。在进行测试时首先以链路理论带宽作为数据发送速率进行测试例如从客户端到服务器之间的链路的理论带宽为 100Mbps先用 - b 100M 进行测试然后根据测试结果包括实际带宽时延抖动和丢包率再以实际带宽作为数据发送速率进行测试会发现时延抖动和丢包率比第一次好很多重复测试几次就能得出稳定的实际带宽。
Server 端开启 iperf 的服务器模式 Client 端启动 iperf 的客户端模式连接服务端 Server 端监听结果 ① Jitter 为抖动在连续传输中的平滑平均值差。
② Lost 为丢包数量。
③ Total Datagrams 为包数量。 via: 【讲清楚说明白】使用 iperf3 监测网络吞吐量_51CTO 博客_iperf3 测试吞吐量 https://blog.51cto.com/u_13613726/2460671 iperf 测 UDP 和 TCP 丢包率及带宽_iperf udp-CSDN 博客 https://blog.csdn.net/weixin_38717634/article/details/120042874 iPerf 3 测试 UDP 和 TCP 方法详解_iperf3 udp-CSDN 博客 https://blog.csdn.net/weixin_44399845/article/details/137950306 Udp 数据丢包测试 --iperf3_iperf3 udp 测试 - CSDN 博客 https://blog.csdn.net/weixin_44011068/article/details/107383079