在 Azure 上托管大量访问 SQL Azure 数据库的 WCF REST 服务。我看到 ServicePointManager.UseNagleAlgorithm 设置为 true。我知道将其设置为 false 会加快对表存储的调用(插入记录 < 1460 字节) - 以下链接讨论了它。
我的问题 - 禁用 Nagle 算法也会加快我对 SQL Azure 的调用速度吗?
在 Azure 上托管大量访问 SQL Azure 数据库的 WCF REST 服务。我看到 ServicePointManager.UseNagleAlgorithm 设置为 true。我知道将其设置为 false 会加快对表存储的调用(插入记录 < 1460 字节) - 以下链接讨论了它。
我的问题 - 禁用 Nagle 算法也会加快我对 SQL Azure 的调用速度吗?
Nagle 的算法都是关于将 tcp 级别的数据缓冲到较小的数据包中,并且与记录大小无关。您可能正在向表存储写入行,例如 1300 字节的数据,但是一旦包含 tcp 标头信息、内容序列化等,传输的数据可能会大于 1460 字节的阈值。
在任何情况下:最终结果是,当启用算法时,您可能会看到高达 500 毫秒的写入延迟,因为数据被缓冲,导致网络上的 tcp 数据包减少。
禁用 Nagle 的算法可能有助于您访问 SQL Azure,但您可能需要进行一些基准测试,以查看您的吞吐量是否受到基于您正在执行的读/写类型的影响。使用必要的 SQL 命令文本对 SQL Azure 的调用可能会导致数据包足够大,禁用 nagle 不会产生任何影响。