On Fri, 23 Oct 2009, Rainer Gerhards wrote:

>> For the record, changing the sync behavior of rsyslog DOES fix the
>> original complaint. When we have file sync disabled we see up to 30
>> second pauses between writes to files which get multiple messages per
>> second delivered to the rsyslog host.
>
> There is nothing in the log that points to rsyslog doing these delays.
>
> So my conclusion really is that you need to look at the NFS layer. To me, it
> looks like NFS does some local caching, and maybe 30 seconds is the timeout
> at which NFS writes data from files that are constantly being written in
> short intervals. With sync, NFS probably writes and rewrites each block as
> David has said, thus resulting in the far larger i/o footprint. But I am far
> from being a NFS expert, so it would probably make sense to ask one ;)

this reminded me of something.

a standard complient NFS implementation would require that any write to a 
NFS volume go all the way to the destination and be safe on disk before 
the write call returns to the calling program.

this doesn't mean when you do a fsync, it means each individual write 
call.

for the program to think the data has been written and it not be available 
on the NFS drive to other systems there has to be some non-standard 
caching in place here.

note that unless you have a high-end NFS server that includes some 
battery-backed ram on it, standard complient behavior also means a very 
low write transaction rate.

note that the caching could be on the reader machines instead of on the 
writer, and it could be something like caching of the metadata (including 
size and last modified timestamp)

David Lang
_______________________________________________
rsyslog mailing list
http://lists.adiscon.net/mailman/listinfo/rsyslog
http://www.rsyslog.com

Reply via email to