Я использую 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