Take the 2-minute tour ×
Server Fault is a question and answer site for professional system and network administrators. It's 100% free, no registration required.

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?

share|improve this question
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... –  Karoly Horvath 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. –  Karoly Horvath 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

Your Answer


By posting your answer, you agree to the privacy policy and terms of service.

Browse other questions tagged or ask your own question.