当前位置:  开发笔记 > 运维 > 正文

系统日志性能可以改进吗?

如何解决《系统日志性能可以改进吗?》经验,为你挑选了2个好方法。

我们在Linux上有一个使用syslog机制的应用程序.花了一周时间试图弄清楚为什么这个应用程序的运行速度低于预期,我们发现如果我们删除了syslog,并且只是直接写入日志文件,性能会大大提高.

我理解为什么syslog比直接文件写入慢.但我想知道:有没有办法配置syslog来优化其性能?



1> Torsten Mare..:

您可以将syslogd(和至少rsyslog)配置为不在日志消息之后同步日志文件,方法是在配置文件中的日志文件路径前加上" - ".这样可以降低日志消息在崩溃中丢失的危险,从而加快性能.



2> Phillip Whel..:

有几种方法可以改善系统日志性能:

使用宏优化调用

 int LogMask = LOG_UPTO(LOG_WARNING);
 #define syslog(a, ...) if ((a) & LogMask ) syslog((a), __VA_ARGS__)

 int main(int argc, char **argv)
 {
          LogMask = setlogmask(LOG_UPTO(LOG_WARNING));
          ...
 }

使用宏来过滤syslog调用的一个优点是整个调用被简化为全局变量的条件跳转,如果碰巧有DEBUG调用正在通过其他函数转换大数据集,这非常有用.

setlogmask()

setlogmask(LOG_UPTO(LOG_LEVEL))

setlogmask()将通过不记录到/ dev/log来优化调用,但程序仍将调用用作参数的函数.

使用syslog.conf进行过滤

 *.err                                               /var/log/messages

"查看syslog.conf的手册页以获取详细信息."

配置syslog以执行异步或缓冲日志记录

metalog用于缓冲日志输出并将其刷新为块.据我所知,股票syslog和syslog-ng不这样做.

推荐阅读
手机用户2402852307
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有