加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > Windows > 正文

windows-server-2008-r2 – 需要超低延迟,如何最小化?

发布时间:2020-12-13 23:21:40 所属栏目:Windows 来源:网络整理
导读:我有几台 Windows Server 2008 R2计算机充当客户端并连接到同一数据中心的另一台服务器.我无法访问teh服务器.我需要最小化客户端和服务器之间的延迟.它们通过Macromedia Flash(Winsockets)进行通信,并交换非常小的命令(20-30字节).通常的延迟是200-400微秒,
我有几台 Windows Server 2008 R2计算机充当客户端并连接到同一数据中心的另一台服务器.我无法访问teh服务器.我需要最小化客户端和服务器之间的延迟.它们通过Macromedia Flash(Winsockets)进行通信,并交换非常小的命令(20-30字节).通常的延迟是200-400微秒,但根据我的经验和一些测试(使用MS网络监视器),似乎在Flash应用程序中,响应时间通常是几毫秒,接收时间,这不是由于软件.

我怀疑这可能是因为Nagle算法或延迟的ACK.我尝试通过注册表禁用它们,但它似乎对Server 2008 R2没有影响.我知道我可以使用注册表调整MTU和其他一些值:DefaultSendWindow,DefaultReceiveWindow,GlobalMaxTcpWindowSize,TcpWindowSize.我假设我应该尝试将发送缓冲区设置为0并将缓冲区设置为较大的值,这是正确的策略吗?

我拥有最快的CPU,我禁用了网卡的中断审核,我还能做些什么来减少延迟?甚至100微秒对我来说也很重要.

以下是Microsoft针对Windows Server 2008 R2的性能调优指南文档:

http://download.microsoft.com/download/6/B/2/6B2EBD3A-302E-4553-AC00-9885BBF31E21/Perf-tun-srv-R2.docx

该文档中有136页性能调整指南.

您可能还会从support.microsoft.com/kb/214397/en-us获得一些有趣的信息

您也可以尝试禁用Windows过滤平台,这通常不建议使用,但它可能有助于缩短I / O在操作系统中的运行时间.

您还拥有微软已经融入Windows的一系列技术,这些技术专门针对低延迟网络,但其中大部分都是2012年的具体改进,而不是2008 R2:

http://technet.microsoft.com/en-us/library/hh831415.aspx

  1. Data Center Bridging

  2. Data Center Transmission Control Protocol (DCTCP)

  3. Kernel Mode Remote Direct Memory Access (kRDMA)

  4. Network Interface Card (NIC) Teaming

  5. NetworkDirect

  6. Receive Segment Coalescing (RSC)

  7. Receive Side Scaling (RSS)

  8. Registered Input/Output (RIO) API Extensions

  9. Transmission Control Protocol (TCP) Loopback Optimization

  10. Low Latency Workloads Management and Operations

但是只有这么多,你才能用软件调整.只需将硬件升级到Infiniband/RDMA over Converged Ethernet,您就可以通过在Windows注册表中翻转位来大幅减少延迟,这是您永远无法实现的.

最后,这里有一些更直接的东西answering your question about delayed ACK.我不知道这是不是你的问题,但是:

Subkey:
HKEY_LOCAL_MACHINESYSTEMCurrentControlSetServicesTcpipParametersInterfaces

Entry: TcpAckFrequency

Value Type: REG_DWORD,number Valid Range: 0-255 Default: 2
Description: Specifies the number of ACKs that will be outstanding
before the delayed ACK timer is ignored. Microsoft does not recommend
changing the default value without careful study of the environment.

If you set the value to 1,every packet is acknowledged immediately because there is only one outstanding TCP ACK as a segment is just received. The value of 0 (zero) is not valid and is treated as the default,2. The only time the ACK number is 0 is when a segment is not received and the host is not going to acknowledge the data.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读