Hello! >From what I see you have 5 conditions. 4 of them doing full-scan of $msg on every incoming message. What I'd suggest is to parse the message first using a `mmnormalize`/`mmfields`/`mmpstructdata` module. Then you can refer to fields extracted in your conditions instead to prevent full message scan.
I can guess you may be using the iptables message format. So you may check this liblognorm field type: https://www.liblognorm.com/files/manual/configuration.html#iptables On Sun, 4 Oct 2020 at 21:30, Kype Ahamed via rsyslog < [email protected]> wrote: > Hello, > > I am using rsyslog mainly as a syslog relay, to forward messages from 1 > source device to multiple destination devices. > > Right now i am receiving about 50k messages per second, and i noticed CPU > usage is constantly above 80% > > Are there any further tweaks that can be done to below config to reduce the > CPU usage? > > ------------------------------------------------- > rsyslog config file: > > module(load="impstats" > interval="20" > severity="7" > log.syslog="off" > log.file="/var/log/impstats.log") > > global(parser.escapecontrolcharactertab="off") > > # Load Modules # > module(load="imudp" TimeRequery="5" BatchSize="64") > > # rsyslog Templates # > template(name="testMachineHeader" type="string" > string="%TIMESTAMP:::date-rfc3164% testMachine %rawmsg:::drop-last-lf%\n") > template(name="rawTemplate" type="string" > string="%rawmsg:::drop-last-lf%\n") > > # rsyslog Input Modules # > input(type="imudp" > port="10514" > ruleset="forwardToDestRule" > device="eth0" > ) > > > > # rsyslog RuleSets # > ruleset(name="forwardToDestRule" > queue.type="fixedArray" > queue.size="25000" > ) { > if ($msg contains "interface=inbound" and $msg contains "source=10.1.1.1") > then { > action(type="omfwd" > Target="10.1.1.5" > Port="514" > Protocol="tcp" > Device="eth0" > queue.type="fixedArray" > queue.size="50000" > queue.dequeueBatchSize="1024" > template="testMachineHeader") > } > else{ > action(type="omfwd" > Target="10.1.1.6" > Port="514" > Protocol="udp" > Device="eth0" > queue.type="fixedArray" > queue.size="50000" > action.resumeRetryCount="-1" > template="rawTemplate") > } > > if ($msg contains "interface=outbound" and $msg contains "source=10.1.1.1") > then { > if ($msg contains "proto=17") then { > action(type="omfwd" > Target="10.1.1.7" > Port="514" > Protocol="udp" > Device="eth0" > queue.type="linkedlist" > queue.size="50000" > action.resumeRetryCount="-1" > template="rawTemplate") > } > } > > } > > ------------------------------------------------- > > Top -H output: > > top - 08:53:26 up 1:55, 1 user, load average: 2.32, 1.50, 1.07 > Threads: 112 total, 7 running, 105 sleeping, 0 stopped, 0 zombie > %Cpu(s): 23.4 us, 53.5 sy, 0.0 ni, 3.5 id, 0.4 wa, 0.0 hi, 19.1 si, > 0.0 st > KiB Mem : 7972668 total, 7475888 free, 250088 used, 246692 buff/cache > KiB Swap: 4063228 total, 4063228 free, 0 used. 7449764 avail Mem > > PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND > 2567 root 20 0 639540 16836 12416 R 32.4 0.2 1:11.53 > rs:action 2 que > 2566 root 20 0 639540 16836 12416 R 30.1 0.2 1:11.32 > rs:action 1 que > 2551 root 20 0 639540 16836 12416 R 14.1 0.2 0:30.68 > in:imudp > 2565 root 20 0 639540 16836 12416 R 11.1 0.2 0:31.94 > rs:forwardToDes > 600 root 20 0 100676 38508 38184 S 6.2 0.5 0:33.62 > systemd-journal > > ------------------------------------------------- > > impstats output: > > Sun Oct 4 08:46:49 2020: global: origin=dynstats > Sun Oct 4 08:46:49 2020: imuxsock: origin=imuxsock submitted=0 > ratelimit.discarded=0 ratelimit.numratelimiters=0 > Sun Oct 4 08:46:49 2020: action 0: origin=core.action processed=0 failed=0 > suspended=0 suspended.duration=0 resumed=0 > Sun Oct 4 08:46:49 2020: action 1: origin=core.action processed=1341545 > failed=0 suspended=0 suspended.duration=0 resumed=0 > Sun Oct 4 08:46:49 2020: action 2: origin=core.action processed=1341545 > failed=0 suspended=0 suspended.duration=0 resumed=0 > Sun Oct 4 08:46:49 2020: action 3: origin=core.action processed=4022 > failed=0 suspended=0 suspended.duration=0 resumed=0 > Sun Oct 4 08:46:49 2020: action 4: origin=core.action processed=1 failed=0 > suspended=0 suspended.duration=0 resumed=0 > Sun Oct 4 08:46:49 2020: action 5: origin=core.action processed=0 failed=0 > suspended=0 suspended.duration=0 resumed=0 > Sun Oct 4 08:46:49 2020: action 6: origin=core.action processed=0 failed=0 > suspended=0 suspended.duration=0 resumed=0 > Sun Oct 4 08:46:49 2020: action 7: origin=core.action processed=0 failed=0 > suspended=0 suspended.duration=0 resumed=0 > Sun Oct 4 08:46:49 2020: action 8: origin=core.action processed=0 failed=0 > suspended=0 suspended.duration=0 resumed=0 > Sun Oct 4 08:46:49 2020: action 9: origin=core.action processed=0 failed=0 > suspended=0 suspended.duration=0 resumed=0 > Sun Oct 4 08:46:49 2020: imudp(*:10514): origin=imudp submitted=1341849 > Sun Oct 4 08:46:49 2020: imudp(*:10514): origin=imudp submitted=0 > Sun Oct 4 08:46:49 2020: resource-usage: origin=impstats utime=9190927 > stime=25608171 maxrss=12244 minflt=166970 majflt=0 inblock=0 oublock=4368 > nvcsw=37503 nivcsw=339 > Sun Oct 4 08:46:49 2020: action 0 queue: origin=core.queue size=0 > enqueued=0 full=0 discarded.full=0 discarded.nf=0 maxqsize=0 > Sun Oct 4 08:46:49 2020: action 1 queue: origin=core.queue size=0 > enqueued=1341545 full=0 discarded.full=0 discarded.nf=0 maxqsize=5227 > Sun Oct 4 08:46:49 2020: action 2 queue: origin=core.queue size=252 > enqueued=1341545 full=0 discarded.full=0 discarded.nf=0 maxqsize=6051 > Sun Oct 4 08:46:49 2020: forwardToDestRule: origin=core.queue size=304 > enqueued=1341849 full=0 discarded.full=0 discarded.nf=0 maxqsize=1003 > Sun Oct 4 08:46:49 2020: main Q: origin=core.queue size=0 enqueued=4023 > full=0 discarded.full=0 discarded.nf=0 maxqsize=64 > Sun Oct 4 08:46:49 2020: imudp(w0): origin=imudp called.recvmmsg=40859 > called.recvmsg=0 msgs.received=1341849 > > ------------------------------------------------- > > > Regards, > Scorsese P. > _______________________________________________ > rsyslog mailing list > https://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. > -- Yury Bushmelev _______________________________________________ rsyslog mailing list https://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.

