2016-07-20 12 views
1

北ヨーロッパのWindows Azure Web RolesでWCFベースのAPIを実行しています。最近では、AWS US Eastで実行されているクライアントとの接続が非常に不安定であるという問題がありました。私たちのAzureインスタンスからのwiresharkダンプは、Azureインスタンスから起こったいくつかのTCP再送信で、TCPパケットが経路のどこかで失われたことを示しました。Azure PaaSでのMTUサイズの設定

AWSの優れたサポートにより、Azureインスタンスがフラグメントサイズ> 1500バイトのジャンボフレームを使用し、パスMTUディスカバリが正しく動作しないことが原因と考えられています。注意すべきは、TLS Helloパッケージは約5000バイトであるため、通常、接続はTLSハンドシェーク(HTTPS上でAPIが実行されます)に既に詰まっているということです。

私の質問は、Azure PaaSでMTUサイズを設定するための推奨方法は何ですか?クラウドファブリックがインスタンスを再配置するときに、インスタンスでnetshコマンドを実行しても永続的ではありません。

また、同様の問題が発生したことがありますか? MTUをデフォルトから下げると、他のクラウドリソース(SQL Azure、Blob Storage、Service Bus)に対するネットワークパフォーマンスの低下が懸念されます。

答えて

0

スタートアップタスクでMTU設定を設定しないのはなぜですか?あなたができるように、また、役割が移動していなかったかどうかを確認し、スクリプトを無視することができ、すべてのスタート/リブート で再度実行します ...

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

ジャンボフレームは、デフォルトで有効になっていません起動時にPSスクリプトを実行し、手動で有効にします。

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

私はそれが何らかの形で役立つことを望みます。

+0

ありがとうございます、試してみましょう!私はあなたのコメントについては、デフォルトで有効になっていないと思っています。テストとして、HTTPSエンドポイントを持つテストWCFサービスを使用して完全にクリーンなクラウドプロジェクトを行い、サイズが1500バイトを超え、DontFragmentフラグが設定されたパケットがはっきり見えます。 PSスクリプトを元に戻すことができるようにする必要があります。 –

0

Azureインスタンスが実際にジャンボフレームを送信していないことが分かります。 Wiresharkによって取得されたパッケージは、TCP large Segment Offloadのためにこれを示しています。これを無効にした後、Wiresharkは適切にフォーマットされたTCPパケットを示します。 AzureとAWSの間に紛失したパッケージを探し求めています。

関連する問題