Re: Minimizing dropped UDP packets

From: Mike A. Harris (mharris@opensourceadvocate.org)
Date: Tue Oct 24 2000 - 21:18:01 EST


On Tue, 24 Oct 2000, Frank Hansen wrote:

>Using kernel 2.2.17, I experience lots of dropped UDP packets. The setup
>is as follows:
>UDP packets containing measurement data is sent on 100 Mb Ethernet from
>a embedded device to a Pentium III, 256 MB, IDE based PC with a 3Com
>3C905B network adapter.
>
>The UDP packets always contains 1300 bytes of data, sent at ~5Mbps. The
>process at the PC which receives the data, copies them directly into one
>of two buffers, adding a timestamp at the end. These buffers is shared
>by another process which only purpose is to write full buffers to disk.
>The network task is reniced to the highest priority, the disk task to
>the lowest priority. Each of the two receive buffers are 10 MB.

10Mb? Why on earth make such large buffers? Have you tried your
app with 64k buffers? Likely smoother performance. In any app
I've written, I've never seen any great performance gains by
buffers larger than 64k or so. Then again I don't know what
you're doing that is generating this data. My guess is some kind
of video device.

>Disabling interrupts on the IDE drives seemed to roughly halve the
>number of dropped packets (using /sbin/hdparm -c 1 -d 1 -k 1 -u 1
>/dev/hdx) , but the problem is still far worse than acceptable. The

Sounds like hdio of buffers -> disk are causing packet loss.
Again, I'd make the buffers smaller... Overly large buffers buy
nothing.

>Any suggestions whatsoever would be greatly appreciated. FWIW NT 4.0
>running on the same hardware performs this task flawless, and I will
>have a diffucult time to convice my boss that we should use Linux as
>long as it is outperformed by NT.

Good luck with finding a solution, but you could have left this
last part off. I highly doubt anyone here cares if you or anyone
else chooses NT. I'm just saying this because often people post
a message here claiming to have trouble with Linux, and "false
threaten" to use NT or some other OS. Nobody here cares what OS
anyone uses however, so the general idea is "if another OS does
the job, use it".

That said, I'll bet Linux can do what you want no problem, but
really - use whatever works for the job at hand.

----------------------------------------------------------------------
      Mike A. Harris - Linux advocate - Open source advocate
              Computer Consultant - Capslock Consulting
                 Copyright 2000 all rights reserved
----------------------------------------------------------------------

"If it isn't source, it isn't software." -- NASA

-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
Please read the FAQ at http://www.tux.org/lkml/



This archive was generated by hypermail 2b29 : Tue Oct 31 2000 - 21:00:15 EST