On Sun, Aug 22, 2004 at 11:36:57PM +1000, Russell Coker wrote: > > > In most cases synchronous writes for logs just reduces performance for no > > > benefit. > > > > (I didn't check whether it does this already.) Wouldn't it be possible > > to speed up synchronous syslogging with something like this: > > > > That way, if you get a burst of log messages, the first sync write > > would write out just a single line, and all the next writes would > > write out everything that accumulated in the buffer so far in one > > single sync write. > > Your pseudo-code didn't clearly explain your intent. Oh. Sorry. The idea was that "if you're going to do a sync write anyway, why not write out all waiting messages at the same time, instead of doing a sync write for each and every one of them even if the queue is a hundred messages long." > > That way, you still get sync behaviour, but without the > > whole-disk-roundtrip-per-log-line overhead. > > Usually when there's a lot of logging the performance of the syslogd > itself is not the issue. The problem is that synchronous writes kill > file system performance and interfere with the performance of other > programs in the system. The approach I suggested would still have it make do sync writes, but far less of them when there is a log burst compared to the old method. But yeah, it all comes down to "how important are your log messages to you?" --L