Iperf

From SME Server
Revision as of 15:29, 9 March 2022 by ReetP (talk | contribs)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to navigation Jump to search

Description

Internet Protocol bandwidth measuring tool Iperf is a modern alternative for measuring TCP and UDP bandwidth performance, allowing the tuning of various parameters and characteristics.

https://github.com/esnet/iperf

Features:

  • Measure bandwidth, packet loss, delay jitter
  • Report MSS/MTU size and observed read sizes.
  • Support for TCP window size via socket buffers.
  • Multi-threaded. Client and server can have multiple simultaneous connections.
  • Client can create UDP streams of specified bandwidth.
  • Multicast and IPv6 capable.
  • Options can be specified with K (kilo-) and M (mega-) suffices.
  • Can run for specified time, rather than a set amount of data to transfer.
  • Picks the best units for the size of data being reported.
  • Server handles multiple connections.
  • Print periodic, intermediate bandwidth, jitter, and loss reports at specified intervals.
  • Server can be run as a daemon.
  • Use representative streams to test out how link layer compression affects your achievable bandwidth.

Installation

Install direct from upstream repos

yum install iperf3


  Note:
Some distros carry both iperf v2 and iperf3


Usage

To use iperf you need a server and a client

On the 'server' run

iperf3 -s

On the client run:

iperf3 -c ip.of.iperf.server

Output:

Connecting to host 192.168.11.1, port 5201
[  5] local 192.168.11.100 port 46926 connected to 192.168.11.1 port 5201
[ ID] Interval           Transfer     Bitrate         Retr  Cwnd
[  5]   0.00-1.00   sec   113 MBytes   952 Mbits/sec    0   1.11 MBytes
[  5]   1.00-2.00   sec   111 MBytes   933 Mbits/sec    0   1.11 MBytes
[  5]   2.00-3.00   sec   111 MBytes   933 Mbits/sec    0   1.11 MBytes
[  5]   3.00-4.00   sec   111 MBytes   933 Mbits/sec    0   1.11 MBytes
[  5]   4.00-5.00   sec   112 MBytes   944 Mbits/sec    0   1.11 MBytes
[  5]   5.00-6.00   sec   111 MBytes   933 Mbits/sec    0   1.11 MBytes
[  5]   6.00-7.00   sec   111 MBytes   933 Mbits/sec    0   1.17 MBytes
[  5]   7.00-8.00   sec   111 MBytes   933 Mbits/sec    0   1.17 MBytes
[  5]   8.00-9.00   sec   111 MBytes   933 Mbits/sec    0   1.17 MBytes
[  5]   9.00-10.00  sec   111 MBytes   933 Mbits/sec    0   1.17 MBytes
- - - - - - - - - - - - - - - - - - - - - - - - -
[ ID] Interval           Transfer     Bitrate         Retr
[  5]   0.00-10.00  sec  1.09 GBytes   936 Mbits/sec    0             sender
[  5]   0.00-10.00  sec  1.09 GBytes   933 Mbits/sec                  receiver

iperf Done.

Note that by default iperf3 uses port 5201.

We can change that:

iperf3 -p 11111 -s
iperf3 -p 11111 -c ip.of.iperf.server


  Note:
This will be OK on your local LAN but you will need to modify firewalls to use outside your LAN which is beyond the scope of this HowTo.


Be very careful to note the differences between MBs and Mbs particularly when checking your ISP bandwidth.

8 Mbs = 1 MBs

A Gigabit network is likely to have around 950Mbits/sec

Uninstall

yum remove iperf3