I'm writing an HTTP server (relax, it's a special purpose server, I don't want to reinvent the wheel..)

The tester(client) machine is connected with a 10Gb connection to the server. Testing showed great performance, but then I thought I'm going create some more tests which has resemblence to a real world environment, so I used TC to set the RTT for clients, like this:

tc qdisc add dev eth1 root netem delay 50ms

If I test it with a couple of hundred clients (either with ab or with my test program) it works fine and fast.. but if I use more than a 1000 clients the speed starts the drop very rapidly, something I haven't observed without TC.

Is this normal? Is it possible to simulate a lot of clients with moderate RTT using just one test machine? If not, how should I test my app?

link|improve this question

50% accept rate
Are you stuck to Linux' tc? There're dummynet + pf altq on BSD. – poige Jun 30 '11 at 15:16
No, but I prefer linux since it's already set up. Is this BSD solution capable of handle 10Gb of traffic? I want to saturate the link as much as possible... – yi_H Jun 30 '11 at 15:24
10G is possible but it would require load distribution, I think. – poige Jul 2 '11 at 3:54
Is this some limitation in the IP stack of the kernel? Could it be resolved by increasing the size of some queue in the kernel, possibily with recompilation? I would like to know what's going on behind the scenes. – yi_H Jul 2 '11 at 9:59
Dig the net for PCI(-X) throughput at the very beginning. There're tons of info regarding high-speed network. See that: lists.freebsd.org/pipermail/freebsd-net/2011-June/029013.html – poige Jul 2 '11 at 17:20
show 1 more comment
feedback

Know someone who can answer? Share a link to this question via email, Google+, Twitter, or Facebook.

Your Answer

 
or
required, but never shown

Browse other questions tagged or ask your own question.