Date: Sun, 27 Feb 2011 15:43:53 -0600 (CST) From: Robert Bonomi <bonomi@mail.r-bonomi.com> To: cyber366@gmail.com Cc: freebsd-questions@freebsd.org Subject: Re: FreeBSD Performance Message-ID: <201102272143.p1RLhr0J027801@mail.r-bonomi.com> In-Reply-To: <D43A1DFD-04C5-44DD-8AB7-6E3FD6CEA582@gmail.com>
next in thread | previous in thread | raw e-mail | index | archive | help
> From owner-freebsd-questions@freebsd.org Sun Feb 27 14:54:09 2011 > From: David <cyber366@gmail.com> > Date: Sun, 27 Feb 2011 15:46:03 -0500 > To: freebsd-questions@freebsd.org > Subject: FreeBSD Performance > > Hello All: > > I am curious... does anyone know of a reasonably priced commodity server > capable of sourcing/sinking 10 Gbps of data from/to disk via 2 x 10 GE > network interfaces? Any ideas on how hard this would be to do with > FreeBSD? > > I know of a proprietary linux-based system, but looking for open-source > FreeBSD based system. A lot depends on what you need to do with the data. Do you need just the 'contents' of the network packets -- i.e. are you trying to send/recieve a single stream of data -- or do you need complete headers, augmented with timestamps, such that you can re- construct/replay what was 'seen on the wire'? Is the box 'dedicated' to receiving (or sending), and does -nothing-else- while that operation is in process? or do you need to sample the data in real-time as well? Another question is _how_long_ you need to handle the 2x10gbit/sec of data. a few seconds? a few tens of seconds? minutes? hours? If you need to 'go to disk' in real-time, you're looking at needing at least 3-4 gigabyte/sec of bandwith to disk. No commodity drives provide that kind of capacity, so you're looking at multiple drives 'in parallel' -- the logical equivalent of a 'striped' RAID array. Probably 12-16 spindles paralleled. Best handled with _hardware_ raid, directly in the disk controller, but I don't know of a commodity controller that supports enough spindles to give that bandwidth. This means one is best off doing it in the application softwre itself, rather than trusting the O/S to get it right. You're also looking at a _big_ disk array. Around 200 gigs for ONE MINUTE of data. Need 'only' an hour? That's merely 12 terabytes. The O/S is -relatively- unimportant. <wry grin> You need _good_ network cards, with good drivers -- preferably ones where most of the network stack can be off-loaded onto the card itself. You also need good disk controllers, ideally semi-autonomous (like SCSI), with fairly large data buffers.
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201102272143.p1RLhr0J027801>