【发布时间】:2014-12-01 22:18:54
【问题描述】:
我们的一个应用程序使用跨平台 TCP 连接层。该层具有连接压力测试。测试启动了大约 20 个客户端线程和大约 20 个服务器线程;然后每个客户端使用几个随机选择的服务器线程进行连接/小数据交换/关闭。
测试针对所有四种连接变体(IPv4 到 ipv4、ipv6 到 ipv6、ipv4 到双模式和 ipv6 到双模式)完成。除了一台特定的 64 位 Linux 机器四台机器都运行 Redhat 2.6.18-8.el5 之外,它在任何地方都可以传播。 IPv4 连接(到 ipv4 和到双模式)在 这台机器 这些机器上传递,但 IPv6 只能处理它应该能够处理的大约十分之一。它主要是超时错误,还有一些连接重置错误。
CPU、内存、描述符等不是问题。 我检查了这台机器上的网络设置,似乎没有任何问题。
使用 localhost 与主机名没有任何改变。 (特别是,我排除了有故障的网卡,因为它在环回时失败。)
netstat 没有显示异常。 (TIME_WAIT 中有很多套接字,但考虑到测试的性质,这是意料之中的。)
如果您有任何关于这个问题的想法,我将不胜感激。
【问题讨论】:
-
考虑一下 EL5 上的 IPv6 堆栈是否陈旧且没有经过良好调整并且永远无法与更现代的代码相比的可能性。
-
是的,我们已经得出这个结论,并且正在将我们的最低系统要求提高到 RHEL5.3。