10 月 23 - 25 日,QCon 上海站即将召开,现在购票,享9折优惠 了解详情
写点什么

Netflix Log4J 优化大规模日志记录

  • 2012-12-10
  • 本文字数:785 字

    阅读完需:约 3 分钟

经过 Netflix 内部优化的 log4j 版本——Blitz4j已经发布到Github 。与其他更传统的日志技术相比,Blitz4j 能够在大规模并发和流量拥挤的环境下高效生成日志,而且消耗的资源更少。这是通过重写log4j 中可能发生同步和死锁的代码部分实现的。

Netflix 对 log4J 的修改包括:

  1. 移除所有关键的同步,使用并发数据结构。
  2. 为内存缓冲区和工作线程提供强大的配置能力。
  3. 使用执行者池模型替换等待 - 通知模型,进一步隔离应用程序线程和日志线程。
  4. 通过可配置的摘要信息在日志高峰期更好地处理日志消息。

Netflix 宣称,使用 Blitz4j 时每秒钟记录 300 到 500 行日志的开销至少降低了75% ,同步相关的处理器使用峰值也完全消失了。现在,即使在高使用量和高日志量的情况下,应用程序也能在一个可接受的时间内做出响应。

随着交易量和每个实例日志需求的增加,Netflix 注意到log4j 消耗的资源越来越多,延缓了它所记录的进程的速度。因为对log4j 的大量投入,他们难以下定决心转移到像LogBack 这样不同的日志技术;相反,他们选择了重写log4j,为无阻塞和异步的日志进行了定制。 Log4j 框架并没有太大的变动;只有影响伸缩性的地方做了修改。

Netflix 的 Karthikeyan Ranganathan 认为,对于刚起步的项目而言 Blitz4j 可能并不是最好的选择。LogBack 是 log4j 团队开发的一个产品,它解决了 Netfliex 团队所关心的很多问题。在这方面,没有使用传统 log4j 框架或者基于slf4j 构建的项目应该考虑使用LogBack 而不是Blitz4j。但是对于在log4j 上有大量投入的公司而言,Blitz4j 是能够记录因特网规模日志的正确选择。

英文原文地址 Netflix Log4J Optimizations Yield Logging at Massive Scale


感谢臧秀涛对本文的审校。

给InfoQ 中文站投稿或者参与内容翻译工作,请邮件至 editors@cn.infoq.com 。也欢迎大家通过新浪微博( @InfoQ )或者腾讯微博( @InfoQ )关注我们,并与我们的编辑和其他读者朋友交流。

2012-12-10 07:324449
用户头像

发布了 321 篇内容, 共 130.4 次阅读, 收获喜欢 19 次。

关注

评论

发布
暂无评论
发现更多内容

week07作业

龙卷风

架构师一期

第七周作业

Geek_ce484f

极客大学架构师训练营

第七周作业

fmouse

极客大学架构师训练营

【第七周】课后作业

云龙

JVM真香系列:轻松理解class文件到虚拟机(上)

田维常

JVM

第七周作业总结

Geek_ce484f

极客大学架构师训练营

7.7 第七周课后练习

张荣召

设计模式

小黄鱼

极客大学架构师训练营

第七周总结

fmouse

极客大学架构师训练营

[架构师训练营第 1 期] 第七周命题作业

猫切切切切切

极客大学架构师训练营

组合模式

猴子胖胖

设计模式 Go 语言

架构师训练营第七周作业

月殇

极客大学架构师训练营

架构师训练营第三周学习笔记

李日盛

设计模式

架构2期 - 第三周作业(2)

浮生一梦

极客大学架构师训练营 第三周总结 2组

week07学习总结

龙卷风

架构师一期

架构师训练营 第三周作业

文江

架构师训练营第 7 周课后练习

叶纪想

极客大学架构师训练营

第三周作业

晴空万里

第三周设计模式总结

leo

极客大学架构师训练营

架构 2 期 - 第三周作业(1)

浮生一梦

极客大学架构师训练营 第三章作业 2组

多团队如何评估故事点(译) ——来自Mike Cohn的建议

Bruce Talk

敏捷开发 Agile 估算与计划

《一本小小的MyBatis源码分析书》.pdf

田维常

电子书

《Java并发编程的艺术》.pdf

田维常

电子书

第七周总结

_

极客大学架构师训练营 第七周总结

Architecture Phase1 Week7:Summarize

phylony-lu

极客大学架构师训练营

[架构师训练营第 1 期] 第七周学习总结

猫切切切切切

极客大学架构师训练营

应用实战——数据库设计时设计标识字段的一些思考【mysql】

老农小江

数据库设计 实战

JVM真香系列:轻松理解class文件到虚拟机(下)

田维常

JVM

架构师训练营第三周作业

leo

极客大学架构师训练营

第三周学习总结

晴空万里

简单工厂模式

猴子胖胖

设计模式 Go 语言

Netflix Log4J 优化大规模日志记录_Java_Harry Brumleve_InfoQ精选文章