由于时间戳,高数据包在build立的连接中被拒绝

我试图build立一个Wowza媒体服务器使用戴尔R710与24GB内存和10Gbit连接,所有的计算说,它应该能够处理大约20k连接,但是当我达到约9000连接,Wowza开始丢,因为它认为他们来不及交付。 我还注意到传入连接的数量减less。

在9000连接时,带宽约为3-4Gbps。 该stream是一个实时stream,所以没有磁盘io。

传入连接的生成速度为每隔3/4秒从同一机架中的其他4台服务器连接1个新连接,因此应该接近无延迟,只有一台交换机将它们连接在一起。

我注意到的一个计数器开始上升,当数据包开始丢弃时,数据packets rejects in established connections because of timestamppackets rejects in established connections because of timestamp

这个柜台是什么意思,我该如何解决这个问题。

我们已经通过了所有的tcp设置,似乎无法find合适的组合来获得超过9000个连接而没有丢包。 我们也检查了交换机和路由器上的所有设置,但找不到罪魁祸首。

操作系统目前是OpenSuse 11.4,我们以前也尝试过Centos 5.6,结果相同。

我们也尝试了Wowza的多个实例来在不同的JVM之间传播负载,但是它仍然是相同的结果。

尝试设置这些内核参数如下:

  • net.ipv4.tcp_tw_recycle = 0
  • net.ipv4.tcp_tw_reuse = 0
  • net.ipv4.tcp_timestamps = 0

tcp_timestamps&tcp_tw_recycle可能会导致“由于时间戳而在build立的连接中拒绝包”。