我们有一个专门的服务器租用在一个数据中心与Debian 7,内核3.2。
我们使用其中一台服务器作为数据库服务器。 我们的应用程序服务器和数据库服务器之间的networking不是专用于我们的,而是由数据中心的其他客户使用的。
我们时常会认识到这条线上的TCP重传。 我们认为这是由于拥塞或ddos攻击。 我们的提供商试图防止攻击,但当然并不总是成功。
无论如何。 通常,我们的应用程序服务器在20毫秒内从数据库获取结果,因为数据库服务器速度非常快,往返时间(RTT)平均值为0.3毫秒(因此小于1毫秒)。
当一个TCP数据包在这一行中丢失时,重传超时(RTO)将会启动。它由往返时间计算,但至less为200ms。 所以当一个数据包需要重新传输时,我们有220毫秒的时间才能让我们的应用服务器获取数据,这只是因为RTO。
对我来说rto_min = 200ms似乎是在1ms以内rtt链接的高点。
可以像这样使用ip来设置rto_min:
ip route change default via 144.76.176.65 dev eth0 rto_min 5ms
RTO仍然可以计算,但是由于我们的RTT非常小,可能会降到5毫秒。
我应该考虑这个还是有其他的TCP陷阱我会陷入rto_min设置这么小? rto_min的合理价值是什么?还是最好不要碰它?