On Thu, Sep 5, 2013 at 11:02 PM, David Lang <[email protected]> wrote: > On Thu, 5 Sep 2013, Robert Ortiz wrote: > > Hello everyone, >> >> I upgraded to 7.4.3, and as everyone mentioned (David) it improved >> significantly, I am at 110k mps, which is great, but I think it can do >> better, currently rsyslog nice level is at its max, and I am curious if >> there was anything that I could do to bring it up to 200k mps? this is my >> current config file, I've tweaked it around and removed unnecessary things, >> but I am wondering if anyone can see if there is something that I am >> missing or something I need to unmark to improve the performance, >> > > As Rainer says, we need to find out where the bottleneck is, if you can > run top, hit 'H' so that it shows threads, and then load it down and tell > us which thread is hitting max CPU it would tell us where to look > > everything below is specualtion and places that can possibly be improved, > but if that is not the bottleneck, it won't make any difference unless the > system as a whole is running out of CPU. > > setting the timerequery for UDP will help if the bottleneck is there. > > are you disabling DNS lookups at startup (the -x flag on rsyslogd), this > is a very significant win if you can do it. If you have not done this, you > need to check and see if your DNS server is the bottleneck. >
With v7, this should not affect performance very much. Do you have other experience? > > I suggest using queue type FixedArray instead of LinkedList. It will use > the max amount of memory all the time, but my testing showed that this was > faster than LinkedList (which makes sense, since rsyslog doesn't need to > manipulate the list and bounce all over memory to access the queue) > > you have the zip compression set to 9, which is the most CPU intensive > setting, if the output ends up being your bottleneck, try reducing this and > see if things improve. > > not knowing your system names, if you can change any of the tests from > 'contains' to 'startswith', that could improve things. > > if your output is the bottleneck, you can split the outputs to use > multiple queues instead of all being part of one queue (add another set of > queue parameters about midway through the tests) > > The action queue parameter that Rainier suggested may help with this as > well, if you cna use multiple threads to read from the queue and output the > messages this can be as good or better than using multiple queues. > > Be careful: I was talking about the main message queue. If I don't overlook anything, the action queue settings are not very relevant here. > Rainer, am I correct in reading this tht the actionqueue will be used for > all of the output? I know that using the v7 config you cannot set an action > queue to be used for more than one output (without resorting to rulesets), > but I think that in the earlier config language the queue settings remain > until they are set to something else. > I think these are all auto-reset parameters, so they only apply to the first output. I have not checked the code, mostly because I really think the action queue parameters make a big difference here. I have written an in-depth blog about those tuning parameters some time ago. It can be found here: http://blog.gerhards.net/2013/06/rsyslog-performance-main-and-action.html Also, I think the $OMfile parameters also apply only to the first file - but I may be wrong. My strong recommendation is to use new-style config in complex cases, as it is then much easier to see what is actually going on (after all, that's why the new style was implemented ;)). > > > looking through the config, I strongly suspect that your bottleneck is in > writing the files. You have all of the writing being done with a single > thread, and that thread is compressing the logs, so it has a lot of work to > do. > yup, I guess it is the filters and running the main queue on multiple threads will take care of that. > > one thing that may help is if you turn on asyncwriting, that will decouple > the filtering and creation of the string to be written from the process of > writing it. Since you are doing compression as you are writing it, this > should move the compression out to a separate thread (or possibly a > separate thread per output??? Rainer? the background writer thread is per action instance. Compression is done on the background writer threads - in other words: "yes". But again, I doubt the parameters apply to all actions. Rainer ) instead of it all being done in the worker thread. > > David Lang > > > > Thanks in advance >> >> >> # For more information see /usr/share/doc/rsyslog-*/**rsyslog_conf.html >> # If you experience problems, see http://www.rsyslog.com/doc/** >> troubleshoot.html <http://www.rsyslog.com/doc/troubleshoot.html> >> >> #### MODULES #### >> >> module(load="imuxsock") # needs to be done just once Roberto 8-9-13 >> SysSock.FlowControl=(:"on") # enable flow control (use if needed) Roberto >> 8-9-13 >> #$ModLoad imuxsock # provides support for local system logging (e.g. via >> logger command) >> >> module(load="imklog") >> #$ModLoad imklog # provides kernel logging support (previously done by >> rklogd) >> $ModLoad immark # provides --MARK-- message capability >> >> # Provides UDP syslog reception >> module(load="imudp") # needs to be done just once >> input(type="imudp" port="514") >> #$ModLoad imudp >> #$UDPServerRun 514 >> #$UDPServerTimeRequery 1000000 >> #$UDPServerTimeRequery 10 - Gil 06/06/13 >> >> # Provides TCP syslog reception >> #$ModLoad imptcp >> #$InputTCPServerRun 514 >> >> >> #### GLOBAL DIRECTIVES #### >> >> # Use default timestamp format >> $ActionFileDefaultTemplate RSYSLOG_TraditionalFileFormat >> >> # File syncing capability is disabled by default. This feature is usually >> not required, >> # not useful and an extreme performance hit >> #$ActionFileEnableSync on >> >> # Include all config files in /etc/rsyslog.d/ >> $IncludeConfig /etc/rsyslog.d/*.conf >> >> # Set Buffer Size - default is 4k >> #$OMFileIOBufferSize 128k # - Gil 06/06/13 >> $OMFileAsyncWriting on >> $OMFileFlushOnTXEnd on >> $OMFileFlushInterval 1 >> #$OMFileZipLevel 9 >> $OMFileIOBufferSize 1000k >> >> #Turn on Main Ruleset Roberto 8-20-13 >> #$RulesetCreateMainQueue on >> >> >> # Set Main Message Queue Size - default is 10000 >> $MainMsgQueueSize 20000000 # Roberto 8-9-13 >> $InputUDPMaxSessions 40000000 >> $MainMsgQueueDequeueBatchSize 500000 >> >> >> #### RULES #### >> >> # Log all kernel messages to the console. >> # Logging much else clutters up the screen. >> #kern.* >> # /dev/console >> >> #Specific ruleset for remote messages >> #$Ruleset <name> >> >> #*.* /var/log/test/f_all #Roberto 8-21-13 >> #Module (load="builtin:omfile") >> #*.* action(type="omfile" >> # DirCreateMode="0700" >> # FileCreateMode="0644" >> # File="/var/log/test/alllogs") >> >> >> #switch back to default ruleset >> #$Ruleset RSYSLOG DefaultRuleset >> >> # Begin action Roberto 8-20-13 >> # $ActionOmrulesetRulesetName somename >> $ActionQueueWorkerThreads 5000000 >> $ActionQueueSize 10000000 >> #$ActionQueueType LinkedList # use asynchronous processing >> #$ActionQueueFileName aaaaafwd # set file name, also enables disk mode >> #$ActionQueueMaxFileSize 400m # default: 1m, should be 1% of MaxDiskSpace >> #$ActionQueueMaxDiskSpace 40g # space limit (use as much as possible) >> #$ActionQueueTimeoutEnqueue 0 # throtteling, 0 disables throttling and >> discard immediately if queue is full >> #$ActionQueueDequeueBatchSize 500000 >> #$ActionResumeRetryCount -1 # infinite retries on insert failure >> #$ActionResumeInterval 1 # faster than default 30 second delay >> #$ActionQueueSaveOnShutdown on # save in-memory data if rsyslog shuts down >> >> >> >> :hostname, contains, "fdfw" /var/log/test/f_fw >> :hostname, contains, "mail" /var/log/test/f_mail >> :hostname, contains, "shib" /var/log/test/f_shib >> :hostname, contains, "pdc" /var/log/test/f_ad >> :hostname, contains, "networks" /var/log/test/f_networks >> :hostname, contains, "rout" /var/log/test/f_router >> :hostname, contains, "vm" /var/log/test/f_vm >> :hostname, contains, "pix" /var/log/test/f_pix >> >> >> >> # Log anything (except mail) of level info or higher. >> # Don't log private authentication messages! >> #*.info;mail.none;authpriv.**none;cron.none /var/log/messages >> #*.debug /var/log/messages >> >> # The authpriv file has restricted access. >> #authpriv.* /var/log/secure >> >> # Log all the mail messages in one place. >> #mail.* -/var/log/maillog >> >> >> # Log cron stuff >> #cron.* /var/log/cron >> >> # Everybody gets emergency messages >> #*.emerg * >> >> # Save news errors of level crit and higher in a special file. >> #uucp,news.crit /var/log/spooler >> >> >> # ### begin forwarding rule ### >> # The statement between the begin ... end define a SINGLE forwarding >> # rule. They belong together, do NOT split them. If you create multiple >> # forwarding rules, duplicate the whole block! >> # Remote Logging (we use TCP for reliable delivery) >> # >> # An on-disk queue is created for this action. If the remote host is >> # down, messages are spooled to disk and sent when it is up again. >> #$WorkDirectory /var/lib/rsyslog # where to place spool files >> #$ActionQueueFileName fwdRule1 # unique name prefix for spool files >> #$ActionQueueMaxDiskSpace 1g # 1gb space limit (use as much as possible) >> #$ActionQueueSaveOnShutdown on # save messages to disk on shutdown >> #$ActionQueueType LinkedList # run asynchronously >> #$ActionResumeRetryCount -1 # infinite retries if host is down >> # remote host is: name/ip:port, e.g. 192.168.0.1:514, port optional >> #*.* @@remote-host:514 >> # ### end of the forwarding rule ### >> (END) >> >> >> >> >> Robert. >> ______________________________**_________________ >> rsyslog mailing list >> http://lists.adiscon.net/**mailman/listinfo/rsyslog<http://lists.adiscon.net/mailman/listinfo/rsyslog> >> http://www.rsyslog.com/**professional-services/<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://lists.adiscon.net/mailman/listinfo/rsyslog> > http://www.rsyslog.com/**professional-services/<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.

