Here is an article I came across for performance testing the FreeBSD kernel. It explains a lot of information and talks about some sysctl variables that can help improve network performance.
The author also said this in an email about the article:
“We didn’t tune for 10GB speeds, but I imagine the principles should all still apply. As you correctly point out, you’ll also probably want to raise the allowable kernel mem size using the “vm.kmem_size” and “vm.kmem_size_max” sysctls to avoid any random kernel panics. We used a kmem size of 500MB which worked flawlessly with our GigE multiflow tests and left us plenty of room to move. This is something you might have to use a bit of trial and error to figure out though to ensure you get something stable. And of course you’re going to want to control the number of flows active at one time based on your kmem setting and hardware constraints…”
You can grab the whole PDF article here.