error_logger 爆炸

  具有讽刺意味的是,负责错误日志的进程竟然是最为脆弱的之一。在Erlang的缺省安装中,error_logger39负责记录日志(写入磁盘或者发送到网络上),它的速度要比错误产生的速度慢得多。尤其是在记录用户产生的日志消息(不是错误)或者大量进程崩溃时,更是如此。对于前者,是因为error_logger本来就不适用于记录高度连续的消息。它只适用于真正的异常情况,并不期望过多的消息量。对于后者,是因为崩溃进程的完整状态(包括其消息邮箱)都会拷贝出来进行日志记录。这种消息无需太多,就会耗费大量内存,即使不能立即造成节点内存耗尽(OOM),也足以减慢logger的处理速度,使得后续消息不断累积,导致最终的内存耗尽。

  到目前为止,最好的解决方案是使用另外一个日志库:lager。   虽然lager不能解决所有的问题,但是它会删节掉巨大的日志消息,会在超过门限时选择性的丢弃掉OTP产生的错误消息,并且会在用户提交消息时自动地在同步、异步模式间切换,以达到自我调控的目的。   对于有些极端情况,lager也无能为力,比如:用户提交的消息非常巨大,并且都来自一次性进程。不过,这种情况非常少见,而且此时程序员往往具有更多的控制权。

注:目前我理解的方法是,在高度密集的日志需求下实现自定义的日志管理模块,采用“去军保帅”的做法,给消息队列设置高低水位线,超过就丢弃一定的消息。

转载于:https://www.cnblogs.com/rsblog/p/4347453.html

erl_0016 《硝烟中的erlang》 读书笔记003 “error_logger 爆炸”相关推荐

  1. 硝烟中的Scrum——读书笔记

    产品的Story产出需求池中的BackLog,产品的BackLog有两种表现形式: Excel表格 :详细记录并且留存 索引卡 :用作互动,展开演示(在计划会议上) 每个BackLog由三个维度组成: ...

  2. 读书笔记003:托尼.巴赞之思维导图

    读书笔记003:托尼.巴赞之思维导图 托尼.巴赞的<思维导图>一书,详细的介绍了思维发展的新概念--放射性思维:如何利用思维导图实施你的放射性思维,实现你的创造性思维,从而给出一种深刻的智 ...

  3. mozart-oz中有限域编程读书笔记

    mozart-oz自带文档: <Finite Domain Constraint Programming in Oz. A Tutorial.>读书笔记 http://www.mozart ...

  4. 读书笔记003:关于修身、齐家、为人处世的总结——曾国藩家书

    曾国藩家书总结 修身 1.恒.专: 凡事不留待明日,越拖越难清!抓住一切机会! 2.做人戒懒戒躁: 早起.读史.每日读书写读书笔记 3.不嫉妒不过度追求: 不为圣贤,便为禽兽 齐家 1.家庭和睦 2. ...

  5. erl_0015 《硝烟中的erlang》 读书笔记002 “为过载做计划”

    为过载做计划 到目前为止,我在实际工作中所碰到最常见的错误,基本上都是节点内存耗尽.而且通常都和过长的消息队列有关37.解决这类问题的方法有很多,不过只有在深入.全面的理解系统后,才能做出正确的选择. ...

  6. Erlang读书笔记

    Erlang的交互式环境 安装:下载并安装Erlang,在OS的环境变量中添加pathErlangHOME/bin目录 启动:linux 环境:erl,windows: 开始-程序-erlang图标启 ...

  7. 读书笔记003:《伤寒论》-手太阴肺经

    手太阴肺中焦生,下络大肠出贲门,上膈属肺从肺系,系横出腋臑中行.肘臂寸口上鱼际,大指内侧爪甲根,支络还从腕后出,接次指属阳明经.此经多气而少血,是动则病喘与咳,肺胀膨膨缺盆痛,两手交瞀为臂厥.所生病者 ...

  8. 《Natural Language Processing with Python》读书笔记 003期

    这个2554.txt已经改名了貌似,改成2554-0.txt了.把代码也相应改了. 长度变成了:1176965 多了一些编码: >>> len(tokens) 257726 > ...

  9. 推荐一款看书学习必备的读书笔记app

    如果你是看网络小说这种没有深度的书籍倒是不需要做笔记,但是很明显我们看书不仅仅是消遣时间.既然如此那就需要我们在阅读时能随时随地记录下自己的灵感. 你在应用商店里搜索"笔记"大都出 ...

最新文章

  1. 分享实录|区块链技术与智能合约入门(开发实例)
  2. 转载:QTableView中嵌入可视化组件
  3. Oracle入门(十四H)之良好的编程实践
  4. vim 文本编辑器_Vim Windows安装指南–如何在PC上的PowerShell中运行Vim文本编辑器
  5. java跨站点脚本编制_跨站点请求伪造 跨站点脚本编制 通过框架钓鱼漏洞 | 学步园...
  6. mysql 增加一列 伦理名_MySQL错误提示mysql Statement violates GTID consistency
  7. 进程间通信---共享内存 ftok shmat shmget shmdt shmctl
  8. xencenter创建快照和恢复快照
  9. 新手linux安装vasp_VASP软件在ubuntu10.04下的安装过程
  10. PyCharm下载安装主题
  11. 关于SQL数据字典的详解
  12. 计算机文化基础清华大学PPT,数据库基础知识清华大学计算机文化基础.ppt
  13. AspUpload中文手册及语法
  14. System Toolkit 3.3.3 中文版 系统维护工具箱
  15. BZOJ 1984: 月下“毛景树” [树链剖分 边权]
  16. CS信息系统建设和服务认证都有哪些等级?系统集成企业如何评估申报CS认证等级?
  17. 《数据结构》-树(孩子兄弟表示法)
  18. linux tmp php文件怎么打开,tmp文件用什么打开
  19. 基带0day漏洞可攻击数百万部华为手机
  20. AcWing 3565. 完美矩阵 (绝对值不等式)

热门文章

  1. owncloud 10.0 php,基于Linux云服务器CentOS 7上安装OwnCloud 10.0.8
  2. Flink读写Mysql(Java版)
  3. Linux上配置jupyter的步骤及与本地映射
  4. Early Stopping早停法
  5. Java面试的基础题20190301
  6. SQL/PLUS创建JAVA SOURCE的问题,符号提示输入内容
  7. 《Python算法教程》——1.6 如果您感兴趣
  8. mongodb 学习第二天,基本操作
  9. I.MX6 ifconfig: SIOCSIFHWADDR: Cannot assign requested address
  10. 使用valgrind检查cache命中率