2016-07-20 2 views
1

Мы используем API на основе WCF для Windows Azure Web Roles в Северной Европе. Недавно у нас были проблемы с очень неустойчивыми подключениями к клиенту, работающему на AWS US East. Сброс проводов из нашего примера Azure показал, что пакеты TCP были потеряны где-то вдоль пути с несколькими повторными передачами TCP, происходящими из наших экземпляров Azure.Настройка размера MTU на Azure PaaS

Отличная поддержка AWS помогла нам свернуть, что это, вероятно, вызвано использованием лазурных экземпляров Jumbo Frames с размером фрагментов> 1500 байт и обнаружение MTU пути не работает должным образом. Следует отметить, что обычно соединения будут застревать уже в рукопожатии TLS (наш API работает через HTTPS), поскольку пакет TLS Hello будет составлять около 5000 байт.

Мой вопрос в том, что является рекомендуемым способом настройки размера MTU на Azure PaaS? Запуск команды netsh в экземплярах не будет постоянным, если облачная ткань переместит экземпляры и т. Д.

Кроме того, есть ли у кого-нибудь похожие проблемы? Я беспокоюсь о сниженной производительности сети для других облачных ресурсов (SQL Azure, Blob Storage, Service Bus) при снижении MTU по умолчанию.

ответ

0

Почему вы не устанавливаете конфигурацию MTU при запуске? Это будет работать снова на каждом старте/перезагрузки Вы также можете проверить, если роль не была перемещена, и игнорировать сценарий ...

https://azure.microsoft.com/en-us/documentation/articles/cloud-services-startup-tasks-common/#detect-that-your-task-has-already-run

Jumbo Frames не включена по умолчанию, так что вы можете запустить сценарий PS при запуске и вручную включить его.

Get-NetAdapterAdvancedProperty -DisplayName "Jumbo Packet" | Set-NetAdapterAdvancedProperty –RegistryValue "9014" 

Надеюсь, это поможет в некотором роде.

+0

Спасибо, дадут это попробовать! Мне интересно, почему ваш комментарий не включен по умолчанию. Это определенно не то, что мы включили - в качестве теста мы сделали полностью чистый облачный проект с тестовой службой WCF с конечной точкой HTTPS и четко видим пакеты с размером> 1500 байт и установленным флагом DontFragment. Я думаю, мы должны включить вспять ваш PS-скрипт, чтобы отключить его. –

0

Выключает экземпляры Azure на самом деле не посылает Jumbo Frames. Пакеты, захваченные Wireshark, просто указывают на это из-за TCP large Segment Offload. После отключения Wireshark указывает правильно отформатированные TCP-пакеты. Наша охота за потерянными пакетами между Azure и AWS продолжается.