网络性能测试工具
网络的基本目的是有效地共享资源。利用可靠的网络测试工具建立定期的网络测试对于:了解网络的状态、确保配置更改按预期工作、检测瘫痪网络攻击、提供一流的终端用户体验。那么网络性能也是非常关键的。只要是需要快速而且大量的网络数据传输的应用都可以作为网络性能基准测试工具,可以是专门用于测试网络带宽的 Netperf、Iperf 等,也可以是常用的 Linux 上的文件传输工具 SCP。下面简单介绍几种常用的网络性能测试工具。
1. Netperf
Netperf 可以测试网络性能的多个方面,主要包括使用 TCP、UDP 等协议的单向批量数据传输模式和请求-响应模式的传输性能。Netperf 主要测试的项目包括:使用 BSD Sockets 的 TCP 和 UDP 连接(IPv4 和 IPv6)、使用 DLPI 接口的链路级别的数据传输、Unix Domain Socket、SCTP 协议的连接(IPv4 和 IPv6)。下载链接:https://github.com/HewlettPackard/netperf。
Netperf 采用客户机/服务器(Client/Server)的工作模式:服务端是 netserver,用来侦听来自客户端的连接,客户端是 netperf,用来向服务端发起网络测试。在客户端与服务端之间,首先建立一个控制连接,用于传递有关测试配置的信息和测试完成后的结果;在控制连接建立并传递了测试配置信息以后,客户端与服务端之间会另外再建立一个测试数据连接,用来传递指定测试模式的所有数据;当测试完成后数据连接就断开,控制连接会收集好客户端和服务端的测试结果,然后让客户端展示给用户。
可以测试以下几种模式的 TCP 核 UDP 网络性能:
TCP_STREAM: client 端向 server 端发送批量 TCP 数据
UDP_STREAM:client 端向 server 端发送批量 UDP 数据
TCP_RR 和 TCP_CRR:前者是在同一个连接中进行多次 request 和 response 请求,后者是每次请求新建一个连接(HTTP)
UDP_RR:使用 UDP 进行 request 和 response 请求
2. Iperf3
iperf3 的主要开发在 CentOS Linux、FreeBSD 和 macOS 上进行。iperf 系列工具执行主动测量以确定 IP 网络上可实现的最大带宽。它支持调整与时序、协议和缓冲区相关的各种参数。对于每个测试,它都会报告测量的吞吐量、损耗和其他参数。下载链接:https://downloads.es.net/pub/iperf/iperf-3.11.tar.gz。
iperf3 是一个从头开始的新实现,目标是更小、更简单的代码库,以及可在其他程序中使用的功能的库版本。iperf3 还集成了其他工具(例如 nuttcp 和 netperf)中的许多功能,但原始 iperf 中缺少这些功能。例如,这些包括零复制模式和可选的 JSON 输出。请注意,iperf3 与原始 iperf 不向后兼容。
简单参数介绍如下:
3. SCP
SCP 是 Linux 系统上最常用的远程文件复制程序,它可以作为实际的应用来测试网络传输的效率。用 SCP 远程传输同等大小的一个文件,根据其花费时间的长短可以粗略评估出网络性能的好坏。
常见参数如下:
示例如下:
从远处复制文件到本地目录,从 192.168.1.1 机器上的
/home/soft/
的目录中下载 nginxtar.gz 文件到本地/root/soft/
目录中。
上传本地文件到远程机器指定目录,复制本地/root/soft/目录下的文件 nginx.tar.gz 到远程机器 192.168.1.1 的/
home/soft/
nginx 目录。
4. TTCP
TTCP 是一个传统的测试 TCP 性能的工具,它主要测试两个机器之间 TCP 的吞吐量,在应用层模拟消息传递的过程——客户端发送一个包,服务端对包进行确认,并且在确认之前客户端不发送下一个包。可以设置发包的数量和每个包的大小,程序计算传输所有包所用的时间,然后计算出带宽。源码下载:https://sourceforge.net/projects/ttcp/。
版权声明: 本文为 InfoQ 作者【穿过生命散发芬芳】的原创文章。
原文链接:【http://xie.infoq.cn/article/c006fc867aa17e058a56dafb5】。
本文遵守【CC-BY 4.0】协议,转载请保留原文出处及本版权声明。
评论