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.

Reply via email to