iperf 2.0.5 двунаправленный тестовый вывод TCP вышел из строя

Я использую iperf версии 2.0.5 для проверки пропускной способности TCP между двумя машинами (обе работают под Linux Debian 8). Я использую двойной тест для измерения двунаправленной пропускной способности с помощью параметра -d, --dualtest, и у меня есть оболочка python, которая захватывает результат теста (с использованием регулярных выражений), и я полагаюсь на порядок появления двух результатов в выводе, сообщаемом iperf.

Однако представленные результаты продолжают менять порядок появления без видимой причины. Когда-то они выглядели так:

Client connecting to ServerIP, TCP port 5002
TCP window size: 0.08 MByte (default)
------------------------------------------------------------
[  5] local ClientIP port 53653 connected with ServerIP port 5002
[  4] local ClientIP port 5002 connected with ServerIP port 46306
[ ID] Interval       Transfer     Bandwidth
[  5]  0.0-10.6 sec  3.00 MBytes  2.36 Mbits/sec
[  4]  0.0-10.7 sec  40.8 MBytes  32.0 Mbits/sec

А в другой раз вроде этого:

Client connecting to ServerIP, TCP port 5002
TCP window size: 0.08 MByte (default)
------------------------------------------------------------
[  5] local ClientIP port 54043 connected with ServerIP port 5002
[  4] local ClientIP port 5002 connected with ServerIP port 46372
[ ID] Interval       Transfer     Bandwidth
[  4]  0.0-10.7 sec  40.8 MBytes  32.0 Mbits/sec
[  5]  0.0-10.7 sec  3.00 MBytes  2.36 Mbits/sec

Я установил свой код оболочки, чтобы принять второй, который содержит ожидаемую более высокую полосу пропускания в самой последней строке и другую полосу пропускания в строке прямо перед ней.

  • Как мне установить определенный порядок вывода, сообщаемый iperf?
  • И почему он использует 4 и 5 в качестве идентификатора?
  • Есть ли способ решить, какие числа используются для идентификаторов? Потому что они, кажется, переходят от одного теста к другому. То есть он использует 6 и 7 , например, когда запускается в разное время или с разных компьютеров.

Вот как я запускаю iperf на клиентской машине:

iperf -c  ServerIP  -d -p 5002  -f m

и это на сервере:

iperf -s -p 5002 -D

person ali    schedule 29.08.2016    source источник


Ответы (1)


На самом деле нет контроля над этой последовательностью, поскольку поток репортера (который выводит отчеты) является отдельным потоком от потоков трафика. Поскольку два потока запускаются «одновременно» и работают параллельно, возникает гонка, в которой поток трафика завершается первым.

Кстати, в iperf 2.0.5 есть известные ошибки и улучшения производительности, которые были устранены в 2.0.9.

Боб

person user6595383    schedule 30.08.2016