0
votes

One of our applications uses a cross-platform TCP connectivity layer. That layer has a connectivity stress-test. The test launches about 20 client threads and about 20 server threads; then each client does a connect/small-data-exchange/close with several randomly chosen server threads.

The test is done for all four connectivity variants (IPv4 to ipv4, ipv6 to ipv6, ipv4 to dual-mode, and ipv6 to dual-mode). It passes on everywhere except on one particular 64-bit Linux machine four machines all of which are running Redhat 2.6.18-8.el5. IPv4 connectivity (both to ipv4 and to dual-mode) passes on this machine these machines, but IPv6 can only handle about a tenth of what it should be able to. Its gets mostly timeout errors, with a few connection-reset errors.

CPU, memory, descriptors, etc. are not the issue. I've reviewed the network settings on this machine, nothing seems to have been messed with.

Using localhost vs host name changes nothing. (In particular, I'm ruling out a faulty network card, as it fails on loop-back.)

netstat shows nothing unusual. (A lot of sockets in TIME_WAIT, but that's expected given the nature of the test.)

I'd appreciate any thoughts on what the issue could be.

1
Consider the possibility that the IPv6 stack on EL5 is old and not well tuned and will never perform comparably to more modern code.Michael Hampton
Yes, we've come to that conclusion, and are moving our minimum system requirements up to RHEL5.3.Underhill

1 Answers

0
votes

IPv6 on RHEL5.0 cannot handle load. Requirements for our app moved up to RHEL 5.3.