码迷,mamicode.com
首页 > 其他好文 > 详细

Iperf 网络性能测试工具

时间:2021-03-29 11:47:49      阅读:0      评论:0      收藏:0      [点我收藏+]

标签:ade   format   ice   oct   line   gen   影响   from   buffer   

iperf是一种命令行工具,用于通过测量服务器可以处理的最大网络吞吐量来诊断网络速度问题。它在遇到网络速度问题时特别有用,通过该工具可以确定哪个服务器无法达到最大吞吐量。

环境: server: centos/redhat 7.4

  client:window10

iperf版本: iperf 3.1.3
官网地址: https://iperf.fr
根据自己的系统下载相对应的安装包

技术图片

 

因为我们测试的客户端是win10 ,服务端是Redhat ,所以要下载这两个版本

 技术图片

 

 服务端安装

rpm -ivh iperf3-3.1.3-1.fc24.x86_64.rpm

客户端安装

解压之后直接放到当前用户家目录即可,否则的话,执行需要加绝对路径

技术图片

 

 

(补充说明:客户端服务端是由命令参数决定的,只是在此测试实验中我个人决定他们为服务端或者是客户端)

如何使用iperf

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

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



作者:放开那个电扇
链接:https://www.jianshu.com/p/15f888309c72
来源:简书
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

使用方法官网也有

技术图片

 

 

命令选项

Usage: iperf [-s|-c host] [options]

iperf [-h|--help] [-v|--version]

Server or Client:

-p, --port # server port to listen on/connect to

-f, --format [kmgKMG] format to report: Kbits, Mbits, KBytes, MBytes

-i, --interval # seconds between periodic bandwidth reports

-F, --file name xmit/recv the specified file

-B, --bind bind to a specific interface

-V, --verbose more detailed output

-J, --json output in JSON format

--logfile f send output to a log file

-d, --debug emit debugging output

-v, --version show version information and quit

-h, --help show this message and quit

Server specific:

-s, --server run in server mode

-D, --daemon run the server as a daemon

-I, --pidfile file write PID file

-1, --one-off handle one client connection then exit

Client specific:

-c, --client run in client mode, connecting to

-u, --udp use UDP rather than TCP

-b, --bandwidth #[KMG][/#] target bandwidth in bits/sec (0 for unlimited)

(default 1 Mbit/sec for UDP, unlimited for TCP)

(optional slash and packet count for burst mode)

-t, --time # time in seconds to transmit for (default 10 secs)

-n, --bytes #[KMG] number of bytes to transmit (instead of -t)

-k, --blockcount #[KMG] number of blocks (packets) to transmit (instead of -t or -n)

-l, --len #[KMG] length of buffer to read or write

(default 128 KB for TCP, 8 KB for UDP)

--cport bind to a specific client port (TCP and UDP, default: ephemeral port)

-P, --parallel # number of parallel client streams to run

-R, --reverse run in reverse mode (server sends, client receives)

-w, --window #[KMG] set window size / socket buffer size

-M, --set-mss # set TCP/SCTP maximum segment size (MTU - 40 bytes)

-N, --no-delay set TCP/SCTP no delay, disabling Nagles Algorithm

-4, --version4 only use IPv4

-6, --version6 only use IPv6

-S, --tos N set the IP type of service

-Z, --zerocopy use a zero copy method of sending data

-O, --omit N omit the first n seconds

-T, --title str prefix every output line with this string

--get-server-output get results from server

--udp-counters-64bit use 64-bit counters in UDP test packets



[KMG] indicates options that support a K/M/G suffix for kilo-, mega-, or giga-

 

iPerf 3 user documentation
GENERAL OPTIONS
Command line option    Description
-p, --port n    The server port for the server to listen on and the client to connect to. This should be the same in both client and server. Default is 5201.
--cport n    Option to specify the client-side port. (new in iPerf 3.1)
-f, --format [kmKM]    A letter specifying the format to print bandwidth numbers in. Supported formats are 
    k = Kbits/sec           K = KBytes/sec
    m = Mbits/sec           M = MBytes/sec
The adaptive formats choose between kilo- and mega- as appropriate.
-i, --interval n    Sets the interval time in seconds between periodic bandwidth, jitter, and loss reports. If non-zero, a report is made every interval seconds of the bandwidth since the last report. If zero, no periodic reports are printed. Default is zero.
-F, --file name    client-side: read from the file and write to the network, instead of using random data;
server-side: read from the network and write to the file, instead of throwing the data away.
-A, --affinity n/n,m-F    Set the CPU affinity, if possible (Linux and FreeBSD only). On both the client and server you can set the local affinity by using the n form of this argument (where n is a CPU number). In addition, on the client side you can override the server’s affinity for just that one test, using the n,m form of argument. Note that when using this feature, a process will only be bound to a single CPU (as opposed to a set containing potentialy multiple CPUs).
-B, --bind host    Bind to host, one of this machines addresses. For the client this sets the outbound interface. For a server this sets the incoming interface. This is only useful on multihomed hosts, which have multiple network interfaces.
-V, --verbose    give more detailed output
-J, --json    output in JSON format
--logfile file    send output to a log file. (new in iPerf 3.1)
--d, --debug    emit debugging output. Primarily (perhaps exclusively) of use to developers.
-v, --version    Show version information and quit.
-h, --help    Show a help synopsis and quit.
SERVER SPECIFIC OPTIONS
Command line option    Description
-s, --server    Run iPerf in server mode. (This will only allow one iperf connection at a time)
-D, --daemon    Run the server in background as a daemon.
-I, --pidfilefile    write a file with the process ID, most useful when running as a daemon. (new in iPerf 3.1)
CLIENT SPECIFIC OPTIONS
Command line option    Description
-c, --client host    Run iPerf in client mode, connecting to an iPerf server running on host.
--sctp    Use SCTP rather than TCP (Linux, FreeBSD and Solaris). (new in iPerf 3.1)
-u, --udp    Use UDP rather than TCP. See also the -b option.
-b, --bandwidth n[KM]    Set target bandwidth to n bits/sec (default 1 Mbit/sec for UDP, unlimited for TCP). If there are multiple streams (-P flag), the bandwidth limit is applied separately to each stream. You can also add a ’/’ and a number to the bandwidth specifier. This is called "burst mode". It will send the given number of packets without pausing, even if that temporarily exceeds the specified bandwidth limit.
-t, --time n    The time in seconds to transmit for. iPerf normally works by repeatedly sending an array of len bytes for time seconds. Default is 10 seconds. See also the -l, -k and -n options.
-n, --num n[KM]    The number of buffers to transmit. Normally, iPerf sends for 10 seconds. The -n option overrides this and sends an array of len bytes num times, no matter how long that takes. See also the -l, -k and -t options.
-k, --blockcount n[KM]    The number of blocks (packets) to transmit. (instead of -t or -n) See also the -t, -l and -n options.
-l, --length n[KM]    The length of buffers to read or write. iPerf works by writing an array of len bytes a number of times. Default is 128 KB for TCP, 8 KB for UDP. See also the -n, -k and -t options.
-P, --parallel n    The number of simultaneous connections to make to the server. Default is 1.
-R, --reverse    Run in reverse mode (server sends, client receives).
-w, --window n[KM]    Sets the socket buffer sizes to the specified value. For TCP, this sets the TCP window size. (this gets sent to the server and used on that side too)
-M, --set-mss n    Attempt to set the TCP maximum segment size (MSS). The MSS is usually the MTU - 40 bytes for the TCP/IP header. For ethernet, the MSS is 1460 bytes (1500 byte MTU).
-N, --no-delay    Set the TCP no delay option, disabling Nagles algorithm. Normally this is only disabled for interactive applications like telnet.
-4, --version4    only use IPv4.
-6, --version4    only use IPv6.
-S, --tos n    The type-of-service for outgoing packets. (Many routers ignore the TOS field.) You may specify the value in hex with a 0x prefix, in octal with a 0 prefix, or in decimal. For example, 0x10 hex = 020 octal = 16 decimal. The TOS numbers specified in RFC 1349 are: 
    IPTOS_LOWDELAY     minimize delay        0x10
    IPTOS_THROUGHPUT   maximize throughput   0x08
    IPTOS_RELIABILITY  maximize reliability  0x04
    IPTOS_LOWCOST      minimize cost         0x02
-L, --flowlabel n    Set the IPv6 flow label (currently only supported on Linux).
-Z, --zerocopy    Use a "zero copy" method of sending data, such as sendfile(2), instead of the usual write(2). This uses much less CPU.
-O, --omit n    Omit the first n seconds of the test, to skip past the TCP TCP slowstart period.
-T, --title str    Prefix every output line with this string.
-C, --linux-congestion algo    Set the congestion control algorithm (Linux only for iPerf 3.0, Linux and FreeBSD for iPerf 3.1).

 技术图片

 

Iperf 网络性能测试工具

标签:ade   format   ice   oct   line   gen   影响   from   buffer   

原文地址:https://www.cnblogs.com/augusite/p/14583233.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!