Re: Dropping Packets in 2.6.17

Danial Thom
2006-06-22T15:03:59Z

--- Pádraig Brady <P@draigBrady.com> wrote:

> Danial Thom wrote:
> > I'm trying to make a case for using linux as
> a
> > network appliance, but I can't find any
> > combination of settings that will keep it
> from
> > dropping packets at an unacceptably high
> rate.
> > The test system is a 1.8Ghz Opteron with
> intel
> > gigE cards running 2.6.17. I'm passing about
> 70K
> > pps through the box, which is a light load,
> but
> > userland activities (such as building a
> kernel)
> > cause it to lose packets, even with backlog
> set
> > to 20000. I had the same problem with 2.6.12
> and
> > abandoned the effort. Has anything been done
> > since to give priority to networking? You
> can't
> > have a network appliance drop packets when
> some
> > application is gathering stats or a user is
> > looking at a graph. What tunings are
> available?
>
> For reference with 2.4.20 on a dual 3.4GHz xeon
> and 2 x e1000 cards, I was able to capture,
> classify
> and do sophisticated statistical calculations
> on
> 625Kpps per interface (1.3 million packets per
> second).
> The bottleneck at this point was memory
> bandwidth.
> Allowing some drops the average rate went up to
> the
> PCI bottleneck of about 850kpps/port.
> Classification and Computation was done in
> userspace.
>
> Note there is a max interrupt rate of around
> 80K/s
> on x86 at least (not sure about opteron), so
> make
> sure you're using NAPI. /proc/interrupts will
> show your interrupt rate.
>
> If the packets go to userspace, make sure
> you're using
> CONFIG_PACKET_MMAP

Unfortunately I can do that much with FreeBSD 4.x
with 1 2.0Ghz opteron, so its not a very
compelling case to have to spend twice as much on
hardware to use LINUX. However 2.4 seemed much
better than 2.6 in this regard. 2.6 wants to drop
a lot more packets. The goal of using 2.6 is to
utilize DP better, but it obviously has to
perform better than a UP Freebsd box.

What ITR setting are using for the e1000 driver?

># Lots of kernel memory needed for e1000
>vm.min_free_kbytes = 65535

I'm curious as to why a vm setting is useful, as
it doesn't seem that the e1000 driver uses
virtual memory? Since rings are replenished with
sk_buffs, and sk_buffs have to be contiguous, how
does vm come into play?

DT

__________________________________________________
Do You Yahoo!?
Tired of spam? Yahoo! Mail has the best spam protection around