BTW, how do your config files look like now? Maybe some of us can point out places where you can optimize.
2013/8/21 Radu Gheorghe <[email protected]> > Hello Robert, > > Some pointers can be: > - use the impstats module to see the state of your queues > - use htop or something like that to see which threads consume the most > CPU (maybe you can start more of those threads to solve the problem). I > didn't do this myself but David and Rainer keep saying that threads are > labeled so you can understand what uses more resources > - netstat -su should also help with some information on packet loss and > stuff > > Best regards, > Radu > > > 2013/8/21 Robert Ortiz <[email protected]> > >> Hello guys, >> >> So i was able to get the logs to come in at 25k mps and not drop a single >> one, I changed the ctl file to increase the mem to 200000, I also installed >> nscd and was able to get this to work, unfortunately when i went up to 50k >> mps i dropped about 20k mps, is there a way I can see something that can >> tell me where I might have a problem? >> >> Robert >> ----- Original Message ----- >> From: David Lang >> Sent: 08/08/13 02:14 PM >> To: rsyslog-users >> Subject: Re: [rsyslog] performance tweaking >> >> The first thing I would do is make sure that you start rsyslog without >> DNS lookups (add the -x flag to startup), the overhead of doing a DNS >> lookup on each message that comes in is very significant. The newest >> versions of rsyslog (7.4) include some caching of DNS data, but it can >> still be significant. With 5.x I think this change by itself will probably >> get you over 100K logs/sec The next thing is the main message queue size, >> your configuration leaves it at the default of 10K, if you are looking to >> receive 100K messages/sec, that's not very big, I would set it large enough >> to handle at least a couple seconds worth of logs, and if this box is a >> dedicated syslog server, set it so that it will use the majority of RAM on >> your system. with 32G of ram on the system, and a default 2k message size, >> setting this well above 1M is very reasonable. As noted by someone else, >> setting larger buffers in /etc/sysctl.conf may help If you can disable >> connection tracking in the iptables stack, i >> t will significantly reduce the kernel overhead (how many systems are >> you recieving logs from?) Setting net.ipv4.netfilter.ip_conntrack_max large >> may help As far as your rules go: 'contains' is significantly more >> expensive than 'startswith' on version 5.x, the if..then structure is >> significantly slower than the properties filter like: :hostname, contains, >> 'pdc' /var/log/test/f_ad rsyslog 7.x contains a ruleset optimizer that >> eliminates this performance problem. what do you have in your included >> files? It's worth checking to see where your bottleneck is, simplify your >> rules to write everything to one file and see what the resulting >> performance is like. That way you know if your problem is on the input side >> or the output side. if you run top, and hit 'H' to show the different >> threads, you can see what threads are running out of CPU time. My guess is >> that it will be a thread labeled "Main Q", which is the output side of >> things (due to the use of the inefficient if..then filters >> ), and that's causing the too-small queue to fill up, causing UDP >> messages to be lost. rsyslog 7.4 combined with a recent Linux kernel also >> has the ability to recieve multiple UDP packets in a single system call, >> this would significantly improve performance. I don't know if RHEL 6.4 >> includes a recent enough kernel. This is the batchSize parameter. Another >> useful parameter for UDP input is TimeRequery. If you have a lot of >> messages arriving at the same time, doing a gettimeofday() call to the >> system can be slow, and many consecutive calls will return the same value, >> so rsyslog lets you say that as long as the incoming buffer from the OS has >> more logs ready, only do a time lookup every N messages instead of every >> message. Setting this to something like 100 or 1000 will virtually >> eliminate the overhead of doing this lookup, and the worst that can happen >> is that the time received timestamp may be off by 1 second for messages >> that arrive in a batch right at the end of one second >> and the beginning of the next second (i.e. you will almost certinly >> never notice this, this does not affect the timestamp generated by the host >> system in any case) back in the rsyslog 4.x days, I was able to get rsyslog >> to handle gig-e wire speed (~380K logs/sec), and rsyslog has only gotten >> faster since. David Lang On Thu, 8 Aug 2013, Robert Ortiz wrote: > Hey >> Guys, > > I am new to this mailing list and I wanted to see about getting >> some pointers > if possible regarding tweakin rsyslog: > > I am pretty new >> to rsyslog, and I've been given a pretty fun task... to test > rsyslog vs >> syslog-ng and pick the best one, I am having a problem with rsyslog > where >> im at 25K/mps and im dropping logs, I need to get it at 100k mps with > and >> I'm not sure where the misconfiguration is if anyone could take a look I > >> would really appreciatte it, > > my current setup: > > rhel 6.4 x86_64 > >> rsyslog-5.8.10-2.el6.x86_64 > Dual Intel(R) Xeon(R) CPU E5-2609 0 @ 2.40GHz >> > 32GB RAM > 500GB 15k rai >> d 0 > > > # rsyslog v5 configuration file > > # For more information see >> /usr/share/doc/rsyslog-*/rsyslog_conf.html > # If you experience problems, >> see http://www.rsyslog.com/doc/troubleshoot.html > > #### MODULES #### > >> > $ModLoad imuxsock # provides support for local system logging (e.g. via >> logger command) > $ModLoad imklog # provides kernel logging support >> (previously done by rklogd) > #$ModLoad immark # provides --MARK-- message >> capability > > # Provides UDP syslog reception > $ModLoad imudp > >> $UDPServerRun 514 > # $UDPServerTimeRequery 10 > > # Provides TCP syslog >> reception > #$ModLoad imtcp > #$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/ > $IncludeConf >> ig /etc/rsyslog.d/*.conf > > # Set Buffer Size - default is 4k > # >> $OMFileIOBufferSize 128k > # Set Main Message Queue Size - default is 10000 >> > # $MainMsgQueueSize 50000 > > #### RULES #### > > # Log all kernel >> messages to the console. > # Logging much else clutters up the screen. > >> #kern.* /dev/console > > if $hostname contains 'pdc' then >> /var/log/test/f_ad > & ~ > if $hostname contains 'fdfw' then >> /var/log/test/f_fw > & ~ > if $hostname contains 'mail' then >> /var/log/test/f_mail > & ~ > if $hostname contains 'pix' then >> /var/log/test/ix > & ~ > if $hostname contains 'rout' then >> /var/log/test/rout > & ~ > if $hostname contains 'networks' then >> /var/log/test/net > & ~ > #if $fromhost-ip == '10.0.0.10' then >> /var/log/test/thost > #& ~ > #if $hostname startswith 'virtserv' then >> /var/log/test/test_virtserv > #&~ > #if $fromhost-ip startswith '10.0.6' >> then /var/log/test/test_10.0.6 > #& ~ > > > # Log anything (except mail) of >> level info or higher. > # Don't log private authenticati >> on messages! > #*.info;mail.none;authpriv.none;cron.none >> /var/log/messages > *.debug /var/log/messages > > # 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 > > # Save boot messages also to boot.log > >> local7.* /var/log/boot.log > > > # ### 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 > # 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 dis >> k 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 ### > > > > Robert. > >> _______________________________________________ > 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. >> >> >> >> >> >> Robert. >> _______________________________________________ >> 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.

