It's running in Ubuntu (precise). I'll check it for systemd. I think syslog
call is blocking because of /dev/log . if I use UDP locally, will that
bypass /Dev/log?

On Fri, Nov 28, 2014, 04:08 Rainer Gerhards <[email protected]>
wrote:

> which platform is this running on? Is systemd journal active?
>
> Rainer
>
> 2014-11-27 22:37 GMT+01:00 Mehrdad Pazooki <[email protected]>:
>
> > Hi,
> >
> > I am calling syslog in c++ using syslog.h . the time it takes on each
> call
> > is too long. I am comparing it with IPC Queue and there is almost 100usec
> > overhead when I call syslog() vs ipc.
> > I did some benchmarking, when I use a single process for hitting syslog
> the
> > performance is great it stays at avg 11usec/record for 1m records on my
> > system. but if I run 10 of these processes the time will increase to
> about
> > 100usec/record.
> >
> > Another problem is that memory usage remains really low ~0% so that tells
> > me syslog() is somehow blocking and using cpu rather than do a set an
> > forget to the queue and process it later on. another issue is that all
> > workers are not engage. I see 5 workers but only 3 are working.
> > The way I'm using it in prod is about 500 threads hit syslog(). I need to
> > keep the time it takes for a syslog() call to a constant of 10usec ideal
> to
> > max 40usec.
> > Also, I am not doing openlog() before calling syslog()
> >
> > This is my configuration:
> >
> > #  /etc/rsyslog.conf    Configuration file for rsyslog.
> > #
> > #            For more information see
> > #            /usr/share/doc/rsyslog-doc/
> > html/rsyslog_conf.html
> > #
> > #  Default logging rules can be found in /etc/rsyslog.d/50-default.conf
> >
> >
> > #################
> > #### MODULES ####
> > #################
> > $ModLoad imuxsock # provides support for local system logging
> > $ModLoad imklog   # provides kernel logging support (previously done by
> > rklogd)
> > #$ModLoad immark  # provides --MARK-- message capability
> >
> > # provides UDP syslog reception
> > #$ModLoad imudp
> > #$UDPServerRun 514
> >
> > # provides TCP syslog reception
> > #$ModLoad imtcp
> > #$InputTCPServerRun 514
> >
> >
> > # For debug only
> > # module(load="impstats" interval="1" severity="8")
> >
> > ###########################
> > #### GLOBAL DIRECTIVES ####
> > ###########################
> >
> > #
> > # Use traditional timestamp format.
> > # To enable high precision timestamps, comment out the following line.
> > #
> > $ActionFileDefaultTemplate RSYSLOG_TraditionalFileFormat
> >
> > # Filter duplicated messages
> > $RepeatedMsgReduction off
> >
> > #
> > # Set the default permissions for all log files.
> > #
> > $FileOwner root
> > $FileGroup adm
> > $FileCreateMode 0640
> > $DirCreateMode 0755
> > $Umask 0022
> > $PrivDropToUser root
> > $PrivDropToGroup root
> >
> > #
> > # Where to place spool files
> > #
> > $WorkDirectory /var/spool/rsyslog
> >
> > $ActionResumeRetryCount         -1                    # infinite retries
> if
> > host is down
> > $SystemLogRateLimitInterval     0
> > $SystemLogRateLimitBurst        0
> > $MaxMessageSize                    4k
> >
> > main_queue(
> >     queue.Type="LinkedList"
> >     queue.Size="1000000"
> >     queue.workerThreads="8"
> >     queue.workerThreadMinimumMessages="10000"
> >     queue.SaveOnShutdown="on"
> > )
> >
> >
> >
> > template(name="localone" type="string" string="%msg:2:$%\n") # ":2:$" -->
> > tells rsyslog to ignore the leading char, b/c rsyslog adds a leading
> space
> > to every message
> >
> > if $syslogfacility-text == 'local1' then {
> >     action(
> >         type="omfile"
> >         template="localone"
> >         file="/var/log/local1.log"
> >         flushOnTXEnd="off"
> >         asyncWriting="on"
> >         ioBufferSize="64k"
> >         queue.type="LinkedList"
> >         queue.size="1000000"
> >         queue.dequeueBatchSize="4096"
> >         queue.workerThreads="8"
> >         queue.workerThreadMinimumMessages="10000"
> >         queue.SaveOnShutdown="on"
> >         action.ResumeRetryCount="-1"
> >     )
> >     stop
> > }
> >
> > #if $syslogtag contains 'rsyslogd-pstats' then {
> > #     action(
> > #        type="omfile"
> > #        queue.type="LinkedList"
> > #        queue.discardmark="1000"
> > #        name="pstats"
> > #        file="/var/log/pstats.log"
> > #    )
> > #    stop
> > #}
> > _______________________________________________
> > 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.
> >
> _______________________________________________
> 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.
>
_______________________________________________
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