[syslog-ng] Profiling syslog-ng
John Morrissey
jwm at horde.net
Mon Mar 27 19:41:31 CEST 2006
On Tue, Mar 14, 2006 at 11:42:48PM +0100, Balazs Scheidler wrote:
> > One more thing I've noticed: syslog-ng is making huge numbers of time(2)
> > calls. Our hub is calling time() 14-18,000 times/second(!) at peak. Is
> > there a way to optimize this away, or is 1.9.x more frugal in calling
> > it?
>
> Maybe it calls somewhat less, but not significantly as it still calls
> time() for each message, and maybe even multiple times.
>
> How expensive do you think calling time() is?
I did some crude benchmarking (running time() in a for loop) and it seems
each call consumes about 5usec of time on the machines I tried it on
(~2.5GHz Xeons running Debian sarge). Most of the time consumed is in system
state.
__GI_time() isn't very high in oprofile sampling (~1.8% of samples), so it
doesn't seem that expensive. I'll leave it alone for now. :-)
Thanks for all your help!
samples % app name symbol name
239113 21.6752 syslog-ng io_iter
67510 6.1197 libc-2.3.2.so strlen
42656 3.8667 syslog-ng do_prepare_write
38041 3.4484 libc-2.3.2.so re_search_internal
37159 3.3684 libc-2.3.2.so _int_malloc
33938 3.0764 syslog-ng affile_find_writer
30920 2.8028 libc-2.3.2.so strptime_internal
30305 2.7471 syslog-ng prepare
27297 2.4744 libc-2.3.2.so transit_state
23447 2.1254 syslog-ng parse_log_msg
23210 2.1039 libc-2.3.2.so memcpy
20568 1.8645 syslog-ng c_vformat_write
19815 1.7962 libc-2.3.2.so __GI_time
19386 1.7573 libc-2.3.2.so __offtime
17908 1.6233 libc-2.3.2.so strcmp
16430 1.4894 syslog-ng c_vformat_length
15923 1.4434 libc-2.3.2.so check_matching
15899 1.4412 syslog-ng expand_macros
15876 1.4391 libc-2.3.2.so __GI_getenv
15568 1.4112 libc-2.3.2.so memset
13982 1.2674 libc-2.3.2.so build_upper_buffer
13210 1.1975 syslog-ng do_distribute_log
12668 1.1483 syslog-ng format_size_in_decimal
12397 1.1238 libc-2.3.2.so __memchr
12311 1.1160 libc-2.3.2.so _IO_vfprintf_internal
11740 1.0642 libc-2.3.2.so re_string_reconstruct
11189 1.0143 libc-2.3.2.so __cfree
john
--
John Morrissey _o /\ ---- __o
jwm at horde.net _-< \_ / \ ---- < \,
www.horde.net/ __(_)/_(_)________/ \_______(_) /_(_)__
More information about the syslog-ng
mailing list