чтобы диагностировать разницу в сетевом трафике между двумя местоположениями и нашим основным серверным центром, я использую iperf для регистрации скорости трафика со следующей командой:
iperf -c <server ip> -F 500MB_Test_File.zip -n 500M -y C
заметив различия между скоростью загрузки и загрузки, я хотел использовать -d
option и наткнулся на странное поведение: хотя передача прошла в направлении клиента к серверу, в другом направлении она замерзла и не казалась tiemout. Вот тест, который я сделал, который показывает что это не связано с тем, я использую файл в качестве источника для передачи данных:
$ iperf -c <server IP> -d -i 1
------------------------------------------------------------
Server listening on TCP port 5001
TCP window size: 85.3 KByte (default)
------------------------------------------------------------
------------------------------------------------------------
Client connecting to <server ip>, TCP port 5001
TCP window size: 153 KByte (default)
------------------------------------------------------------
[ 5] local <local ip> port 35144 connected with <server ip> port 5001
[ 4] local <local ip> port 5001 connected with <server ip> port 39967
[ ID] Interval Transfer Bandwidth
[ 5] 0.0- 1.0 sec 9.75 MBytes 81.8 Mbits/sec
[ 4] 0.0- 1.0 sec 10.7 MBytes 89.3 Mbits/sec
[ 5] 1.0- 2.0 sec 10.9 MBytes 91.2 Mbits/sec
[ 4] 1.0- 2.0 sec 10.9 MBytes 91.3 Mbits/sec
[ 5] 2.0- 3.0 sec 11.0 MBytes 92.3 Mbits/sec
[ 4] 2.0- 3.0 sec 10.9 MBytes 91.4 Mbits/sec
[ 5] 3.0- 4.0 sec 11.0 MBytes 92.3 Mbits/sec
[ 4] 3.0- 4.0 sec 10.9 MBytes 91.4 Mbits/sec
[ 5] 4.0- 5.0 sec 11.0 MBytes 92.3 Mbits/sec
[ 4] 4.0- 5.0 sec 10.9 MBytes 91.4 Mbits/sec
[ 5] 5.0- 6.0 sec 11.0 MBytes 92.3 Mbits/sec
[ 4] 5.0- 6.0 sec 10.9 MBytes 91.4 Mbits/sec
[ 5] 6.0- 7.0 sec 10.9 MBytes 91.2 Mbits/sec
[ 4] 6.0- 7.0 sec 10.9 MBytes 91.4 Mbits/sec
[ 5] 7.0- 8.0 sec 11.2 MBytes 94.4 Mbits/sec
[ 4] 7.0- 8.0 sec 10.9 MBytes 91.4 Mbits/sec
[ 5] 8.0- 9.0 sec 11.1 MBytes 93.3 Mbits/sec
[ 5] 9.0-10.0 sec 11.1 MBytes 93.3 Mbits/sec
[ 5] 0.0-10.0 sec 109 MBytes 91.4 Mbits/sec
^C^C
Я использую iperf 2.0.5. Оба клиента и сервера машинах Linux, сервер виртуальных.
EDIT
после MariusMatutiae предложение я начал сервер iperf на клиентской машине, а затем попытался сделать двунаправленный запрос от виртуальной машины, и вот что я получил:
[host@centos ~]$ iperf -c <client_id> -d -i 1
bind failed: Address already in use
------------------------------------------------------------
Client connecting to <client_id>, TCP port 5001
TCP window size: 19.3 KByte (default)
------------------------------------------------------------
[ 4] local <server_id> port 40175 connected with <client_id> port 5001
[ ID] Interval Transfer Bandwidth
[ 4] 0.0- 1.0 sec 11.6 MBytes 97.5 Mbits/sec
[ 4] 1.0- 2.0 sec 9.50 MBytes 79.7 Mbits/sec
[ 4] 2.0- 3.0 sec 10.6 MBytes 89.1 Mbits/sec
[ 4] 3.0- 4.0 sec 11.0 MBytes 92.3 Mbits/sec
[ 4] 4.0- 5.0 sec 11.0 MBytes 92.3 Mbits/sec
[ 4] 5.0- 6.0 sec 10.9 MBytes 91.2 Mbits/sec
[ 4] 6.0- 7.0 sec 11.0 MBytes 92.3 Mbits/sec
[ 4] 7.0- 8.0 sec 10.8 MBytes 90.2 Mbits/sec
[ 4] 8.0- 9.0 sec 8.38 MBytes 70.3 Mbits/sec
[ 4] 9.0-10.0 sec 9.75 MBytes 81.8 Mbits/sec
[ 4] 0.0-10.0 sec 105 MBytes 87.8 Mbits/sec
[host@centos ~]$
Я думал, отлично, команда останавливается сама от себя, но я получаю результаты только в одном направлении. То есть, пока я не посмотрел в машину, где я начал сервер iPerf на этот раз и увидел это:
$ iperf -s
------------------------------------------------------------
Server listening on TCP port 5001
TCP window size: 85.3 KByte (default)
------------------------------------------------------------
[ 4] local <client_ip> port 5001 connected with <server_ip> port 40179
------------------------------------------------------------
Client connecting to <server_ip>, TCP port 5001
TCP window size: 85.0 KByte (default)
------------------------------------------------------------
[ 6] local <client_ip> port 36243 connected with <server_ip> port 5001
[ ID] Interval Transfer Bandwidth
[ 6] 0.0-10.0 sec 45.4 MBytes 38.0 Mbits/sec
[ 4] 0.0-10.2 sec 64.2 MBytes 52.8 Mbits/sec
Я подумал, что, возможно, мне нужно запустить сервер в режиме демона с обеих сторон соединения для двунаправленной команду для работы и в самом деле, я получил аналогичные результаты, только вывода производительность в одной стороне сделки, но как таковой у меня нет никакой способ получить данные о производительности с другой стороны: я запустил демон iperf с -D > iperflog
но журнал не заполняется...
это должно быть так, что iperf должен работать в обеих машинах для двунаправленного запроса, чтобы пройти? Делает bind failed: Address already in use
сообщение я получаю, когда я начинаю клиент iperf и сервер работает на обеих сторонах ключ, как, где проблема может лежать? У меня такое чувство, что то, что я делаю, не должно быть стандартом порядок...