Network performance in a dual CPU system
Marcos Bedinelli
bedinelli at madhaus.cns.utoronto.ca
Mon Feb 13 07:13:51 PST 2006
Hi,
On 10-Feb-06, at 16:39, dima wrote:
> The second CPU wouldn't help you for sure. There's only one [swi1:
> net] kernel thread which deals with all the kernel traffic. The option
> of per-CPU [swi: net] threads was discussed on freebsd-arch@ several
> months ago, but it wouldn't be implemented soon.
> So, the only hardware option is installing the fastest CPU possible.
Ok, the statement above answers my first question clearly and concisely
(although I must confess I am a bit confused after reading Robert
Watson's message).
> There are several software (FreeBSD specific) options though:
> 1. You should surely try polling(4). 50kpps mean 50000 interrupts and
> the same amount of context switches, which are quite expensive.
> 2. FastForwarding. It's the most suitable for you. As I know, Quagga
> inserts its dynamic routes to the system routing table. And
> FastForwarding is aware of routing table and firewall rules. And the
> most exciting: you can switch it on/off without reboot:
> # sysctl net.inet.ip.fastforwarding=1
This morning a tried suggestion number 2.
I had HOST-A running a ping session to HOST-B. Between hosts A and B
there was the heavily loaded FreeBSD machine in question. As soon as I
entered 'sysctl net.inet.ip.fastforwarding=1' the ping session died.
Switching fastforwarding back to 0 resumed the session.
It's very unfortunate we can't afford to have that machine down, even
for a couple of minutes, during daytime. I guess I'll have to read more
about polling and the net.inet.ip.fastforwarding option, before giving
it another try (probably around 3 a.m.)
Thanks for your reply.
Regards,
--
Marcos
More information about the freebsd-net
mailing list