...
Table of Content Zone | |
---|---|
|
...
Considerations
- For
...
- The accuracy of this speed test diminishes with larger bandwidth circuits
- The hardware performance of the client running this test has a significant impact on results
...
WiscNet hosted Iperf
...
- The hardware performance of the client running this test has a significant impacts results
- WiscNet has noticed that the Iperf clients for Linux, Unix, and macOS perform better than the ports for Windows
- best results test with a wired (copper/fiber) connection.
- The performance of the computer running this test may have a significant impact on the test results.
- Other activity on your network may impact your test results significantly.
- For better results, bypass your network during and outage window and test directly from the Network Access handoff.
- If this is not an option, we recommend connecting your test computer to your network as close as possible to the Network Access handoff.
- graphs.wiscnet.net uses 5 minute polling and averages, so short speed tests that will fall within a 5 minute polling cycle won't be reflected as maximums on graphs.wiscnet.net.
- iperf3 performance is better than web browser based tests.
Web Browser Speed Tests
Site | Description | Screenshot |
---|---|---|
WiscNet's locally hosted web based speed test site. This server has 100Gbps connectivity and runs OpenSpeedTest. | ||
Alternate speed test hosted by Netflix but served from WiscNet's network (if you are coming from WiscNet) |
WiscNet iperf Speed Tests
Iperf Info
- iperf is a network testing tool used to help measure network throughput, iperf is developed by ESnet / Lawrence Berkeley National Laboratory. For more information please visit:
- WiscNet hosts both iperf2 and iperf3
- Use iperf3 per recommendations below
- Both are on the server iperf.wiscnet.net
- iperf.wiscnet.net is only available to WiscNet members
- WiscNet also hosts a perfsonar server, which is available publicly - https://www.perfsonar.net/
iperf3 Installation
There are many publicly available guides online. Here are some common examples:
Windows with Windows Subsystem for Linux (Debian/Ubuntu):
Info |
---|
Windows .exe is not officially supported, see this page for reasons. If you must use Windows, please install Windows Subsystem for Linux |
Code Block |
---|
sudo apt install iperf3 |
macOS with Homebrew:
Code Block |
---|
brew install iperf3 |
Linux - Redhat:
Code Block |
---|
sudo dnf install iperf3 |
Linux - Debian:
Code Block |
---|
sudo apt install iperf3 |
iperf3 Test Examples
We recommend using iperf3 TCP tests with four parallel threads when possible for up to 10Gbps tests. UDP tests (not documented here) may cause a service interruption if not used carefully.
iperf3 Download Test
iperf3 testing download speeds from the member's perspective, 4 threads in parallel, for 900 seconds/15 minutes, using TCP. The [SUM] row results in Mbits/sec or Gbits/sec.
Code Block |
---|
iperf3 |
Some common Iperf flags
Enter iperf -h or man iperf depending on your operating system. Here are some common flags:
...
-b 250m
...
-L
...
-r
...
-d
...
TCP vs UDP testing
Iperf uses TCP by default. TCP has built in congestion avoidance. If TCP detects any packet loss, it assumes that the link capacity has been reached, and it slows down. This works very well, unless there is packet loss caused by something other than congestion. If there is packet loss due to errors, TCP will back off even if there is plenty of capacity. iperf allows TCP to send as fast as it can, which generally works to fill a clean, low latency link with packets. If a path is not clean/error free or has high latency, TCP will have a difficult time filling it. For testing higher capacity links and for links with higher latency, you will want to adjust the window size (-w option). See the KB article on TCP performance for more background.
By using the -u option, you have told iperf to use UDP packets, rather than TCP. UDP has no built in congestion avoidance, and iperf doesn't implement it either. When doing a UDP test, iperf requires that the bandwidth of the test be specified. If it isn't, it defaults to 1Mb/s. You can use the -b option to specify bandwidth to test. iperf will then send packets at the request rate for the requested period of time. The other end measures how many packets are received vs how many were sent and reports its results.
Examples
Unidirectional UDP 1Gbps circuit test
Command
Code Block | ||
---|---|---|
| ||
iperf -c iperf.wiscnet.net -t 10 -P 4 -u -b 250mt 900 -i1R |
Results
When runing multiple threads you must look at the SUM lines for total throughput. Output below shows successfully getting 953Mbits/sec through
Code Block | ||||
---|---|---|---|---|
| ||||
iperf3 | ||||
Expand | ||||
| ||||
No Format | -c iperf.wiscnet.net -t 10 -P 4 - u -b 250mt 900 -i1 ------------------------------------------------------------ Client connecting to iperf.wiscnet.net, UDP port 5001 Sending 1470 byte datagrams UDP buffer size: 208 KByte (default) ------------------------------------------------------------ [ 5] local 10.0.10.105 port 44098 connected with 205.213.14.56 port 5001 [ 3] local 10.0.10.105 port 46090 connected with 205.213.14.56 port 5001 [ 4] local 10.0.10.105 port 38200 connected with 205.213.14.56 port 5001 [ 6] local 10.0.10.105 port 59296 connected with 205.213.14.56 port 5001 [ ID] Interval Transfer Bandwidth [ 5] 0.0- 1.0 sec 28.4 MBytes 238 Mbits/sec [ 3] 0.0- 1.0 sec 28.5 MBytes 239 Mbits/sec [ 4] 0.0- 1.0 sec 28.6 MBytes 240 Mbits/sec [ 6] 0.0- 1.0 sec 28.6 MBytes 240 Mbits/sec [SUM] 0.0- 1.0 sec 114 MBytes 957 Mbits/sec [ 5] 1.0- 2.0 sec 28.5 MBytes 239 Mbits/sec [ 3] 1.0- 2.0 sec 28.4 MBytes 238 Mbits/sec [ 4] 1.0- 2.0 sec 28.5 MBytes 239 Mbits/sec [ 6] 1.0- 2.0 sec 28.2 MBytes 236 Mbits/sec [SUM] 1.0- 2.0 sec 114 MBytes 953 Mbits/sec [ 5] 2.0- 3.0 sec 28.4 MBytes 238 Mbits/sec [ 3] 2.0- 3.0 sec 28.2 MBytes 237 Mbits/sec [ 4] 2.0- 3.0 sec 28.6 MBytes 240 Mbits/sec [ 6] 2.0- 3.0 sec 28.5 MBytes 239 Mbits/sec [SUM] 2.0- 3.0 sec 114 MBytes 953 Mbits/sec [ 5] 3.0- 4.0 sec 28.3 MBytes 238 Mbits/sec [ 3] 3.0- 4.0 sec 28.3 MBytes 238 Mbits/sec [ 4] 3.0- 4.0 sec 28.5 MBytes 239 Mbits/sec [ 6] 3.0- 4.0 sec 28.4 MBytes 239 Mbits/sec [SUM] 3.0- 4.0 sec 114 MBytes 952 Mbits/sec [ 5] 4.0- 5.0 sec 28.3 MBytes 237 Mbits/sec [ 3] 4.0- 5.0 sec 28.3 MBytes 238 Mbits/sec [ 4] 4.0- 5.0 sec 28.3 MBytes 238 Mbits/sec [ 6] 4.0- 5.0 sec 28.7 MBytes 241 Mbits/sec [SUM] 4.0- 5.0 sec 114 MBytes 954 Mbits/sec [ 5] 5.0- 6.0 sec 28.6 MBytes 240 Mbits/sec [ 3] 5.0- 6.0 sec 28.4 MBytes 238 Mbits/sec [ 4] 5.0- 6.0 sec 28.3 MBytes 238 Mbits/sec [ 6] 5.0- 6.0 sec 28.5 MBytes 239 Mbits/sec [SUM] 5.0- 6.0 sec 114 MBytes 955 Mbits/sec [ 5] 6.0- 7.0 sec 28.5 MBytes 239 Mbits/sec [ 3] 6.0- 7.0 sec 28.3 MBytes 238 Mbits/sec [ 4] 6.0- 7.0 sec 28.5 MBytes 239 Mbits/sec [ 6] 6.0- 7.0 sec 28.3 MBytes 237 Mbits/sec [SUM] 6.0- 7.0 sec 114 MBytes 953 Mbits/sec [ 5] 7.0- 8.0 sec 28.4 MBytes 238 Mbits/sec [ 3] 7.0- 8.0 sec 28.4 MBytes 238 Mbits/sec [ 4] 7.0- 8.0 sec 28.3 MBytes 238 Mbits/sec [ 6] 7.0- 8.0 sec 28.5 MBytes 239 Mbits/sec [SUM] 7.0- 8.0 sec 114 MBytes 953 Mbits/sec [ 5] 8.0- 9.0 sec 28.5 MBytes 239 Mbits/sec [ 3] 8.0- 9.0 sec 28.3 MBytes 237 Mbits/sec [ 4] 8.0- 9.0 sec 28.4 MBytes 238 Mbits/sec [ 6] 8.0- 9.0 sec 28.4 MBytes 238 Mbits/sec [SUM] 8.0- 9.0 sec 114 MBytes 953 Mbits/sec read failed: Connection refused [ 3] WARNING: did not receive ack of last datagram after 1 tries. [ 5] 9.0-10.0 sec 28.5 MBytes 239 Mbits/sec [ 5] 0.0-10.0 sec 284 MBytes 239 Mbits/sec [ 5] Sent 202875 datagrams [ 3] 0.0-10.0 sec 284 MBytes 238 Mbits/sec [ 3] Sent 202276 datagrams [ 4] 0.0-10.0 sec 284 MBytes 239 Mbits/sec [ 4] Sent 202852 datagrams [ 6] 0.0-10.0 sec 285 MBytes 239 Mbits/sec [ 6] Sent 203078 datagrams [SUM] 0.0-10.0 sec 1.11 GBytes 954 Mbits/sec read failed: Connection refused [ 5] WARNING: did not receive ack of last datagram after 5 tries. read failed: Connection refused [ 6] WARNING: did not receive ack of last datagram after 9 tries. [ 4] WARNING: did not receive ack of last datagram after 10 tries. |
...
R
<output shortened/omitted>
- - - - - - - - - - - - - - - - - - - - - - - - -
[ 7] 8.00-9.00 sec 31.6 MBytes 265 Mbits/sec
[ 9] 8.00-9.00 sec 20.2 MBytes 170 Mbits/sec
[ 11] 8.00-9.00 sec 33.4 MBytes 280 Mbits/sec
[ 13] 8.00-9.00 sec 25.5 MBytes 214 Mbits/sec
[SUM] 8.00-9.00 sec 111 MBytes 929 Mbits/sec
<repeats until the test is completed>
<output shortened/omitted>
|
iperf3 Upload Test
iperf3 testing download speeds from the member's perspective, 4 threads in parallel, for 900 seconds/15 minutes, using TCP. The [SUM] row results in Mbits/sec or Gbits/sec. "-R" for reverse added to this test.
Code Block |
---|
iperf3 |
Note |
---|
Check your firewall settings and NAT to ensure port 5001 is open to your host |
Command
Code Block | ||
---|---|---|
| ||
iperf -c iperf.wiscnet.net -t 10 -P 4 -u -b 250m -i1 -r |
...
Apple macOS
- Download and extract Bandwidth Testing to any folder
- Open a terminal
- cd to your extracted iperf folder
macOS - Install
Code Block | ||
---|---|---|
| ||
iMac:~ $ cd Downloads/iperf-2.0.5-macos-x86_64
iMac:iperf-2.0.5-macos-x86_64 $ ls -lh
total 176
-rw-r--r-- 1 staff 693B Feb 20 2011 README
drwxr-xr-x@ 8 staff 272B Feb 20 2011 doc
-rwxr-xr-x@ 1 staff 78K Feb 20 2011 iperf
-rw-r--r--@ 1 staff 3.7K Feb 20 2011 iperf.1 |
macOS - Example
Code Block | ||
---|---|---|
| ||
iMac:iperf-2.0.5-macos-x86_64 $ ./iperf -c iperf.wiscnet.net
------------------------------------------------------------
Client connecting to iperf.wiscnet.net, TCP port 5001
TCP window size: 128 KByte (default)
------------------------------------------------------------
[ 5] local 10.0.10.100 port 51961 connected with 205.213.14.56 port 5001
[ ID] Interval Transfer Bandwidth
[ 5] 0.0-10.0 sec 184 MBytes 154 Mbits/sec
iMac:iperf-2.0.5-macos-x86_64 $ |
...
t 900 |
Code Block | ||||
---|---|---|---|---|
| ||||
iperf3 -c iperf.wiscnet.net -P 4 -t 900
<output shortened/omitted>
- - - - - - - - - - - - - - - - - - - - - - - - -
[ 7] 8.00-9.01 sec 22.4 MBytes 187 Mbits/sec
[ 9] 8.00-9.01 sec 24.9 MBytes 208 Mbits/sec
[ 11] 8.00-9.01 sec 22.4 MBytes 187 Mbits/sec
[ 13] 8.00-9.01 sec 41.4 MBytes 346 Mbits/sec
[SUM] 8.00-9.01 sec 111 MBytes 928 Mbits/sec
<repeats until the test is completed>
<output shortened/omitted> |
Specifying IPv4 or IPV6
- iperf.wiscnet.net listens on v4 and v6. If you wish to test only v4 or only v6, please use the hostnames below (same server)
- iperf-ipv4.wiscnet.net
- iperf-ipv6.wiscnet.net
- Many Lunix and Unix distros will have iperf in official repositories. Make sure to install iperf2 (iperf), not iperf3
Ubuntu - Install
Code Block | ||
---|---|---|
| ||
$ apt-cache search iperf | grep -i iperf
iperf - Internet Protocol bandwidth measuring tool
iperf3 - Internet Protocol bandwidth measuring tool
$ sudo apt-get install iperf |
Ubuntu - Example
Code Block | ||
---|---|---|
| ||
user@Latitude-E7440:~$ iperf -c iperf.wiscnet.net -t 10 -P 4
------------------------------------------------------------
Client connecting to iperf.wiscnet.net, TCP port 5001
TCP window size: 85.0 KByte (default)
------------------------------------------------------------
[ 4] local 10.0.10.168 port 37014 connected with 205.213.14.56 port 5001
[ 3] local 10.0.10.168 port 37010 connected with 205.213.14.56 port 5001
[ 6] local 10.0.10.168 port 37016 connected with 205.213.14.56 port 5001
[ 5] local 10.0.10.168 port 37012 connected with 205.213.14.56 port 5001
[ ID] Interval Transfer Bandwidth
[ 4] 0.0-10.0 sec 266 MBytes 222 Mbits/sec
[ 5] 0.0-10.0 sec 264 MBytes 221 Mbits/sec
[ 3] 0.0-10.0 sec 278 MBytes 233 Mbits/sec
[ 6] 0.0-10.0 sec 310 MBytes 259 Mbits/sec
[SUM] 0.0-10.0 sec 1.09 GBytes 934 Mbits/sec
user@Latitude-E7440:~$ |
...
Windows - Install
- Download and extract iperf2: Bandwidth Testing
- Right-click the downloaded iperf-2.0.10-win32.zip file and extract the contents of the .zip to any folder (seen here under \Users\Administrator)
...
Code Block | ||
---|---|---|
| ||
cd \Users\Administrator\iperf-2.0.10-win\
dir |
...
Windows - Example
...