FreeBSD problems and preliminary ways to solve
Slawa Olhovchenkov
slw at zxy.spb.ru
Fri Aug 19 09:29:16 UTC 2011
On Fri, Aug 19, 2011 at 09:56:02AM +0100, Robert Watson wrote:
>
> On Fri, 19 Aug 2011, Lev Serebryakov wrote:
>
> >> Our network stack is actually pretty parallel as such things go, and there are
> >> a number of changes in FreeBSD 9.x that extend this work. Most of the
> >> performance work is being done on edge nodes rather than middle nodes -- i.e.,
> >> maxing out multiple 10gbps links serving content, etc, rather than in routing
> >> configurations, though. We also have a strong and growing collection of
> >> 10gbps drivers. You'll find our drivers lifted for many other systems,
> >> including Solaris :-).
> >
> > I need to bribe our admins (OPs) on my paid work to try FreeBSD instead of
> > Solaris on new servers :) We are processing huge amount of multicast streams
> > (up to 2.5-3Gbit/s with 500-1000 bytes packets) and have difficulties not to
> > lose any packets on Solaris :) They tried Linux without success, but FreeBSD
> > is unknown to them.
> >
> > One problem for FreeBSD is that our applications are Java-based... Problems
> > are not in Java, but in Intel drivers (igb / ixgb in FreeBSD terms), which
> > sometimes lose packets with "buffer is not available" diagnostics when
> > consumer is heavily-multithreaded.
>
> Is the issue here that FreeBSD is dropping more packes, or just that FreeBSD
> is reporting that it drops packets? Historically, we've returned ENOBUFS from
> datagram sockets when the interface queue is overflowed, but some other
> systems (most noticeably Linux) simply return success when they drop a packet
> on an outgoing interface queue. You can debate which is the better model, but
> one impact is that sometimes people report errors on FreeBSD that they don't
> see on Linux -- when actually, the same failure is present, we just allow the
> application to learn about it.
Historically, Linux on datagram (UDP) socket allow use select, FreeBSD
-- don't allow. FreeBSD always report 'UDP socket ready to transmit'.
And after try to send packet -- 'oops, ENOBUFS'.
--
Slawa Olhovchenkov
More information about the freebsd-arch
mailing list