Well James and i both work on this. We will try and reduce the regex but we both do not understand why this cannot be multi-threaded. Why does setting an ActionQue to 10 worker threads not actually spawn 10.
On Fri, Jun 14, 2013 at 6:18 PM, David Lang <[email protected]> wrote: > Given that with one exception, all his rulesets are essentually single > actions, and he has multiple action queues, I think it is effectivly tied > to the ruleset in this case. > > I origionally assumed that different rulesets used different main queues. > It looks like that may not be the case, but it could also just be that this > one horribly bad rule was eating so much of the system that top only showed > this one. That's a question that I'll clarify with Rainer next week > sometime. > > David Lang > > > > On Fri, 14 Jun 2013, Boylan, James wrote: > > Is the action queue thread tied to the ruleset? >> >> -- James >> >> ----- Reply message ----- >> From: "David Lang" <[email protected]> >> To: "rsyslog-users" <[email protected]> >> Subject: [rsyslog] client connectivity issues syslog-ng -> rsyslog 7.x >> Date: Fri, Jun 14, 2013 6:13 pm >> >> >> >> I've found that FixedArray queues are noticably faster than LinkedList. >> That >> probably won't completely solve the problem, but it may help. >> >> If I'm seeing this correctly, this is the message template >> >> $template appLogHadoopTemplate,"<%PRI%>%**TIMESTAMP% %FROMHOST% >> app=%programname:R,ERE,1,DFLT:**([A-Za-z0-9]+)-.*-.*_.*--end%|** >> bucket=%programname:R,ERE,1,**DFLT:.*-.*-.*_([A-Za-z0-9]+)--** >> end%%msg%\n" >> >> and this is the filename template >> >> $template appLogDynFile,"/log/app-logs/%****programname:R,ERE,0,DFLT:[A-* >> *Za-z0-9]+--end%/%FROMHOST%/%$****YEAR%/%$MONTH%/%$DAY%/%** >> PROGRAMNAME%.log" >> >> Both of these are heavy users of regex parsing, which is a pretty >> expensive >> operation >> >> One thing that I think I'm seeing, it that you do the same regex multiple >> times. >> With an ugly regex like this, you would probably gain significantly by >> setting a >> variable and using that >> >> set $!shortname = "%programname:R,ERE,1,DFLT:([** >> A-Za-z0-9]+)-.*-.*_.*--end%" >> >> $template appLogHadoopTemplate,"<%PRI%>%**TIMESTAMP% %FROMHOST% >> app=%$!shortname%|bucket=%$!**shortname%%msg%\n" >> >> the other thing is, can you simplify the regex? it looks like you are >> trying to >> pull any alphanumeric value ahead of a -, but if that's the case, why are >> you >> matching things after that? >> >> will the following give you what you need? >> >> set $!shortname = "%programname:R,ERE,1,DFLT:^([**A-Za-z0-9]+)-%" >> >> I anchor the regex to the beginning of the string, and then pull >> everything >> before the - >> >> David Lang >> >> On Fri, 14 Jun 2013, Timothy Ehlers wrote: >> >> Date: Fri, 14 Jun 2013 17:50:05 -0500 >>> From: Timothy Ehlers <[email protected]> >>> Reply-To: rsyslog-users <[email protected]> >>> To: rsyslog-users <[email protected]> >>> Subject: Re: [rsyslog] client connectivity issues syslog-ng -> rsyslog >>> 7.x >>> >>> Yeah it helped in staging but with the higher volume of prod ruleset 2 >>> seems to be the problem... I still only see 1 thread and its pegged at >>> 100% >>> >>> $Ruleset appLog >>> $ActionQueueType LinkedList >>> $ActionQueueWorkerThreads 64 >>> $**ActionQueueWorkerThreadMinimum**Messages 10000 >>> $ActionQueueSize 400000 >>> *.* >>> ?appLogDynFile;**appLogHadoopTemplate >>> >>> There must be something i do not understand about the Queue system. >>> >>> >>> On Fri, Jun 14, 2013 at 4:45 PM, David Lang <[email protected]> wrote: >>> >>> Interesting, I did not expect that action queues would help this much, >>>> given that you have the rulesets bound to different interfaces, I would >>>> have expected that their output processing would be independant. >>>> >>>> But the fact that putting in action queues (I assume one queue per >>>> ruleset??) splits up the work so much says that I was wrong. >>>> >>>> Which output is the action 3 queue that's using so much more CPU than >>>> anything else? >>>> >>>> >>>> David Lang >>>> >>>> On Fri, 14 Jun 2013, Timothy Ehlers wrote: >>>> >>>> I put ActionQueus into the config and in staging it looks better now. >>>> >>>>> 12773 root 20 0 1919m 231m 1848 R 34.8 0.5 0:19.06 rs:action >>>>> 3 >>>>> que >>>>> 12772 root 20 0 1919m 231m 1848 S 10.6 0.5 0:09.51 rs:action >>>>> 2 >>>>> que >>>>> 12751 root 20 0 1919m 231m 1848 S 1.7 0.5 0:01.29 rs:main >>>>> Q:Reg >>>>> 12742 root 20 0 1919m 231m 1848 S 0.7 0.5 0:00.72 in:imtcp >>>>> 12767 root 20 0 1919m 231m 1848 S 0.7 0.5 0:00.21 rs:action >>>>> 5 >>>>> que >>>>> 12774 root 20 0 1919m 231m 1848 S 0.7 0.5 0:00.70 rs:action >>>>> 4 >>>>> que >>>>> >>>>> I will try this in production with the Higher volume after a peer >>>>> review. >>>>> >>>>> >>>>> On Fri, Jun 14, 2013 at 4:32 PM, Timothy Ehlers <[email protected]> >>>>> wrote: >>>>> >>>>> 52mb/sec inbound traffic >>>>> >>>>>> Hadoop stream is showing: 25k msg per second.. i do not know how >>>>>> accurate >>>>>> this is. >>>>>> >>>>>> $OptimizeForUniprocessor off >>>>>> $MaxMessageSize 2048k >>>>>> >>>>>> # Rsyslog plugins >>>>>> $ModLoad immark # provides --MARK-- message capability >>>>>> $ModLoad imudp # provides UDP syslog reception >>>>>> $ModLoad imtcp # provides TCP syslog reception >>>>>> $ModLoad imuxsock # provides support for local system logging >>>>>> (e.g. >>>>>> via logger command) >>>>>> $ModLoad imklog # provides kernel logging support (previously >>>>>> done >>>>>> by rklogd) >>>>>> $ModLoad imrelp # Provides RELP syslog reception >>>>>> $ModLoad omrelp # Provides RELP syslog transmission >>>>>> >>>>>> # Rsyslog Stats >>>>>> $ModLoad impstats >>>>>> $PStatInterval 60 >>>>>> $PStatSeverity 7 >>>>>> >>>>>> # Queue configuration >>>>>> $ActionQueueSize 2000000 >>>>>> $MainMsgQueueSize 40000000 >>>>>> >>>>>> # File Creation Permissions >>>>>> $umask 0000 >>>>>> $DirCreateMode 0755 >>>>>> $FileCreateMode 0644 >>>>>> >>>>>> # Remote Log Processing Ruleset >>>>>> $PreserveFQDN on >>>>>> $template >>>>>> appLogDynFile,"/log/app-logs/%****programname:R,ERE,0,DFLT:[A-**** >>>>>> Za-z0-9]+--end%/%FROMHOST%/%$****YEAR%/%$MONTH%/%$DAY%/%** >>>>>> PROGRAMNAME%.log" >>>>>> $template >>>>>> currLogStatsDynFile,"/log/app-****logs/logstats/%FROMHOST%/%$**** >>>>>> YEAR%/%$MONTH%/%$DAY%/****logstats.log.%$HOUR%00" >>>>>> $template >>>>>> currAppLogDynFile,"/log/app-****logs/%msg:R,ERE,1,DFLT:^([A-** >>>>>> Za-z0-9._-]+)\|([A-Za-z0-9._-]****+)\|([A-Za-z0-9._]+)[-_]*([**A-** >>>>>> Za-z0-9]*)([\^])--end%/%****FROMHOST%/%$YEAR%/%$MONTH%/%$**** >>>>>> DAY%/%msg:R,ERE,1,DFLT:^([A-****Za-z0-9._-]+)\|([A-Za-z0-9._-]**** >>>>>> +)\|([A-Za-z0-9._]+)[-_]*([A-****Za-z0-9]*)([\^])--end%-%msg:**R,** >>>>>> ERE,2,DFLT:^([A-Za-z0-9._-]+)\****|([A-Za-z0-9._-]+)\|([A-Za-**z0-** >>>>>> 9._]+)[-_]*([A-Za-z0-9]*)([\^]****)--end%-%msg:R,ERE,3,DFLT:^(**[** >>>>>> A-Za-z0-9._-]+)\|([A-Za-z0-9._****-]+)\|([A-Za-z0-9._]+)[-_]*(**[** >>>>>> A-Za-z0-9]*)([\^])--end%-%msg:****R,ERE,4,DFLT:^([A-Za-z0-9._-**]+** >>>>>> )\|([A-Za-z0-9._-]+)\|([A-Za-****z0-9._]+)[-_]*([A-Za-z0-9]*)(**[** >>>>>> \^])--end%.log.%$HOUR%00" >>>>>> $template >>>>>> currAppLoggTemplate,"%msg:R,****ERE,1,DFLT:^[A-Za-z0-9._-]+\|[**** >>>>>> A-Za-z0-9._-]+\|[A-Za-z0-9._]+****[-_]*[A-Za-z0-9]*[\^](.*)--*** >>>>>> *end%\n" >>>>>> $template currAppLoggTemplate2,"%msg%\n" >>>>>> $template currentappLogHadoopTemplate,"<****%PRI%>%TIMESTAMP:date-** >>>>>> rfc3164% >>>>>> %FROMHOST% %msg%\n" >>>>>> $template currentappLogNewHadoopTemplate****,"<%PRI%>%TIMESTAMP% >>>>>> %FROMHOST% >>>>>> app=%msg:R,ERE,1,DFLT:^([A-Za-****z0-9._-]+)\|([A-Za-z0-9._-]+**)\** >>>>>> |([A-Za-z0-9.]+)[-_]*([A-Za-****z0-9]*)--end%|bucket=%msg:R,** >>>>>> ERE,4,DFLT:^([A-Za-z0-9._-]+)\****|([A-Za-z0-9._-]+)\|([A-Za-**z0-** >>>>>> 9.]+)[-_]*([A-Za-z0-9]*)--end% >>>>>> %msg%\n" >>>>>> $template appLogHadoopTemplate,"<%PRI%>%****TIMESTAMP% %FROMHOST% >>>>>> app=%programname:R,ERE,1,DFLT:****([A-Za-z0-9]+)-.*-.*_.*--**end%|** >>>>>> bucket=%programname:R,ERE,1,****DFLT:.*-.*-.*_([A-Za-z0-9]+)--**** >>>>>> end%%msg%\n" >>>>>> $template >>>>>> remoteMessagesDynFile,"/log/****system-logs/%FROMHOST%/%$YEAR%**** >>>>>> /%$MONTH%/%$DAY%/messages" >>>>>> $template >>>>>> remoteSecureDynFile,"/log/****secure-system-logs/%FROMHOST%/**** >>>>>> %$YEAR%/%$MONTH%/%$DAY%/****secure" >>>>>> $template >>>>>> remoteMaillogDynFile,"/log/****system-logs/%FROMHOST%/%$YEAR%**** >>>>>> /%$MONTH%/%$DAY%/maillog" >>>>>> $template >>>>>> remoteEmergDynFile,"/log/****system-logs/%FROMHOST%/%$YEAR%**** >>>>>> /%$MONTH%/%$DAY%/emergency" >>>>>> $template >>>>>> remoteCronDynFile,"/log/****system-logs/%FROMHOST%/%$YEAR%**** >>>>>> /%$MONTH%/%$DAY%/cron" >>>>>> $template >>>>>> remoteSpoolerDynFile,"/log/****system-logs/%FROMHOST%/%$YEAR%**** >>>>>> /%$MONTH%/%$DAY%/spooler" >>>>>> $template >>>>>> remoteBootDynFile,"/log/****system-logs/%FROMHOST%/%$YEAR%**** >>>>>> /%$MONTH%/%$DAY%/boot.log" >>>>>> >>>>>> $Ruleset appLog >>>>>> *.* >>>>>> ?appLogDynFile;****appLogHadoopTemplate >>>>>> # Forward to Hadoop >>>>>> #*.* @@ >>>>>> wmhdcollector01s.stag.**timste**sting.net:5003<http://timstesting.net:5003> >>>>>> <http://**wmhdcollector01s.stag.**timstesting.net:5003<http://wmhdcollector01s.stag.timstesting.net:5003> >>>>>> > >>>>>> ; >>>>>> >>>>>> $Ruleset currAppLog >>>>>> *.* >>>>>> ?currAppLogDynFile;****currAppLoggTemplate >>>>>> # Forward to Hadoop >>>>>> *.* >>>>>> @@hadoopcollectors.prod.****timstesting.net:5003;** >>>>>> currentappLogHadoopTemplate >>>>>> >>>>>> $Ruleset currLogStats >>>>>> *.* >>>>>> ?currLogStatsDynFile >>>>>> # Forward to Hadoop >>>>>> #*.* >>>>>> @@hadoopcollectors.prod.****timstesting.net:5003;** >>>>>> currentappLogHadoopTemplate >>>>>> >>>>>> # Remote System Log Processing Ruleset >>>>>> $Ruleset remoteSysLogs >>>>>> # Log all kernel messages to the console. >>>>>> # Logging much else clutters up the screen. >>>>>> #kern.* /dev/console >>>>>> >>>>>> # Log anything (except mail) of level info or higher. >>>>>> # Don't log private authentication messages! >>>>>> $DirCreateMode 0755 >>>>>> $FileCreateMode 0644 >>>>>> *.info;local1.none;local6.****none;mail.none;authpriv.none;*** >>>>>> *cron.none >>>>>> ?remoteMessagesDynFile >>>>>> >>>>>> # The authpriv file has restricted access. >>>>>> $DirCreateMode 0700 >>>>>> $FileCreateMode 0600 >>>>>> authpriv.* >>>>>> ?remoteSecureDynFile >>>>>> >>>>>> # Log all the mail messages in one place. >>>>>> $DirCreateMode 0755 >>>>>> $FileCreateMode 0644 >>>>>> mail.* >>>>>> ?remoteMaillogDynFile >>>>>> >>>>>> >>>>>> # Log cron stuff >>>>>> $DirCreateMode 0755 >>>>>> $FileCreateMode 0644 >>>>>> cron.* >>>>>> ?remoteCronDynFile >>>>>> >>>>>> # Everybody gets emergency messages >>>>>> $DirCreateMode 0755 >>>>>> $FileCreateMode 0644 >>>>>> *.emerg >>>>>> ?remoteEmergDynFile >>>>>> >>>>>> # Save news errors of level crit and higher in a special file. >>>>>> $DirCreateMode 0755 >>>>>> $FileCreateMode 0644 >>>>>> uucp,news.crit >>>>>> ?remoteSpoolerDynFile >>>>>> >>>>>> # Save boot messages also to boot.log >>>>>> $DirCreateMode 0755 >>>>>> $FileCreateMode 0644 >>>>>> local7.* >>>>>> ?remoteBootDynFile >>>>>> >>>>>> # Local Log Processing Ruleset >>>>>> $Ruleset local >>>>>> # Log all kernel messages to the console. >>>>>> # Logging much else clutters up the screen. >>>>>> #kern.* /dev/console >>>>>> >>>>>> # Log anything (except mail) of level info or higher. >>>>>> # Don't log private authentication messages! >>>>>> *.info;local1.none;local6.****none;mail.none;authpriv.none;*** >>>>>> *cron.none >>>>>> /var/log/messages >>>>>> syslog.=debug >>>>>> /log/rsyslog-stats >>>>>> >>>>>> # 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 :omusrmsg:* >>>>>> >>>>>> # Save news errors of level crit and higher in a special file. >>>>>> uucp,news.crit >>>>>> /var/log/spooler >>>>>> >>>>>> # Save boot messages also to boot.log >>>>>> local7.* >>>>>> /var/log/boot.log >>>>>> >>>>>> # Assign default Ruleset >>>>>> $DefaultRuleset local >>>>>> >>>>>> # New AppLog Process RELP Collector >>>>>> $InputRELPServerBindRuleset appLog >>>>>> $InputRELPServerRun 20514 >>>>>> >>>>>> # Current AppLog TCP Collector >>>>>> $InputTCPServerBindRuleset currAppLog >>>>>> $InputTCPServerRun 20516 >>>>>> >>>>>> # Current LogStats TCP Collector >>>>>> $InputTCPServerBindRuleset currLogStats >>>>>> $InputTCPServerRun 20518 >>>>>> >>>>>> # SystemLog TCP Collector >>>>>> $InputTCPServerBindRuleset remoteSysLogs >>>>>> $InputTCPServerRun 20515 >>>>>> >>>>>> # SystemLog UDP Collector >>>>>> $InputUDPServerBindRuleset remoteSysLogs >>>>>> $UDPServerRun 514 >>>>>> >>>>>> >>>>>> >>>>> >>>>> >>>>> ______________________________****_________________ >>>>> >>>> rsyslog mailing list >>>> http://lists.adiscon.net/****mailman/listinfo/rsyslog<http://lists.adiscon.net/**mailman/listinfo/rsyslog> >>>> <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/> >>>> <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://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. > -- Tim Ehlers _______________________________________________ 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.

