Skip to Content.
Sympa Menu

freetds - RE: [freetds] FreeBSD 5.0 performance problems with TCP_NOPUSH

freetds AT lists.ibiblio.org

Subject: FreeTDS Development Group

List archive

Chronological Thread  
  • From: "ZIGLIO, Frediano, VF-IT" <Frediano.Ziglio AT vodafone.com>
  • To: "FreeTDS Development Group" <freetds AT lists.ibiblio.org>
  • Subject: RE: [freetds] FreeBSD 5.0 performance problems with TCP_NOPUSH
  • Date: Tue, 15 Mar 2005 09:02:02 +0100

>
> >From my research on the FreeBSD platform you can't toggle
> TCP_NOPUSH to
> indiciate flushing of buffers like you can with TCP_CORK on other
> platforms.
>
> When I compile with the nopush options I get very long delays
> (>2sec) for
> some queries. Commenting them out the delays go away.
>
> My vote is for yanking NOPUSH for FreeBSD... sound reasonable?
>
> Besides nagle should absorb most of the performance hit
> associated with
> short writes?
>
> Have Fun!
> Peter

I don't have FreeBSD to test with. What I did is to search on internet
an option similar to TCP_CORK. Some mails (4 year ago!!) reported that
newer behavior of TCP_NO_PUSH was equal to TCP_CORK. Today I tried to
search again and I found a patch that add support for TCP_CORK even to
FreeBSD... I don't know if this patch has been committed.

You tested that TCP_NOPUSH under FreeBSD 5.0 do not work correctly so
would be so kind to try with

/* Try to use TCP_CORK on *BSD */
#elif (defined(__FreeBSD__) || defined(__GNU_FreeBSD__) ||
defined(__OpenBSD__)) && defined(TCP_CORK)
#define USE_CORK 1

instead of

/* On *BSD use TCP_NOPUSH (same bahavior of TCP_CORK) */
#elif (defined(__FreeBSD__) || defined(__GNU_FreeBSD__) ||
defined(__OpenBSD__)) && defined(TCP_NOPUSH)
#define USE_CORK 1
#define TCP_CORK TCP_NOPUSH

(net.c) ??

freddy77




Archive powered by MHonArc 2.6.24.

Top of Page