Date: Wed, 17 Mar 2010 23:07:07 +0100 From: Ivan Voras <ivoras@freebsd.org> To: freebsd-net@freebsd.org Subject: Re: Choosing CPU for router Message-ID: <hnrjqc$87a$1@dough.gmane.org> In-Reply-To: <C7C66BFA.244BF%jon.otterholm@ide.resurscentrum.se> References: <a952d5981003170212t1fe7b917x786c4d96cc1b1dad@mail.gmail.com> <C7C66BFA.244BF%jon.otterholm@ide.resurscentrum.se>
next in thread | previous in thread | raw e-mail | index | archive | help
Jon Otterholm wrote: > Den 2010-03-17 10.12, skrev "Gilles WAGNER" <gillesw@gmail.com>: >> 2010/3/17 Andrew Snow <andrew@modulus.org> >>> The Supermicro Atom miniserver is more than enough CPU grunt for this sort >>> of routing/ipfw task. The main reason to go Xeon is if you need ECC RAM, >>> and even then you can get away with just using the cheapest CPU available. > This machine is going to act as access-router serving ~500 FTTH-customers. > About 500Mbit/s and 200kpps. The big issue is Dummynet, around 1000 pipes (2 > pipes/customer). > > I don't think an Atom-based machine can handle this, am I wrong? Yes, don't use an Atom for this. At the very least it will by default come with a Realtek NIC which won't make you particularly happy. 200kpps is not small or trivial load - think about it: 200 kpps per direction on a 2 GHz CPU (to simplify calculations) this means only 10,000 CPU cycles per packet - this must include servicing an interrupt in the incoming path, receiving and parsing the packet, routing it, firewalling it and then processing it by dummynet and scheduling it on output. To put this into perspective, a single context switch can take from ~~1000 CPU cycles to more than 5000 CPU cycles. In short, don't.
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?hnrjqc$87a$1>