WCF在连接到SQL Azure时禁用UseNagleAlgorithm

时间:2012-01-21 16:47:54

标签: wcf azure azure-sql-database wshttpbinding

在Azure上托管一堆访问SQL Azure数据库的WCF REST服务。我看到ServicePointManager.UseNagleAlgorithm设置为true。我知道将此设置为false会加快调用(将记录的插入次数<1460字节)加速到表存储 - 以下link会谈到它。

我的问题 - 禁用Nagle算法是否也会加快我对SQL Azure的调用?

1 个答案:

答案 0 :(得分:3)

Nagle的算法就是将tcp级数据缓冲到较小的数据包中,并且与记录大小无关。您可以将行写入表存储,例如1300字节的数据,但是一旦包含tcp标头信息,内容序列化等,传输的数据可能会大于1460字节的阈值。

在任何情况下:最终结果是,当启用算法时,您可能会看到写入延迟达500毫秒,因为数据被缓冲,导致线路上的tcp数据包减少。

禁用Nagle算法可能有助于您访问SQL Azure,但您可能需要进行一些基准测试,以根据您正在执行的读/写类型来确定您的吞吐量是否受到影响。使用必需的SQL命令文本调用SQL Azure可能会产生足够大的数据包,禁用nagle会产生影响。