Iperf: Тестирование пропускной способности канала связи
В этой публикации будет рассмотрен один из наиболее популярных способов тестирования пропускной способности канала связи.
Задачу тестирования пропускной способности обычно необходимо решать в тех ситуациях, когда нужно проверить потенциально возможную максимальную скорость передачи информации от одного хоста до другого хоста с учётом всего промежуточного оборудования. Или же, например, в сценариях тестирования производительности клиентов за VPN.
Общая схема тестируемого сценария следующая:
В качестве операционной системы здесь будет использоваться Linux Ubuntu 22.04.
Настройка на стороне сервера
Обновим метаинформацию по репозиториям и установим iperf3:
sudo apt update sudo apt install -y iperf3
Запустим сервер iperf на прослушивание подключения от клиентов по всем доступным IP-адресам:
sudo iperf3 -s 0.0.0.0
Убедитесь, что порт TCP/5201 не закрыт брандмауэром.
Теперь можно переходить к тестированию со стороны клиентов.
Запуск iperf на клиенте Linux
Обновим метаинформацию по репозиториям и установим iperf3:
sudo apt update sudo apt install -y iperf3
Запустим тест производительности канала связи до сервера iperf. Тестирование буем выполнять в течении одной минуты:
sudo iperf3 -c 10.10.10.71 -V -t 60 Linux task 5.15.0-41-generic #44-Ubuntu SMP Wed Jun 22 14:20:53 UTC 2022 x86_64 Control connection MSS 1448 Time: Sat, 16 Sep 2023 10:43:27 GMT Connecting to host 10.10.10.71, port 5201 Cookie: kmijzbq5bc2oiync7ftnwbdetvmep76gfcb7 TCP MSS: 1448 (default) [ 5] local 10.10.10.35 port 44954 connected to 10.10.10.71 port 5201 Starting Test: protocol: TCP, 1 streams, 131072 byte blocks, omitting 0 seconds, 60 second test, tos 0 [ ID] Interval Transfer Bitrate Retr Cwnd [ 5] 0.00-1.00 sec 89.2 MBytes 748 Mbits/sec 652 90.5 KBytes [ 5] 1.00-2.00 sec 74.3 MBytes 623 Mbits/sec 291 53.7 KBytes [ 5] 2.00-3.00 sec 89.4 MBytes 750 Mbits/sec 613 228 KBytes [ 5] 3.00-4.00 sec 174 MBytes 1.46 Gbits/sec 375 346 KBytes [ 5] 4.00-5.00 sec 289 MBytes 2.42 Gbits/sec 100 525 KBytes <...> [ 5] 57.00-58.00 sec 119 MBytes 996 Mbits/sec 618 338 KBytes [ 5] 58.00-59.00 sec 91.2 MBytes 765 Mbits/sec 1064 198 KBytes [ 5] 59.00-60.00 sec 104 MBytes 870 Mbits/sec 490 91.9 KBytes - - - - - - - - - - - - - - - - - - - - - - - - - Test Complete. Summary Results: [ ID] Interval Transfer Bitrate Retr [ 5] 0.00-60.00 sec 6.75 GBytes 966 Mbits/sec 28107 sender [ 5] 0.00-60.00 sec 6.75 GBytes 966 Mbits/sec receiver CPU Utilization: local/sender 12.0% (0.0%u/12.0%s), remote/receiver 4.4% (0.0%u/4.4%s) snd_tcp_congestion cubic rcv_tcp_congestion cubic iperf Done. root@task:/home/roman#
Как видно по результатам выше – средняя скорость передачи данных по каналу связи немного не дотягивает до одного гигабита в секунду.
Запуск iperf на клиенте Windows
Для запуска клиента iperf на Windows предварительно необходимо загрузить дистрибутив.
Распаковываем архив:
И запускаем тест производительности канала:
iperf3.exe -c 10.10.10.71 -V -t 60 C:\tmp\iperf-3.1.3-win64>iperf3.exe -c 10.10.10.71 -V -t 60 iperf 3.1.3 CYGWIN_NT-10.0 DESKTOP-QQRNKJQ 2.5.1(0.297/5/3) 2016-04-21 22:14 x86_64 Time: Sat, 16 Sep 2023 10:51:44 GMT Connecting to host 10.10.10.71, port 5201 Cookie: DESKTOP-QQRNKJQ.1694861504.261775.29 TCP MSS: 0 (default) [ 4] local 10.10.10.45 port 51794 connected to 10.10.10.71 port 5201 Starting Test: protocol: TCP, 1 streams, 131072 byte blocks, omitting 0 seconds, 60 second test [ ID] Interval Transfer Bandwidth [ 4] 0.00-1.00 sec 60.8 MBytes 509 Mbits/sec [ 4] 1.00-2.00 sec 97.4 MBytes 817 Mbits/sec [ 4] 2.00-3.00 sec 105 MBytes 880 Mbits/sec [ 4] 3.00-4.00 sec 124 MBytes 1.04 Gbits/sec [ 4] 54.00-55.00 sec 81.0 MBytes 680 Mbits/sec [ 4] 55.00-56.00 sec 86.4 MBytes 723 Mbits/sec [ 4] 56.00-57.00 sec 109 MBytes 915 Mbits/sec [ 4] 57.00-58.00 sec 124 MBytes 1.04 Gbits/sec [ 4] 58.00-59.00 sec 104 MBytes 875 Mbits/sec [ 4] 59.00-60.00 sec 63.2 MBytes 530 Mbits/sec - - - - - - - - - - - - - - - - - - - - - - - - - Test Complete. Summary Results: [ ID] Interval Transfer Bandwidth [ 4] 0.00-60.00 sec 4.85 GBytes 694 Mbits/sec sender [ 4] 0.00-60.00 sec 4.85 GBytes 694 Mbits/sec receiver CPU Utilization: local/sender 30.0% (1.8%u/28.2%s), remote/receiver 2.9% (0.0%u/2.9%s) iperf Done. C:\tmp\iperf-3.1.3-win64>
Тестирование пропускной способности канала связи завершено.