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