[syslog-ng] Syslog-ng performance (CPU)

Evan Rempel erempel at uvic.ca
Wed Jul 25 17:21:55 CEST 2007


You didn't mention the version of syslog-ng.

My 2.0.4 system uses a similar amount of CPU, which means that a single CPU (syslog-ng is single threaded) can only 
handle a sustained rate about 10,000 per second. A lot of that time (as much as 30%) will be the IP stack
doing packet processing. You can use a TCP/IP offload network interface card to basically eliminate this.

The remaining time will have to be addressed by tuning syslog-ng.

The authors have produced a nice section in the syslog-ng manual

http://www.balabit.com/dl/html/syslog-ng-admin-guide_en.html/ch07.html

Evan.

Rory wrote:
> I'm using syslog-ng as a receiver to relay messages to local processes
> and other remote syslog listeners.  I'm not currently using any local
> file destinations.  The issue I'm having is that as soon as I start
> receiving more than a few hundred messages per second (udp) syslog-ng
> uses significant CPU resources, even on an intel core-duo.
> 
> At 1000 messages per second with an average message size < 300 bytes
> syslog-ng consumes 9-12% CPU.  With an event rate closer to 4000
> messages per second the CPU use is 35-30%.  This seems excessive given
> that I'm doing no filtering at all.  In a test configuration, I am only
> receiving (no log{} clauses at all) and this behaviour is still
> demonstrated.  It seems that all the CPU use is related to incoming
> packet processing.  The test system is Linux 2.6.20 (Ubuntu) running on
> a Core2 dual 2.16GHz.
> 
> Once I have completed some profiling I will share the findings but in
> the meantime: am I missing something that should be obvious?  Some
> searching through the mailing list archives hasn't helped me much.  My
> test configuration file:
> 
> options {
>     time_reopen(10);
>     chain_hostnames(yes);
>     keep_hostname(no);
>     log_fifo_size(65535);
>     gc_idle_threshold(100);
>     gc_busy_threshold(65535);
>     use_dns(no);
>  };
> 
>  source remote_sources {
>     udp(ip(0.0.0.0) port(514));
>  };
> 
>  destination event_collector {
>     tcp("127.0.0.1" port(1028));
>  };
> 
> # log {
> #    source(remote_sources);
> #    destination(event_collector);
> # };
> 
> Thanks,
> Rory
> 
> _______________________________________________
> syslog-ng maillist  -  syslog-ng at lists.balabit.hu
> https://lists.balabit.hu/mailman/listinfo/syslog-ng
> Frequently asked questions at http://www.campin.net/syslog-ng/faq.html
> 


-- 
Evan Rempel                erempel at uvic.ca
Senior Programmer Analyst        250.721.7691
Computing Services
University of Victoria


More information about the syslog-ng mailing list