也许有人可以帮我解决这个问题。 我试图找出是否有任何可以优化的服务器端,以减less数据包丢失的延迟。
环境:Windows 2012客户端,CentOS 6.x服务器[Couchbase],同一个数据中心,具有防火墙穿越的繁忙局域网。 两者都是大容量的物理服务器。
问题:从客户的angular度来看,响应时间在〜1ms左右是很好的分布,但是我们看到200ms的峰值。
networking跟踪显示:
任何想法这200毫秒的延迟来自哪里,以及如何减less它? 我猜想一些tcp延迟的ack,nagle和拥塞/ RTOalgorithm的组合,但是linux内核调整对我而言有点神秘。
任何build议?
是的,wireshark双方,tcpdump,在交换机级别(相当高端的Arista 10G交换机)采取的networking跟踪,在防火墙(Fortinet)上采取的踪迹等等。
问题不在于客户没有收到回复。 这是一个繁忙的networkingstream量突然,所以失去一万个数据包并不意外。 但是即使丢失数据包,我也需要提供一个SLA,这个200毫秒的延迟将会把它丢掉。
我的意思是,在DEV上进行试验,我可以通过路由命令[server-side]将客户端子网的TCP RTO设置为5ms来“解决”这个问题。 有了这个,99.999%的请求在10毫秒内得到了答复,我会见到我的SLA。 好,但是在生产中这样做的缺点是什么? RTO是真正的问题,还是我偶然修复? 这是这个问题的最佳解决scheme,还是有一些更聪明/更好(调整configuration文件?sysctl参数?向迷你神祈祷?)?
RI-感谢