- (iperf/ntttcp) Microsoft не рукомендует использование iperf3 на Windows в пользу использования ntttcp (в первую очередь)/ctstraffic – iperf3 оффициально на винде не поддерживается (в отличии от второй версии), он обычно использует прослойку в виде cygwin и нестандартные вызовы сетевого стека – первое может накладывать задержку, второе не эмулирует реальные приложения. Если этих недостатков недостаточно и надо использовать – надо качать актуальную версию для windows, а не ту, которая на iperf.fr.
https://techcommunity.microsoft.com/t5/networking-blog/three-reasons-why-you-should-not-use-iperf3-on-windows/ba-p/4117876 James Kehr here with the Microsoft Commercial Support – Windows Networking team. This article will explain why you should not use iPerf3 on Windows for synthetic network benchmarking and testing. Followed by a brief explanation of why you should use ntttcp and ctsTraffic instead.
В целом утилита возможна для получения “пристрелочных” результатов как замена iperf – генерирует raw TCP/UDP трафик (не HTTP) с преднастроенным payload (AAA…) по указанному количеству потоков между серверной и клиентской частью.
Сотрудники Microsoft авторы утилиты и MS именно ее рекомендует использовать для throughput тестирования в Azure.
При базовом сравнении с IxChariot результаты были аналогичны.
When testing network throughput performance in Azure, it's best to use a tool that targets the network for testing and minimizes the use of other resources that could impact performance. NTTTCP is recommended. For the purposes of this test, the two VMs should be in either the same Proximity Placement Group or the same Availability Set so that we can use their internal IPs and exclude the Load Balancers from the test. It is possible to test with the VIP but this kind of testing is outside the scope of this document.
Установка
# sudo apt-get update # sudo apt install git # sudo apt install gcc git clone https://github.com/Microsoft/ntttcp-for-linux cd ntttcp-for-linux/src make && make install ntttcp -h # help
Пример тестирования в 64 потока/сессии на гигабитном канале
# server root@serv-02:~/ntttcp-for-linux/src# ./ntttcp -r -p 500 NTTTCP for Linux 1.4.0 --------------------------------------------------------- 19:11:44 INFO: 17 threads created 19:11:49 INFO: Network activity progressing... 19:12:49 INFO: Test run completed. 19:12:49 INFO: Test cycle finished. 19:12:49 INFO: ##### Totals: ##### 19:12:49 INFO: test duration :60.00 seconds 19:12:49 INFO: total bytes :6923668472 19:12:49 INFO: throughput :923.15Mbps 19:12:49 INFO: retrans segs :0 19:12:49 INFO: cpu cores :12 19:12:49 INFO: cpu speed :1895.496MHz 19:12:49 INFO: user :0.53% 19:12:49 INFO: system :3.08% 19:12:49 INFO: idle :95.02% 19:12:49 INFO: iowait :0.01% 19:12:49 INFO: softirq :1.36% 19:12:49 INFO: cycles/byte :9.81 19:12:49 INFO: cpu busy (all) :46.72% --------------------------------------------------------- # client root@serv-01:~/ntttcp-for-linux/src# ntttcp -s10.3.1.29 -p 500 NTTTCP for Linux 1.4.0 --------------------------------------------------------- 19:11:49 INFO: 64 threads created 19:11:49 INFO: 64 connections created in 3539 microseconds 19:11:49 INFO: Network activity progressing... 19:12:49 INFO: Test run completed. 19:12:49 INFO: Test cycle finished. 19:12:49 INFO: 64 connections tested 19:12:49 INFO: ##### Totals: ##### 19:12:49 INFO: test duration :60.00 seconds 19:12:49 INFO: total bytes :6938820608 19:12:49 INFO: throughput :925.17Mbps 19:12:49 INFO: retrans segs :12086 19:12:49 INFO: cpu cores :12 19:12:49 INFO: cpu speed :1895.582MHz 19:12:49 INFO: user :0.03% 19:12:49 INFO: system :0.38% 19:12:49 INFO: idle :97.73% 19:12:49 INFO: iowait :0.01% 19:12:49 INFO: softirq :1.86% 19:12:49 INFO: cycles/byte :4.46 19:12:49 INFO: cpu busy (all) :4.88% --------------------------------------------------------- # server ~# netstat -na | grep 10.3.1.28 | wc -l 65