Do you want to process 800.000 messages/sec?
Well, I’ve just measured the performance of syslog-ng PE 4.1 (it’s under development but releasing soon) in a little performance test, and it could process more than 800.000 messages/sec in multithreaded mode.
The performance environment was the same I used during measuring 4.0, but I added two extra client computers and a newer gigabit line, so the maximum transfer rate could be 2Gb/sec for the 3 client computers together. On the server there were no changes.
Because I wanted to do a real performance test, the messages were written into files but after I reached the maximum performance of the HDD, I created a second log path where I used /dev/null destination.
I used 150 bytes of messages and the runtime was 10 minutes. Then I started the loggens on all clients in the same time.
The results for the three clients(the first two used the same log path and the destination was file, the third used /dev/null destination. Also, “zbssyslogng” and “ztssyslogng” used the the same gigabit line, the second (“syslog-ng-perf1″) used a second gigabit line):
root@zbssyslogng:/opt/syslog-ng# bin/loggen -r 1000000 --active-connections=10 -I 600 -s 150 10.140.0.179 1999
average rate = 284284.76 msg/sec, count=170575200, time=600.015, (average) msg size=150, bandwidth=41619.29 kB/sec
root@syslog-ng-perf1:/opt/syslog-ng# bin/loggen -r 1000000 –active-connections=10 -I 600 -s 150 192.168.20.2 1999
average rate = 269683.63 msg/sec, count=161811024, time=600.003, (average) msg size=150, bandwidth=39481.68 kB/sec
root@ztssyslogng:/opt/syslog-ng# bin/loggen -r 1000000 –active-connections=10 -I 600 -s 150 10.140.0.179 1998
average rate = 263340.71 msg/sec, count=158013385, time=600.034, (average) msg size=150, bandwidth=38553.08 kB/sec
If I sum the above numbers: 284284+269683+263340 = 817307 msgs/sec. Nice, isn’t it?
Also, I measured the performance with 1024 bytes of messages:
Because the HDD of the server was too slow, I used only /dev/null destination for this test and used only two client computers, because I had only 2 gigabit lines.
root@zbssyslogng:/opt/syslog-ng# bin/loggen -r 1000000 --active-connections=1 -I 300 -s 1024 10.140.0.179 1999
average rate = 98442.40 msg/sec, count=29533354, time=300.006, (average) msg size=1024, bandwidth=98385.70 kB/sec
root@syslog-ng-perf1:/opt/syslog-ng# bin/loggen -r 1000000 –active-connections=1 -I 300 -s 1024 192.168.20.2 1999
average rate = 113906.23 msg/sec, count=34171872, time=300.000, (average) msg size=1024, bandwidth=113840.62 kB/sec
It’s 207 MB/sec… The end of the two gigabite lines. So it means that syslog-ng can process more than 700GB messages/hour or 17 TB/day. Now, I am going to get more gigabite lines
Of course my configuration was tuned for the maximum performance, but later I will make a full performance test for syslog-ng 4.1, where I measure different syslog-ng settings how affects to the performance.
However, don’t forget, syslog-ng PE 4.1 is not released yet, but it will be soon.