MFC of UDP socket performance test

Bruce Evans bde at zeta.org.au
Fri Mar 16 13:21:26 UTC 2007


On Thu, 15 Mar 2007, Marcelo Gardini do Amaral wrote:

> I repeated that performance test done with bind [1] using now Robert's
> MFC [2]. Another tweak that I was supposed to do was to use libthr
> instead of libpthread (via libmap.conf) and build bind with threads
> option. In the new test I did this.
>
> I used the same methodology, same zone file and same server hardware
> that I used in [3].
>
> Server: Dell 1750 Xeon 3.06GHz
> Bind 9.4.0 and NSD 3.0.4
>
> Client: queryperf.c,v 1.8.192.3 2005/10/29 00:21:12
> Dell Optiplex GX620
> 1M NS queries
> ...
> Conclusions:
>
> - I couldn't notice any difference using those patches. Maybe my test
>  set is not adequate for that.
>
> - Bind works better with libthr.
>
> - "bge" NIC still doesn't work well for DNS servers on FreeBSD 6.2, as
>  used to work on FreeBSD 4.11. Even "em" NIC does not have the same
>  performance that used to has on 4.11.

I now get almost identical performance (+-10%) for packet blasting
tests with bge on 4.10, 5.2 (heavily modified), 6.2 and -current and
significant but fairly small changes to bge.  em (unmodified) has
slightly less performance than bge (modified).  This may be because
most things are limited by my buses and CPUs (only 33MHz 32-bit PCI
and only 1 CPU on all machines, except on one that has a braindamaged
bge NIC), but generally I found that the OS version and huge
version-dependent differences in locking from this overheads made
surprisingly little difference.  Changing hardware made a big difference,
but with the same hardware, merging bits of bge back and forth generally
gave the same performance.  Unmodified versions had performance
differences of 100% for small packets.  This is without using polling.
I don't believe in polling and haven't optimized for it, but tested
it a bit and noticed some anomalies in it.

Bruce


More information about the freebsd-performance mailing list