Linux bind / dhcp iowait status
David W. Hankins
David_Hankins at isc.org
Thu Mar 16 21:30:03 UTC 2006
On Wed, Mar 15, 2006 at 09:42:17AM -0500, Tom Greaser wrote:
> Its an Redhat AS 4 update 3 box with mirrored scsi Ultra 320 drives
Most Linux syslog implementations fsync() after every log message was
written before moving on to process the next one.
I've seen this cause problems because eventually the syslog buffers can
fill, and the applications that are trying to log wind up sleeping when
they try to call syslog().
We fsync() before a lease is offered to a client. We do this because
of the way we interpret RFC2131 (some other implementations don't).
BIND also fsync()'s journal files before it responds to a DNS update
request. For very much the same reason...don't say "Yes" unless you
would give the same answer after a reboot.
If syslog is also calling fsync(), it will do it multiple times
inbetween both DHCP's and BIND's. It multiplies your overhead.
At any rate, have a look at your syslog.conf, and if you are funneling
BIND and DHCP traffic through it, try looking at your syslog's manpage
('syslog.conf' versions will differ from syslog-ng versions) to see
what it's doing.
In the syslog.conf case, you might want to configure a - before the
filename (or whatever your manpage says):
You may prefix each entry with the minus ``-'' sign to
omit syncing the file after every logging. Note that you
might lose information if the system crashes right behind
a write attempt. Nevertheless this might give you back
some performance, especially if you run programs that use
logging in a very verbose manner.
I'm not familiar enough with syslog-ng offhand.
David W. Hankins "If you don't do it right the first time,
Software Engineer you'll just have to do it again."
Internet Systems Consortium, Inc. -- Jack T. Hankins
More information about the dhcp-users