So as it turns out I cannot disable DNS lookup beause we have a host file that 
rsyslog is supposed to look at so it knows who are the messages from and where 
to dump them according to the filters, currently I am running a load tests at 
25K/mps and I am dropping messages considerably {see below} this is my current 
base with the rsyslog.conf that I currently have, once this test is done, I 
will modify the filters to what David suggested and will try it again.


 24994 09:05:30
 24971 09:05:31
 24972 09:05:32
 24952 09:05:33
 24975 09:05:34
 24953 09:05:35
 24919 09:05:36
 24806 09:05:37
 25003 09:05:38
 24987 09:05:39
 24980 09:05:40
 24881 09:05:41
----- Original Message -----
From: Robert Ortiz
Sent: 08/08/13 04:53 PM
To: rsyslog-users
Subject: Re: [rsyslog] performance tweaking

Im sorry to sound so new, but when you say start rsyslog without dns lookups, 
you mean modify rc.d/init.d/rsyslog? ----- 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. wit
 h 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 th
 is 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_Tr
 aditionalFileFormat > > # 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 
NO
 T 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/professio
 nal-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.





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.

Reply via email to