Freebsd IP Forwarding performance (question, and some info)
[7-stable, current, em, smp]
if at xip.at
Fri Jul 4 11:16:16 UTC 2008
>>> what could cause this?
>> *) kern.polling.idle_poll enabled?
>> *) kern.polling.user_frac ?
>> *) kern.polling.reg_frac ?
>> *) kern.polling.burst_max ?
>> *) kern.polling.each_burst ?
> I tried tons of different values for these and nothing made any significant
> Idle polling makes a difference, allows more pps, but still errors.
> Without idle polling it seems PPS is limited to HZ * descriptors, or 1000 *
> 256 or 512
> but 1000 * 1024 is the same as 512.. 4000 * 256 or 2000 * 512 works but
> starts erroring 600kpps (SMP right now but it happens in UP too)
I have patched src/sys/kern/kern_poll.c to support higher burst_max
#define MAX_POLL_BURST_MAX 10000
When setting kern.polling.burst_max to higher values, the server reach a
point, where cpu-usage goes up without load, so try to keep below this
values. I also have set the network card to 4096 rx-"ram", to have more
room for late polls.
More information about the freebsd-net