[rsyslog] performance optimization (milestone) done

Rainer Gerhards rgerhards at hq.adiscon.com
Wed Jul 1 22:29:08 CEST 2009


> -----Original Message-----
> From: rsyslog-bounces at lists.adiscon.com 
> [mailto:rsyslog-bounces at lists.adiscon.com] On Behalf Of david at lang.hm
> Sent: Wednesday, July 01, 2009 6:59 PM
> To: rsyslog-users
> Subject: Re: [rsyslog] performance optimization (milestone) done
> 
> On Wed, 1 Jul 2009, Rainer Gerhards wrote:
> 
> > Hi all,
> >
> > I just wanted to let you know that I have reached a 
> milestone with my
> > optimizations. My goal of reducing malloc/free calls has 
> now been reached. I
> > need to revisit priorities, but I will probably move away 
> from performance
> > optimization for a while now (maybe some smaller things 
> that I stumble
> > across, but not a real effort).
> >
> > As I have written recently, there is still ample potential 
> for optimization.
> > I will "just" probably not explore it at this point in time.
> >
> > However, I would like to ask one question that could lead 
> to a new effort (in
> > v5). Looking at the queue engine, I see that managing the 
> queue, especially
> > in ultra-reliable mode, requires a lot of effort, what also 
> means a lot of
> > CPU time.
> >
> > If we relax reliability conditions, we could definitely 
> save some time here
> > (probably a real lot!). So my question is what would be the 
> least reliability
> > that you need for a non-audit, high-performance scenario. I 
> can envision that
> > it is sufficient to have this:
> >
> > All messages handed over to the queue will be processed if 
> no system failure
> > occurs and if there is space available inside the queue. 
> All messages are
> > queued in main memory. If messages are tried to be enqueued 
> when the queue is
> > full, these messages will be lost. Message loss victims 
> will be strictly
> > based on order of enqueue (queue full condition) and not 
> severity or any
> > other property (evaluating that would take time, again). Also, it is
> > acceptable to lose unprocessed messages during rsyslogd 
> shutdown, if they
> > cannot be processed within the (configurable) shutdown intervals.
> >
> > Would this make sense for sufficiently important use cases? 
> If so, I could
> > see that (over time!) I implement a very fast queue driver 
> based on that
> > relaxed criteria. With it, I think I could also create a 
> lock-free version
> > (but not immediately), which would definitely be a big 
> performance gain.
> 
> how is this different than what happens today?

Puuuuhhh... In various ways, we have all this go to disk, low/high watermark,
persistence, reliability, discard messages based on priority, slow down
sender, rate limiting ... stuff. All nice and useful, but takes time...

What I described above would be the sole capability, (almost) none of these
bells and whistles (except those that are handled in the action engine, I do
not know out of my head which these are, but a low subset of what I said).

Rainer
> 
> David Lang
> 
> > Feedback is appreciated.
> >
> > The optimized builds are currently in the git master and 
> v5-devel branches,
> > new releases are due soon (but will see that I do at least 
> a bit more doc
> > work before releasing them).
> >
> > Rainer
> > _______________________________________________
> > rsyslog mailing list
> > http://lists.adiscon.net/mailman/listinfo/rsyslog
> > http://www.rsyslog.com
> >
> _______________________________________________
> rsyslog mailing list
> http://lists.adiscon.net/mailman/listinfo/rsyslog
> http://www.rsyslog.com
> 



More information about the rsyslog mailing list