【问题标题】:Log4j AsyncAppenderLog4j AsyncAppender
【发布时间】:2011-09-08 15:46:08
【问题描述】:

我们有一个使用 log4j 的高速、大容量应用程序。通常我们一直在使用 SyslogAppender,认为它是重量最轻、速度最快的 appender。但是我们看到 SYSLOG 在高容量下的 CPU 利用率很高(因为 SYSLOG conf 中的过滤规则)。

我们可能想切换到使用 FileAppender。问题是我们是否想将它与 log4j AsyncAppender 结合使用来消除由于刷新(强制)到磁盘而导致的任何暂停?

(该应用程序对延迟非常敏感,因此我们希望最大限度地减少附加程序可能添加的任何延迟。)另外 - 我不太确定 SyslogAppender 是否真的比 FileAppender 更快(但自从我开始以来就是这样)。

对此的任何想法将不胜感激。

【问题讨论】:

    标签: java log4j low-latency


    【解决方案1】:

    我肯定会使用 AsyncAppender。

    我看到一个低延迟应用程序几乎停止使用标准文件附加程序。诚然,他们在共享硬件和磁盘上使用 (OS)VM,因此一个 VM 可以独占磁盘 IO,并在尝试记录时让其他 VM 停止。

    您还可以研究日志记录到 JMS 和其他异步策略。

    【讨论】:

    • 感谢您的评论。它似乎不会受到伤害,并且可能会有所帮助。
    • 我们做了一堆基准测试,与使用 immediateFlush=false 的普通文件 appender 相比,使用 Async appender 似乎变得更糟了。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-02-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多