Я создал две виртуальные машины в Azure: одну на востоке Австралии, а другую на юге Бразилии. Две виртуальные машины имеют классическую модель и работают под управлением Ubuntu 16.04. Я создал конечные точки на этих виртуальных машинах и запустил серверно-клиентскую программу (на C ++) на этих виртуальных машинах. Я заметил очень большую задержку. Передача 2 МБ заняла примерно 4 секунды. Мне нужна очень низкая задержка для моего приложения (менее 0,1-0,2 секунды для передачи 2 МБ). Как я могу этого достичь (или даже приблизиться к этому)? Есть ли способ установить приоритет моего сетевого трафика? Есть ли способ купить дополнительную пропускную способность в Azure? Есть ли способ удалить брандмауэр в Azure, который может уменьшить задержку?
Есть ли способ купить дополнительную пропускную способность в Azure?
Какого размера ваша виртуальная машина? Увеличение размера виртуальной машины может увеличить пропускную способность виртуальной машины. Вы могли бы использовать iperf3
для проверки пропускной способности между вашими виртуальными машинами. Вот мой результат. Моя виртуальная машина имеет размер A0.
root@shui:~# iperf3 -c 40.126.252.224
Connecting to host 40.126.252.224, port 5201
[ 4] local 10.0.0.4 port 37260 connected to 40.126.252.224 port 5201
[ ID] Interval Transfer Bandwidth Retr Cwnd
[ 4] 0.00-1.00 sec 360 KBytes 2.95 Mbits/sec 0 55.8 KBytes
[ 4] 1.00-2.18 sec 487 KBytes 3.39 Mbits/sec 0 123 KBytes
[ 4] 2.18-3.00 sec 1.41 MBytes 14.3 Mbits/sec 0 266 KBytes
[ 4] 3.00-4.00 sec 1.17 MBytes 9.83 Mbits/sec 1 282 KBytes
[ 4] 4.00-5.00 sec 600 KBytes 4.91 Mbits/sec 0 283 KBytes
[ 4] 5.00-6.00 sec 1.17 MBytes 9.83 Mbits/sec 0 291 KBytes
[ 4] 6.00-7.18 sec 660 KBytes 4.57 Mbits/sec 0 300 KBytes
[ 4] 7.18-8.00 sec 1.35 MBytes 13.8 Mbits/sec 0 336 KBytes
[ 4] 8.00-9.00 sec 720 KBytes 5.89 Mbits/sec 0 379 KBytes
[ 4] 9.00-10.00 sec 1.70 MBytes 14.2 Mbits/sec 0 442 KBytes
- - - - - - - - - - - - - - - - - - - - - - - - -
[ ID] Interval Transfer Bandwidth Retr
[ 4] 0.00-10.00 sec 9.55 MBytes 8.01 Mbits/sec 1 sender
[ 4] 0.00-10.00 sec 7.96 MBytes 6.67 Mbits/sec receiver
Я тестирую в своей лаборатории, iperf3
был установлен в Azure Ubuntu 16.04. Метод испытания.
На одной виртуальной машине запустите iperf в режиме сервера, вы должны открыть порт 5201 на конечной точке.
$ iperf3 -s
На другой виртуальной машине запустите однопоточный тест:
$ iperf3 -c ip-of-server
Для многопоточного теста:
$ iperf3 -c ip-of-server -P n
Где n = количество ядер в виртуальной машине
Больше результатов теста вы можете сослаться на этот блог.
Есть ли способ установить приоритет моего сетевого трафика?
На основании моих знаний вы можете определить приоритет своей сети по следующим трем аспектам.
1. выберите подходящий размер виртуальной машины
Вы можете протестировать пропускную способность виртуальной машины в своей лаборатории и выбрать подходящий размер виртуальной машины. Вы можете обратиться к этой ссылке:Размеры виртуальных машин Linux для высокопроизводительных вычислений.
2. Оптимизируйте свой код и алгоритмы.
3.Если у вас очень высокие требования к задержке сети, я предлагаю вам выбрать Azure BGP. Вы также можете сослаться на это ссылка на сайт.