Network: ntttcp

  • (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

Leave a Reply