2012-01-21 10 views
2

SQL Azureデータベースにアクセスする一連のWCF RESTサービスをAzureでホストします。 ServicePointManager.UseNagleAlgorithmがtrueに設定されていることがわかります。これをfalseに設定すると、テーブル記憶域への呼び出し(レコードの挿入< 1460バイト)が高速化されることがわかります。次のようにlinkがこれについて語ります。WCFがSQL Azureに接続中にUseNagleAlgorithmを無効にする

私の質問 - Nagleアルゴリズムを無効にすると、SQL Azureへの呼び出しが高速化されますか?

答えて

3

Nagleのアルゴリズムはすべて、TCPレベルのデータを小さなパケット数にバッファリングすることであり、レコードサイズには結びついていません。たとえば1300バイトのデータをテーブルストレージに書き込むことができますが、TCPヘッダ情報、コンテンツシリアル化などを含めると、送信されるデータは1460バイトのしきい値よりも大きくなることがあります。

いずれの場合でも、データがバッファされているため、アルゴリズムが有効になっているときに最大500msの書き込み遅延が発生する可能性があり、ワイヤでのTCPパケットが少なくなります。

Nagleのアルゴリズムを無効にするとSQL Azureへのアクセスが助長される可能性がありますが、実行中の読み取り/書き込みの種類に基づいてスループットが影響を受けるかどうかを確認するためにベンチマークを行う必要があります。必要なSQLコマンドテキストとともにSQL Azureを呼び出すと、十分な大きさのパケットが発生し、nagleを無効にしても差異が生じない可能性があります。

+0

説明をいただきありがとうございます - WebサービスはEFを使用してSQL Azure DBに書き込みます。したがって、Nagleを無効にすると、最善の場合に役立ちます。つまり、ちょうど2つのintを持つレコードを挿入すると、最悪のケースでは違いが生じません(?) – user529265

関連する問題