On Tue, 31 Jan 2012, Radu Gheorghe wrote:

Thanks a lot, David. These solutions seem much better than DNS round robin.

@Rainer: I'm having trouble with setting up more exact performance
tests, but the system is supposed to scale to something like 50K
messages per second. And I just assumed that one sever won't handle
the load, especially since these machines are slow.

But you have a good point, because the external program inserts these
logs in ElasticSearch. And I have ElasticSearch on the same server
right now, which I don't have to. Using a dedicated server for Rsyslog
only might not cut it in the long run, but it would probably work well
for a while. More than enough for me to set up a cluster :D

the best thing that you could do for your performance is to commission the writng of an output module that would let rsyslog insert the messages into ElasticSearch instead of doing it with an external program.

At first glance this may seem like a trivial change, but the killer feature that you can take advantage of with an output module is the ability to handle multiple log messages as a single transaction.

I'm not familiar with ElasticSearch, but it's common for databases to be able to handle inserts of 100 or even 1000 records as a single transaction at exactly the same transaction/sec rate as inserting a single record per transaction (or at a very slight reduction in insert rate). I've seen good database setups where 10,000 inserts as a single transaction was only 1/2 the transaction rate of one insert per transaction (a 5,000x speedup)

Adiscon does this sort of work (contact Rainer directly if you want a quote)

but 50K logs/sec is not likely to end up with rsyslog as the bottlneck. You should setup a test environment and stress test things to see how high you can push the message rate before you can't keep up. There are a number of variables that can end up being the bottleneck and you want to find these in testing, not in production :-)

The fist thing is that you want to be running a very recent rsyslog (5.8.x or 6.x), the speedups in rsyslog since 4.x (which is in RHEL5 I believe) are very significant. 6.3.x introduces a DNS cache that can be a drastic speedup if you need DNS lookups (if not, you can start rsyslog with -x to disable them on earlier versions)

you also need to define 'slow hardware', one person's slow hardware is another person's mid-range server :-)

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

Reply via email to