I figured that was the case with the queue structure. I just wanted to make 
sure.

As to the performance issue, I admit the primary issue is in relation to 
impstats as well as queue management. I currently have the instances configured 
with a max size of 25,000,000 and I find that the output of impstats can be 
significantly delayed or stop altogether. I have experienced this with 7.2.5, 
though I haven't upgraded our production instances to 7.4.4 yet.

Basically I'm working on building a logging infrastructure that can handle an 
average of about 5 million messages per minute with bursts as high as 20 
million per minute. I have a configuration that works for taking the traffic, 
putting it to disk and transferring it to other locations, but has trouble 
outputting to omelasticsearch because the queue associated with it maxes at 
1,000,000 and it starts throwing queue full errors.

Obviously with a main queue of 25 million, and an average throughput of over 5 
million messages per minute, not having the omelasticsearch queue scaled 
appropriately could pose an issue.

Part of this was me clarifying how the queues work and if large queue sizes 
would potentially impact the overall performance of an instance, but the bigger 
issue is my inability so far to get the action queue max size to change when it 
relates to omelasticsearch.

I'm going to try changing to FixedArray to see how that works. But any thoughts 
or insight is appreciated.

Thanks!

-- James

----- Reply message -----
From: "David Lang" <[email protected]>
To: "rsyslog-users" <[email protected]>
Subject: [rsyslog] Queues And Max Sizes
Date: Sun, Oct 13, 2013 10:04 am



I can't answer your questions about the max sizes, but your second question
shows a misunderstanding of rsyslog internals

There is one main queue (unless you tie rulesets to inputs and define a new
queue for the ruleset)

input modules add messages to the main queue

MainMsgQueueWorkerThreads pull messages off of the main queue and run through
the various tests in the config file. If the test results in the message going
to a new queue (action queue or ruleset queue), the worker thread transfers the
message to that queue, and then ActionQueueWorkerThreads pull messages from that
queue to send them out the action (or with rulesets, the process the ruleset and
possibly transfer to yet another tier of queues)

The only limit I was aware of on queue sizes was available RAM. If you have
queues larger than RAM so that you start swapping, performance will plummet.

Remember that each queue entry takes up MaxMessageSize + overhead (I don't know
how much overhead)

I've found that FixedArray is faster than LinkedList for large queues.

where did you get the info that things slow down when the main queue gets over
5M entries?

David Lang

On Sun, 13 Oct 2013, Boylan, James wrote:

> Hey all.
>
> So a few questions.
>
> Is there a maximum queues size that you should keep an Rsyslog instance
> running under? I know that various parts of the applications stop performing
> as well once $MainMsgQueueSize gets over about 5 million. For example impstats
> really gets unhappy the larger this setting is. Is there a top number that one
> should try and keep this queue size under?
>
> Is the max queue size per $MainMsgQueueWorkerThreads thread or is it the total
> of all messages in all threads?
>
> Finally I know that you are supposed to be able to change queue settings as
> described in http://www.rsyslog.com/doc/queues.html which if I'm reading
> correctly I should be able to set $ActionQueueSize to increase the maximum
> size of the Action queues. However in my testing of them with omelasticsearch,
> I find that the maximum appears to be hard locked at 1,000,000. Do I need to
> be using $ElasticsearchQueueSize to change that upper limit? I'm currently
> running into an issue where the Queue for omelasticsearch is too small to be
> able to keep hold the amount of messages the Main Queue is attempting to shift
> into it.
>
> -- James
> _______________________________________________
> 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.
_______________________________________________
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.

Reply via email to