On Wed, Mar 26, 2008, michael.dillon@bt.com wrote:
http://docs.rodecker.nl/10-GE_Routing_on_Linux.pdf. He hit a wall at 700K pps and was using two dual core Intel Xeon 64bit 2.33GHz CPUs and 2GB of RAM in a Dell PowerEdge 1950.
Unless I am misreading this, he did not hit a wall. What he did was test a design that was scalable to multiple cores and show that the two core version could not go beyond 700k pps. The next logical question is how much more can you push with larger numbers of cores. The key thing is to use a recent Linux kernel that can share interrupts among multiple cores and to run it on a CPU using MSI interrupts. Since this was written up in January of 2007,
There are people who use Linux for load balancing who also are working on finding how well it can cope with 10G of traffic and they have some anecdotal evidence of 800k pps.
I didn't think the hardware quite worked like that :) The paper doesn't cover -why- he hit a limit on a single core and why two cores are any faster. He didn't do any benchmarking, no oprofile traces, etc. What would be much more interesting is to see where its running out of steam, and why more L1 cache helps. The AMD/Intel difference could be due to how the memory systems operate/differ, but its all conjecture from me at this point. I haven't looked into it in depth. Just a random datapoint, some FreeBSD related people working on commercial systems have noted they were able to achieve 1mil pps on intel gige hardware. Its just not in open source. :) Adrian