I created an issue tracker for this: https://github.com/rsyslog/rsyslog/issues/204
2014-12-23 21:33 GMT+01:00 Marc Fournier <[email protected]>: > Excerpts from David Lang's message of 2014-12-21 07:24:36 +0100: > > On Sat, 20 Dec 2014, Marc Fournier wrote: > > > > > Excerpts from David Lang's message of 2014-12-19 18:25:27 +0100: > > >> > > >> On Fri, 19 Dec 2014, Marc Fournier wrote: > > >> > > >>> - no rsyslog running: 15k to 17k ldap operations/second > > >>> - rsyslog with above config, except for MainMsgQueueWorkerThreads > back > > >>> to 1: down to 7.5k ops/s > > >> > > >> wihtout rsyslog running, there shouldn't even be a /dev/log to write > to, so any > > >> logging should be a noop. > > >> > > >> are you running systemd by any chance? > > > > > > No. All this is on an up to date rhel6, which predates systemd. > > > > > > I basically wanted to compare the throughput of openldap with vs > without > > > logging. > > > > > > My point here is that openldap has no way of knowing that nothing is > > > reading /dev/log. The same code paths leading to syslog() are used, > etc. > > > It apparently just suffers from the performance issues downstream. > > > > well, if rsyslog isn't running and /dev/log doesn't exist, openldap may > be > > short-circuting the logging output as it detects that there isn't > anyplace to > > write to > > Browsing through openldap's code, the logging part seems pretty basic. > One call to openlog() at initialisation time, then calls to syslog() via > wrapper functions. I'm not very familiar with this codebase, but it > really doesn't seem to do anything fancy like you suggest. > > I tried running openldap with the "loglevel none" directive, and I reach > 30k ops/sec (as opposed to 15k with logging enabled but no /dev/log). So > if openldap does some sort of short-circuit in this case, there > definitely is room for improvement... > > > > >> let's simplify the config more, try making it just > > >> > > >> module(load="impstats" log.syslog="off" > log.file="/var/log/impstats.log" resetCounters="off" interval="5") > > >> module(load="imuxsock" SysSock.RateLimit.Interval="0") > > >> $MaxMessageSize 2k > > >> $MainMsgQueueDequeueBatchSize 4096 > > >> $RepeatedMsgReduction off > > >> > > >> *.* ~ > > >> > > >> The next step I would try is to change the parser settings to avoid > wasting > > >> effort trying to parse the message, but I would be a bit surprised if > that was > > >> the problem here. > > > > > > Thanks ! I'll give this a try on monday. > > I tried this. It performed slightly less well (around -10%) than the > version with "$MainMsgQueueType LinkedList" I reported the other day. > > Thanks ! > > Cheers, > Marc > _______________________________________________ > rsyslog mailing list > http://lists.adiscon.net/mailman/listinfo/rsyslog > http://www.rsyslog.com/professional-services/ > What's up with rsyslog? Follow https://twitter.com/rgerhards > NOTE WELL: This is a PUBLIC mailing list, posts are ARCHIVED by a myriad > of sites beyond our control. PLEASE UNSUBSCRIBE and DO NOT POST if you > DON'T LIKE THAT. > _______________________________________________ rsyslog mailing list http://lists.adiscon.net/mailman/listinfo/rsyslog http://www.rsyslog.com/professional-services/ What's up with rsyslog? Follow https://twitter.com/rgerhards NOTE WELL: This is a PUBLIC mailing list, posts are ARCHIVED by a myriad of sites beyond our control. PLEASE UNSUBSCRIBE and DO NOT POST if you DON'T LIKE THAT.

