Iperf Speed Testing
(→Installing Iperf) |
Schoen.kevin (Talk | contribs) |
||
(14 intermediate revisions by 4 users not shown) | |||
Line 3: | Line 3: | ||
− | Iperf is an industry standard tool for doing accurate speed testing. This tool is accurate and provides clear metrics to understand and use performance. Iperf is open source code. Please read carefully the information contained in this document. | + | Iperf is an industry standard tool for doing accurate speed testing. This tool is accurate and provides clear metrics to understand and use the performance metrics it produces. Iperf is open source code, and is publicly available. Please read carefully the information contained in this document, as modifications from the standards used may affect the results substantially. |
*Iperf is the command line version. | *Iperf is the command line version. | ||
Line 11: | Line 11: | ||
*ACD's Iperf server is iperf.acd.net | *ACD's Iperf server is iperf.acd.net | ||
+ | == Speed Test Software, Websites and Issues with Getting Accurate data == | ||
− | + | There are many types of speed test softwares, with varying degrees of accuracy. Additionally, there are speed testing websites, these websites are inherently innaccurate, and do not provide a scientific or reliable data for troubleshooting. While sometimes usesful, websites such as http://www.speedtest.net and http://speedtest.acd.net (which is part of the speedtest.net network of server) will not provide accurate speed results on many types of connections, including wifi, bonded T1 lines, and many EFM services. Although ACD participates in speedtesting websites such as speedtest.net thier usufullness is limited. These sites will not provide accurate speeds for services faster than 40-100mb/s. | |
− | + | ACD uses IPerf as the standard software for doing all performance testing. For debugging purposes, ACD only uses Iperf. We do not rely upon random "speed test" websites for debugging purposes. | |
− | + | Changing variables within Iperf also change the performance results, often quite dramatically. Based upon our lab results, please provide us data with the <b>Recommended Settings for Testing</b> below. Data without the recommended settings and time stamps will generally not be taken into account for troubleshooting. | |
− | + | ||
− | Based upon our lab results, please provide us data with the <b>Recommended Settings for Testing</b> below. Data without the recommended settings and time stamps will generally not be taken into account for troubleshooting. | + | |
=== Recommended Settings for Testing === | === Recommended Settings for Testing === | ||
− | This command will run 10 parallel client threads over 240 seconds (4min). | + | This command will run 10 parallel client threads over 240 seconds (4min) with a TCP window size of 127K. |
− | '''iperf -c iperf.acd.net -P 10 -t 240''' | + | '''iperf3 -c iperf.acd.net -P 10 -t 240 -w 130000''' |
+ | |||
+ | his command will run 10 parallel client threads over 240 seconds (4min) with a TCP window size of 127K - first upload then download test. | ||
+ | |||
+ | '''iperf3 -c iperf.acd.net -P 10 -t 240 -w 130000 -r''' | ||
+ | |||
+ | |||
+ | '''iperf3 -c iperf.acd.net -P 10 -t 100000 -d''' | ||
== Servers on ACD.net's Network Configured for iperf == | == Servers on ACD.net's Network Configured for iperf == | ||
Line 31: | Line 37: | ||
== Installing Iperf == | == Installing Iperf == | ||
+ | Here is the best place to get the latest software: http://iperf.fr/ | ||
+ | *[[File:Iperf.zip]] | ||
Download IPerf, unrar and install into '''c:\iperf\''' | Download IPerf, unrar and install into '''c:\iperf\''' | ||
− | + | ||
+ | For Windows 10 and 11, all you need to do is unzip the files and move them to your newly created iperf directory(folder). | ||
+ | |||
+ | Example: | ||
+ | Create a new folder in your C Drive called iperf. | ||
+ | C:\IPERF3 | ||
+ | |||
+ | Unzip the files and move them to C:\IPERF3. | ||
+ | |||
+ | Open a command prompt(Win>Run>cmd) and change directories(cd) to the C drive(c:\) under the iperf directory(c:\iperf) | ||
+ | |||
+ | ==Run Iperf and performing initial testing== | ||
+ | |||
+ | Run your iperf testing: | ||
+ | *iperf3 -c iperf.acd.net -P 10 -t 240 | ||
+ | |||
+ | <pre>C:\Users\henry.joshua.ACDINTERNAL>cd c:\iperf | ||
+ | |||
+ | c:\IPERF3>iperf3 -c iperf.acd.net -P 10 -t 240 | ||
+ | ------------------------------------------------------------ | ||
+ | Client connecting to iperf.acd.net, TCP port 5001 | ||
+ | TCP window size: 64.0 KByte (default) | ||
+ | ------------------------------------------------------------ | ||
+ | [ 12] local 69.63.233.15 port 63169 connected with 69.63.226.198 port 5001 | ||
+ | [ 11] local 69.63.233.15 port 63168 connected with 69.63.226.198 port 5001 | ||
+ | [ 9] local 69.63.233.15 port 63166 connected with 69.63.226.198 port 5001 | ||
+ | [ 10] local 69.63.233.15 port 63167 connected with 69.63.226.198 port 5001 | ||
+ | [ 8] local 69.63.233.15 port 63165 connected with 69.63.226.198 port 5001 | ||
+ | [ 7] local 69.63.233.15 port 63164 connected with 69.63.226.198 port 5001 | ||
+ | [ 5] local 69.63.233.15 port 63162 connected with 69.63.226.198 port 5001 | ||
+ | [ 6] local 69.63.233.15 port 63163 connected with 69.63.226.198 port 5001 | ||
+ | [ 4] local 69.63.233.15 port 63161 connected with 69.63.226.198 port 5001 | ||
+ | [ 3] local 69.63.233.15 port 63160 connected with 69.63.226.198 port 5001</pre> | ||
== Getting Started == | == Getting Started == | ||
Line 41: | Line 81: | ||
=== Server Setup (Windows) === | === Server Setup (Windows) === | ||
− | If you are testing to the ACD server, you do not need to install your own server. | + | If you are testing to the ACD server (iperf.acd.net), you do not need to install your own server. If you are planning on running your own server; the servers should not have a lot of other applications or software or active usage to get test results. |
− | To begin transmitting files between two locations, one machine must be designated the server, while the other must be the client. The command to designate one machine as the server is as follows: | + | If you are going to run your own server; To begin transmitting files between two locations, one machine must be designated the server, while the other must be the client. The command to designate one machine as the server is as follows: |
iperf -s | iperf -s | ||
The full command line at this point should read as follows: | The full command line at this point should read as follows: | ||
− | C:\ | + | C:\IPERF3>iperf3 -s |
------------------------------------------------------------ | ------------------------------------------------------------ | ||
− | Server listening on TCP port | + | Server listening on TCP port 5201 |
− | + | ||
− | + | This setup is useful for creating a temporary iperf server for an iperf client to test to. It does not, however, set up a persistent server that will be up and online automatically whenever the machine is. | |
− | This setup is useful for creating a temporary iperf server for an iperf client to test to. It does not, however, set up a persistent server that will be up and online automatically whenever the machine is. | + | |
=== Client Setup (Windows) === | === Client Setup (Windows) === | ||
Line 58: | Line 97: | ||
In order for the second machine to run in client mode, the following command will be entered into the command prompt: | In order for the second machine to run in client mode, the following command will be entered into the command prompt: | ||
− | + | iperf3 -c [server IP address -or- Hostname] | |
At this point the client will connect to the server and transfer a single file for the default period of 10 seconds. | At this point the client will connect to the server and transfer a single file for the default period of 10 seconds. | ||
− | C:\ | + | C:\IPERF3>iperf3 -c iperf.acd.net |
------------------------------------------------------------ | ------------------------------------------------------------ | ||
− | Client connecting to | + | Client connecting to iperf.acd.net, TCP port 5201 |
TCP window size: 8.00 KByte (default) | TCP window size: 8.00 KByte (default) | ||
------------------------------------------------------------ | ------------------------------------------------------------ | ||
Line 82: | Line 121: | ||
To change the duration of the transfer from the default value of 10 seconds, the argument '''-t #''' can be added to the end of the client command, where '''#''' represents the duration in seconds. | To change the duration of the transfer from the default value of 10 seconds, the argument '''-t #''' can be added to the end of the client command, where '''#''' represents the duration in seconds. | ||
− | C:\ | + | C:\IPERF3>iperfE -c iperf.acd.net -t 5 |
This argument would transfer data to the server for 5 seconds instead of the default 10 seconds. | This argument would transfer data to the server for 5 seconds instead of the default 10 seconds. | ||
Line 90: | Line 129: | ||
The interval at which data is transferred to the server can be set by using the argument '''-i #''' where '''#''' represents the period in seconds for each interval. | The interval at which data is transferred to the server can be set by using the argument '''-i #''' where '''#''' represents the period in seconds for each interval. | ||
− | C:\ | + | C:\IPERF3>iperf3 -c 69.63.233.84 -i 2 |
This argument would transfer data to the server for 10 seconds (default), and display the data in intervals of 2 seconds (-i 2) | This argument would transfer data to the server for 10 seconds (default), and display the data in intervals of 2 seconds (-i 2) | ||
Line 98: | Line 137: | ||
To transfer a file via iperf based on a specific file size as opposed to a duration, the argument '''-n #''' is used, where '''#''' represents the file size in bytes. You can also use '''-n #M''' or '''-n #K''' to enter transfer size in Mbytes or Kbytes. | To transfer a file via iperf based on a specific file size as opposed to a duration, the argument '''-n #''' is used, where '''#''' represents the file size in bytes. You can also use '''-n #M''' or '''-n #K''' to enter transfer size in Mbytes or Kbytes. | ||
− | C:\ | + | C:\IPERF3>iperf3 -c netflow01.acd.net -n 100000 |
Will display like: | Will display like: | ||
------------------------------------------------------------ | ------------------------------------------------------------ | ||
− | Client connecting to | + | Client connecting to iperf3.acd.net, TCP port 5201 |
TCP window size: 8.00 KByte (default) | TCP window size: 8.00 KByte (default) | ||
------------------------------------------------------------ | ------------------------------------------------------------ | ||
Line 117: | Line 156: | ||
------------------------------------------------------------ | ------------------------------------------------------------ | ||
− | Client connecting to netflow01.acd.net, TCP port | + | Client connecting to netflow01.acd.net, TCP port 5201 |
TCP window size: 8.00 KByte (default) | TCP window size: 8.00 KByte (default) | ||
------------------------------------------------------------ | ------------------------------------------------------------ | ||
Line 128: | Line 167: | ||
To test both directions of the transfer, one direction at a time, the argument '''-r''' is used. | To test both directions of the transfer, one direction at a time, the argument '''-r''' is used. | ||
− | C:\ | + | C:\IPERF3>iperf3 -c 69.63.233.182 -r |
This argument will test in both directions in turn and will output something like this: | This argument will test in both directions in turn and will output something like this: | ||
Line 151: | Line 190: | ||
To test both directions of the transfer simultaneously, the argument '''-d''' is used. | To test both directions of the transfer simultaneously, the argument '''-d''' is used. | ||
− | C:\ | + | C:\IPERF3>iperf3 -c iperf3.acd.net -d |
Will output like: | Will output like: | ||
Line 173: | Line 212: | ||
The argument '''-P #''' where '''#''' represents the number of parallel connections you want to run. | The argument '''-P #''' where '''#''' represents the number of parallel connections you want to run. | ||
− | C:\ | + | C:\IPERF3>iperf3 -c netflow01.acd.net -P 3 |
Will output like: | Will output like: | ||
Line 206: | Line 245: | ||
Changing both the duration of the transfer as well as the interval for the same test is as simple as adding both arguments to the command line: | Changing both the duration of the transfer as well as the interval for the same test is as simple as adding both arguments to the command line: | ||
− | C:\ | + | C:\IPERF3>iperf3 -c 69.63.233.84 -i 2 -t 20 |
This argument would transfer data to the server for 20 seconds (-t 20), and display the data in intervals of 2 seconds (-i 2) | This argument would transfer data to the server for 20 seconds (-t 20), and display the data in intervals of 2 seconds (-i 2) | ||
+ | |||
+ | === Complete List of Options/Arguments/Flags === | ||
+ | This is a complete list of the arguments for testing with Iperf. | ||
+ | |||
+ | <pre>C:\IPERF3>iperf --help | ||
+ | Usage: iperf [-s|-c host] [options] | ||
+ | iperf [-h|--help] [-v|--version] | ||
+ | |||
+ | Client/Server: | ||
+ | -f, --format [kmKM] format to report: Kbits, Mbits, KBytes, MBytes | ||
+ | -i, --interval # seconds between periodic bandwidth reports | ||
+ | -l, --len #[KM] length of buffer to read or write (default 8 KB) | ||
+ | -m, --print_mss print TCP maximum segment size (MTU - TCP/IP header) | ||
+ | -o, --output <filename> output the report or error message to this specified file | ||
+ | -p, --port # server port to listen on/connect to | ||
+ | -u, --udp use UDP rather than TCP | ||
+ | -w, --window #[KM] TCP window size (socket buffer size) | ||
+ | -B, --bind <host> bind to <host>, an interface or multicast address | ||
+ | -C, --compatibility for use with older versions does not sent extra msgs | ||
+ | -M, --mss # set TCP maximum segment size (MTU - 40 bytes) | ||
+ | -N, --nodelay set TCP no delay, disabling Nagle's Algorithm | ||
+ | -V, --IPv6Version Set the domain to IPv6 | ||
+ | |||
+ | Server specific: | ||
+ | -s, --server run in server mode | ||
+ | -D, --daemon run the server as a daemon | ||
+ | -U, --single_udp run in single threaded UDP mode | ||
+ | -R, --remove remove service in win32 | ||
+ | |||
+ | Client specific: | ||
+ | -b, --bandwidth #[KM] for UDP, bandwidth to send at in bits/sec | ||
+ | (default 1 Mbit/sec, implies -u) | ||
+ | -c, --client <host> run in client mode, connecting to <host> | ||
+ | -d, --dualtest Do a bidirectional test simultaneously | ||
+ | -n, --num #[KM] number of bytes to transmit (instead of -t) | ||
+ | -r, --tradeoff Do a bidirectional test individually | ||
+ | -t, --time # time in seconds to transmit for (default 10 secs) | ||
+ | -F, --fileinput <name> input the data to be transmitted from a file | ||
+ | -I, --stdin input the data to be transmitted from stdin | ||
+ | -L, --listenport # port to recieve bidirectional tests back on | ||
+ | -P, --parallel # number of parallel client threads to run | ||
+ | -T, --ttl # time-to-live, for multicast (default 1) | ||
+ | -Z, --linux-congestion <algo> set TCP congestion control algorithm (Linux only) | ||
+ | |||
+ | Miscellaneous: | ||
+ | -x, --reportexclude [CDMSV] exclude C(connection) D(data) M(multicast) S(settings) V(server) reports | ||
+ | -y, --reportstyle C report as a Comma-Separated Values | ||
+ | -h, --help print this message and quit | ||
+ | -v, --version print version information and quit | ||
+ | |||
+ | [KM] Indicates options that support a K or M suffix for kilo- or mega- | ||
+ | |||
+ | The TCP window size option can be set by the environment variable | ||
+ | TCP_WINDOW_SIZE. Most other options can be set by an environment variable | ||
+ | IPERF_<long option name>, such as IPERF_BANDWIDTH.</pre> |
Latest revision as of 17:11, 10 February 2024
[edit] What it Is
Iperf is an industry standard tool for doing accurate speed testing. This tool is accurate and provides clear metrics to understand and use the performance metrics it produces. Iperf is open source code, and is publicly available. Please read carefully the information contained in this document, as modifications from the standards used may affect the results substantially.
- Iperf is the command line version.
- Jperf is a Graphical User Interface version that uses Iperf.
- Public Source Information about Iperf is located here: http://en.wikipedia.org/wiki/Iperf
- ACD's Iperf server is iperf.acd.net
[edit] Speed Test Software, Websites and Issues with Getting Accurate data
There are many types of speed test softwares, with varying degrees of accuracy. Additionally, there are speed testing websites, these websites are inherently innaccurate, and do not provide a scientific or reliable data for troubleshooting. While sometimes usesful, websites such as http://www.speedtest.net and http://speedtest.acd.net (which is part of the speedtest.net network of server) will not provide accurate speed results on many types of connections, including wifi, bonded T1 lines, and many EFM services. Although ACD participates in speedtesting websites such as speedtest.net thier usufullness is limited. These sites will not provide accurate speeds for services faster than 40-100mb/s.
ACD uses IPerf as the standard software for doing all performance testing. For debugging purposes, ACD only uses Iperf. We do not rely upon random "speed test" websites for debugging purposes.
Changing variables within Iperf also change the performance results, often quite dramatically. Based upon our lab results, please provide us data with the Recommended Settings for Testing below. Data without the recommended settings and time stamps will generally not be taken into account for troubleshooting.
[edit] Recommended Settings for Testing
This command will run 10 parallel client threads over 240 seconds (4min) with a TCP window size of 127K.
iperf3 -c iperf.acd.net -P 10 -t 240 -w 130000
his command will run 10 parallel client threads over 240 seconds (4min) with a TCP window size of 127K - first upload then download test.
iperf3 -c iperf.acd.net -P 10 -t 240 -w 130000 -r
iperf3 -c iperf.acd.net -P 10 -t 100000 -d
[edit] Servers on ACD.net's Network Configured for iperf
iperf.acd.net
[edit] Installing Iperf
Here is the best place to get the latest software: http://iperf.fr/
Download IPerf, unrar and install into c:\iperf\
For Windows 10 and 11, all you need to do is unzip the files and move them to your newly created iperf directory(folder).
Example: Create a new folder in your C Drive called iperf.
C:\IPERF3
Unzip the files and move them to C:\IPERF3.
Open a command prompt(Win>Run>cmd) and change directories(cd) to the C drive(c:\) under the iperf directory(c:\iperf)
[edit] Run Iperf and performing initial testing
Run your iperf testing:
- iperf3 -c iperf.acd.net -P 10 -t 240
C:\Users\henry.joshua.ACDINTERNAL>cd c:\iperf c:\IPERF3>iperf3 -c iperf.acd.net -P 10 -t 240 ------------------------------------------------------------ Client connecting to iperf.acd.net, TCP port 5001 TCP window size: 64.0 KByte (default) ------------------------------------------------------------ [ 12] local 69.63.233.15 port 63169 connected with 69.63.226.198 port 5001 [ 11] local 69.63.233.15 port 63168 connected with 69.63.226.198 port 5001 [ 9] local 69.63.233.15 port 63166 connected with 69.63.226.198 port 5001 [ 10] local 69.63.233.15 port 63167 connected with 69.63.226.198 port 5001 [ 8] local 69.63.233.15 port 63165 connected with 69.63.226.198 port 5001 [ 7] local 69.63.233.15 port 63164 connected with 69.63.226.198 port 5001 [ 5] local 69.63.233.15 port 63162 connected with 69.63.226.198 port 5001 [ 6] local 69.63.233.15 port 63163 connected with 69.63.226.198 port 5001 [ 4] local 69.63.233.15 port 63161 connected with 69.63.226.198 port 5001 [ 3] local 69.63.233.15 port 63160 connected with 69.63.226.198 port 5001
[edit] Getting Started
To begin using iperf, open up the command prompt and change to the iperf directory by typing cd c:\iperf.
[edit] Server Setup (Windows)
If you are testing to the ACD server (iperf.acd.net), you do not need to install your own server. If you are planning on running your own server; the servers should not have a lot of other applications or software or active usage to get test results.
If you are going to run your own server; To begin transmitting files between two locations, one machine must be designated the server, while the other must be the client. The command to designate one machine as the server is as follows:
iperf -s
The full command line at this point should read as follows:
C:\IPERF3>iperf3 -s ------------------------------------------------------------ Server listening on TCP port 5201
This setup is useful for creating a temporary iperf server for an iperf client to test to. It does not, however, set up a persistent server that will be up and online automatically whenever the machine is.
[edit] Client Setup (Windows)
In order for the second machine to run in client mode, the following command will be entered into the command prompt:
iperf3 -c [server IP address -or- Hostname]
At this point the client will connect to the server and transfer a single file for the default period of 10 seconds.
C:\IPERF3>iperf3 -c iperf.acd.net ------------------------------------------------------------ Client connecting to iperf.acd.net, TCP port 5201 TCP window size: 8.00 KByte (default) ------------------------------------------------------------ [1832] local 69.63.233.182 port 3716 connected with 69.63.233.183 port 5001 [ ID] Interval Transfer Bandwidth [1832] 0.0-10.0 sec 109 MBytes 91.7 Mbits/sec
[edit] Client Arguments
The iperf client supports a great deal of arguments that allow for the transfer to be customized in a number of ways. The following section covers these arguments in detail:
[edit] Using Single Arguments
[edit] Changing the duration of transfer:
To change the duration of the transfer from the default value of 10 seconds, the argument -t # can be added to the end of the client command, where # represents the duration in seconds.
C:\IPERF3>iperfE -c iperf.acd.net -t 5
This argument would transfer data to the server for 5 seconds instead of the default 10 seconds.
[edit] Changing the interval rate:
The interval at which data is transferred to the server can be set by using the argument -i # where # represents the period in seconds for each interval.
C:\IPERF3>iperf3 -c 69.63.233.84 -i 2
This argument would transfer data to the server for 10 seconds (default), and display the data in intervals of 2 seconds (-i 2)
[edit] Transferring a specific file size:
To transfer a file via iperf based on a specific file size as opposed to a duration, the argument -n # is used, where # represents the file size in bytes. You can also use -n #M or -n #K to enter transfer size in Mbytes or Kbytes.
C:\IPERF3>iperf3 -c netflow01.acd.net -n 100000
Will display like:
------------------------------------------------------------ Client connecting to iperf3.acd.net, TCP port 5201 TCP window size: 8.00 KByte (default) ------------------------------------------------------------ [1908] local 69.63.233.190 port 3605 connected with 207.179.118.136 port 5001 [ ID] Interval Transfer Bandwidth [1908] 0.0- 0.0 sec 104 KBytes 54.5 Mbits/sec
And
C:\iperf>iperf -c netflow01.acd.net -n 100M
Will display like:
------------------------------------------------------------ Client connecting to netflow01.acd.net, TCP port 5201 TCP window size: 8.00 KByte (default) ------------------------------------------------------------ [1908] local 69.63.233.190 port 3614 connected with 207.179.118.136 port 5001 [ ID] Interval Transfer Bandwidth [1908] 0.0- 8.9 sec 100 MBytes 94.0 Mbits/sec
[edit] Bidirectional testing: Individually
To test both directions of the transfer, one direction at a time, the argument -r is used.
C:\IPERF3>iperf3 -c 69.63.233.182 -r
This argument will test in both directions in turn and will output something like this:
------------------------------------------------------------ Server listening on TCP port 5001 TCP window size: 8.00 KByte (default) ------------------------------------------------------------ ------------------------------------------------------------ Client connecting to 69.63.233.182, TCP port 5001 TCP window size: 8.00 KByte (default) ------------------------------------------------------------ [1852] local 69.63.233.190 port 3058 connected with 69.63.233.182 port 5001 [ ID] Interval Transfer Bandwidth [1852] 0.0-10.0 sec 110 MBytes 92.5 Mbits/sec [1944] local 69.63.233.190 port 5001 connected with 69.63.233.182 port 2828 [ ID] Interval Transfer Bandwidth [1944] 0.0-10.0 sec 81.9 MBytes 68.8 Mbits/sec
[edit] Bidirectional testing: Simultaneously
To test both directions of the transfer simultaneously, the argument -d is used.
C:\IPERF3>iperf3 -c iperf3.acd.net -d
Will output like:
------------------------------------------------------------ Server listening on TCP port 5001 TCP window size: 8.00 KByte (default) ------------------------------------------------------------ ------------------------------------------------------------ Client connecting to netflow01.acd.net, TCP port 5001 TCP window size: 8.00 KByte (default) ------------------------------------------------------------ [1848] local 69.89.110.216 port 2993 connected with 207.179.118.136 port 5001 [1816] local 69.89.110.216 port 5001 connected with 207.179.118.136 port 55020 [ ID] Interval Transfer Bandwidth [1848] 0.0-130.2 sec 848 KBytes 53.4 Kbits/sec [1816] 0.0-163.9 sec 3.13 MBytes 160 Kbits/sec
[edit] Running Multiple Parallel Connections
The argument -P # where # represents the number of parallel connections you want to run.
C:\IPERF3>iperf3 -c netflow01.acd.net -P 3
Will output like:
------------------------------------------------------------ Client connecting to netflow01.acd.net, TCP port 5001 TCP window size: 8.00 KByte (default) ------------------------------------------------------------ [1872] local 69.89.110.216 port 3065 connected with 207.179.118.136 port 5001 [1888] local 69.89.110.216 port 3064 connected with 207.179.118.136 port 5001 [1908] local 69.89.110.216 port 3063 connected with 207.179.118.136 port 5001 [ ID] Interval Transfer Bandwidth [1908] 0.0-130.4 sec 456 KBytes 28.6 Kbits/sec [1872] 0.0-130.4 sec 264 KBytes 16.6 Kbits/sec [1888] 0.0-130.9 sec 208 KBytes 13.0 Kbits/sec [SUM] 0.0-130.9 sec 928 KBytes 58.1 Kbits/sec
Displaying the results port by port followed by the [SUM] with totals for the entire transaction.
[edit] Choosing which port to connect to or listen on
To set which ports to use on the client side of iperf the argument -p and -L are utilized.
- When used by the client, the -p argument determines which port on the server to connect to using the format -p #' where # is a port number on the iperf server.
- The -L argument lets you select which port the client will listen on in the case of bidirectional testing using the format -L # where # is a port number on the client machine.
[edit] Using Multiple Arguments
It is possible to use iperf arguments together to have more control over the testing process and the results you receive in return. What follows are examples of some of the useful and possible combination of iperf arguments.
[edit] Using the interval and duration arguments together:
Changing both the duration of the transfer as well as the interval for the same test is as simple as adding both arguments to the command line:
C:\IPERF3>iperf3 -c 69.63.233.84 -i 2 -t 20 This argument would transfer data to the server for 20 seconds (-t 20), and display the data in intervals of 2 seconds (-i 2)
[edit] Complete List of Options/Arguments/Flags
This is a complete list of the arguments for testing with Iperf.
C:\IPERF3>iperf --help Usage: iperf [-s|-c host] [options] iperf [-h|--help] [-v|--version] Client/Server: -f, --format [kmKM] format to report: Kbits, Mbits, KBytes, MBytes -i, --interval # seconds between periodic bandwidth reports -l, --len #[KM] length of buffer to read or write (default 8 KB) -m, --print_mss print TCP maximum segment size (MTU - TCP/IP header) -o, --output <filename> output the report or error message to this specified file -p, --port # server port to listen on/connect to -u, --udp use UDP rather than TCP -w, --window #[KM] TCP window size (socket buffer size) -B, --bind <host> bind to <host>, an interface or multicast address -C, --compatibility for use with older versions does not sent extra msgs -M, --mss # set TCP maximum segment size (MTU - 40 bytes) -N, --nodelay set TCP no delay, disabling Nagle's Algorithm -V, --IPv6Version Set the domain to IPv6 Server specific: -s, --server run in server mode -D, --daemon run the server as a daemon -U, --single_udp run in single threaded UDP mode -R, --remove remove service in win32 Client specific: -b, --bandwidth #[KM] for UDP, bandwidth to send at in bits/sec (default 1 Mbit/sec, implies -u) -c, --client <host> run in client mode, connecting to <host> -d, --dualtest Do a bidirectional test simultaneously -n, --num #[KM] number of bytes to transmit (instead of -t) -r, --tradeoff Do a bidirectional test individually -t, --time # time in seconds to transmit for (default 10 secs) -F, --fileinput <name> input the data to be transmitted from a file -I, --stdin input the data to be transmitted from stdin -L, --listenport # port to recieve bidirectional tests back on -P, --parallel # number of parallel client threads to run -T, --ttl # time-to-live, for multicast (default 1) -Z, --linux-congestion <algo> set TCP congestion control algorithm (Linux only) Miscellaneous: -x, --reportexclude [CDMSV] exclude C(connection) D(data) M(multicast) S(settings) V(server) reports -y, --reportstyle C report as a Comma-Separated Values -h, --help print this message and quit -v, --version print version information and quit [KM] Indicates options that support a K or M suffix for kilo- or mega- The TCP window size option can be set by the environment variable TCP_WINDOW_SIZE. Most other options can be set by an environment variable IPERF_<long option name>, such as IPERF_BANDWIDTH.