Skip site navigation (1)Skip section navigation (2)
Date:      Wed, 10 Feb 1999 16:30:39 -0500 (EST)
From:      "John S. Dyson" <dyson@iquest.net>
To:        dot@dotat.at (Tony Finch)
Cc:        hackers@FreeBSD.ORG
Subject:   Re: PIPE_BUF
Message-ID:  <199902102130.QAA02531@y.dyson.net>
In-Reply-To: <E10Ae9I-0004x0-00@fanf.noc.demon.net> from Tony Finch at "Feb 10, 99 06:14:08 pm"

next in thread | previous in thread | raw e-mail | index | archive | help
Tony Finch said:
> I've been looking at the Apache code for doing buffered writes to
> logs, which it attempts to do in such a way that log records are not
> split across buffer boundaries. It therefore buffers up to PIPE_BUF
> bytes to be written in one go.
> 
> Unfortunately, on FreeBSD this doesn't win us much because our log
> format averages over 200 bytes and PIPE_BUF is only 512 bytes, so
> we'll only be writing at most a couple of records at a time. Other
> systems have PIPE_BUF sizes like 4K (Linux), 5K (Solaris), and 10K
> (IRIX).
> 
> What do I need to worry about if I rebuild the system with a bigger
> PIPE_BUF?
> 
> (Actually, I don't really care about the buffer boundary thing so if
> changing PIPE_BUF is painful I'll just compile Apache to use a bigger
> buffer regardless of PIPE_BUF.)
> 
You can probably get by with compiling with PIPE_BUF being a small multiple
of PAGE_SIZE.  A good system wide compromise might be to set PIPE_BUF to
such a small multiple, and modifying stdio to flush pipes with a smaller buffer
size that that.  That will help the interactive pipe issue, and improve those
processes that go out of their way to maximize performance or produce contiguous
messages.  Make sure that your PIPE_BUF size doesn't conflict with other
manifest constants in the pipe header file.

-- 
John                  | Never try to teach a pig to sing,
dyson@iquest.net      | it makes one look stupid
jdyson@nc.com         | and it irritates the pig.

To Unsubscribe: send mail to majordomo@FreeBSD.org
with "unsubscribe freebsd-hackers" in the body of the message



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?199902102130.QAA02531>