====== Iperf: Тестирование пропускной способности канала связи ====== В этой публикации будет рассмотрен один из наиболее популярных способов тестирования пропускной способности канала связи. Задачу тестирования пропускной способности обычно необходимо решать в тех ситуациях, когда нужно проверить потенциально возможную максимальную скорость передачи информации от одного хоста до другого хоста с учётом всего промежуточного оборудования. Или же, например, в сценариях тестирования производительности клиентов за VPN. Общая схема тестируемого сценария следующая: {{https://itproblog.ru/wp-content/uploads/2023/09/image-3.png?nolink&}} В качестве операционной системы здесь будет использоваться Linux Ubuntu 22.04. ==== Настройка на стороне сервера ==== Обновим метаинформацию по репозиториям и установим iperf3: sudo apt update sudo apt install -y iperf3 Запустим сервер iperf на прослушивание подключения от клиентов по всем доступным IP-адресам: sudo iperf3 -s 0.0.0.0 Убедитесь, что порт TCP/5201 не закрыт брандмауэром. {{https://itproblog.ru/wp-content/uploads/2023/09/image-4.png?nolink&}} Теперь можно переходить к тестированию со стороны клиентов. ==== Запуск 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# {{https://itproblog.ru/wp-content/uploads/2023/09/image-5-1024x418.png?nolink&}} {{https://itproblog.ru/wp-content/uploads/2023/09/image-6.png?nolink&}} Как видно по результатам выше – средняя скорость передачи данных по каналу связи немного не дотягивает до одного гигабита в секунду. ==== Запуск iperf на клиенте Windows ==== Для запуска клиента iperf на Windows предварительно необходимо [[https://iperf.fr/iperf-download.php#windows|загрузить дистрибутив.]] {{https://itproblog.ru/wp-content/uploads/2023/09/image-7.png?nolink&}} Распаковываем архив: {{https://itproblog.ru/wp-content/uploads/2023/09/image-8.png?nolink&}} И запускаем тест производительности канала: 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> {{https://itproblog.ru/wp-content/uploads/2023/09/image-9.png?nolink&}} {{https://itproblog.ru/wp-content/uploads/2023/09/image-10.png?nolink&}} Тестирование пропускной способности канала связи завершено.