error_logger 爆炸 具有讽刺意味的是,负责错误日志的进程竟然是最为脆弱的之一.在Erlang的缺省安装中,error_logger39负责记录日志(写入磁盘或者发送到网络上),它的速度要比错误产生的速度慢得多.尤其是在记录用户产生的日志消息(不是错误)或者大量进程崩溃时,更是如此.对于前者,是因为error_logger本来就不适用于记录高度连续的消息.它只适用于真正的异常情况,并不期望过多的消息量.对于后者,是因为崩溃进程的完整状态(包括其消息邮箱)都会拷贝出来进行日志记录.这种消…
对一个运行中的Erlang系统来说,进程绝对是重要的组成部分.正因为进程是所有运行实体的基础,因此会想去了解它们的更多信息.幸运的是,VM提供了大量的可用信息,其中有些可以安全使用,有些在生产环境中使用是不安全的(因为会返回非常大的数据集合,拷贝到shell以及打印所需的内存量会造成节点崩溃). 进程的所有信息都可以通过调用process_info(Pid, Key)或者process_info(Pid, [keys])86得到. 下面是一些常用的键值:…
为过载做计划 到目前为止,我在实际工作中所碰到最常见的错误,基本上都是节点内存耗尽.而且通常都和过长的消息队列有关37.解决这类问题的方法有很多,不过只有在深入.全面的理解系统后,才能做出正确的选择.    基本上,我从事的所有项目都可以简化类比成一个非常大的浴室水槽.用户请求和数据从龙头流入.Erlang系统则是水槽和管道,可以把水流出的地方(数据库,外部API或者服务,等等)看作是下水道系统. 当Erlang节点由于队列溢出而死亡时,找到原因所在是至关重要的.是流入槽中的水太多了吗?是下水道…
1.大家听说Erlang,往往是因为其对高并发的良好支持.其实,Erlang的核心特征是容错,从某种程度上讲,并发只是容错这个约束下的一个副产品.容错是Erlang语言的DNA,也是和其他所有编程语言的本质区别所在. 2.从某种意义上讲,Erlang不仅是一门编程语言,更是一个系统平台.它不仅提供了开发阶段需要的支持,更提供了其他语言所没有的运行阶段的强大支持.其实,在静态检查和测试阶段发现的问题往往都是些“不那么有趣”的问题,那些逃逸出来的bug才是真正难对付的.特别是对于涉及并发和分布式的b…
如果某个进程需要持续地接收新任务,那么其在执行耗时过长的锁或者阻塞操作时,就会出现问题. 最为常见的例子之一就是:某个进程使用了TCP socket,阻塞在了接收新的连接或者等待消息上面.在执行此类阻塞操作时,消息会不受限制地堆积在消息队列中. 一个更为糟糕的例子是我曾经为lhttpc库的某个分支写的http连接池管理器.在大多数测试用例下,它都工作正常,我们甚至把连接的超时时间设置为10ms,以确保不会耗费太多的时间40.正常工作了几周后,该HTTP连接池导致了一次服务中断,原因是有个远程服务…
返回<.Net中的AOP>系列学习总目录 本篇目录 AOP是什么? Hello,World! 小结 本系列的源码本人已托管于Coding上:点击查看,想要注册Coding的可以点击该连接注册. 本系列的实验环境:VS 2013 Update 5(建议最好使用集成了Nuget的VS版本,VS Express版也够用). 这篇博客覆盖的内容包括: AOP简史 AOP解决什么问题 使用PostSharp编写一个简单的切面 AOP是什么? AOP在计算机科学领域还是相对年轻的概念,由Xerox PAR…
1. 如何估算我们这个sprint能做多少个故事点 1) 本能反应 2) 生产率计算  估算生产率/实际生产率  看看团队的历史,看看他们在过去几个sprint里的生产率是多少  然后假定在下一个sprint里生产率差不多  This is also called yesterday's weather    Sprint's Focus Factor                             [Actual Velocity]  [Focus Factor] =  -------…
原文地址:http://hawkon.iteye.com/blog/2093338#bc2355877 前段时间同事参加ITEYE的试读有奖, 没想到得了个奖,拿到一本书.由于同事的推荐我也认真读了一下试读章节,一下就入迷了,于是直接买了一本(当时还不知道他参加试读有奖活动).上个月ITEYE又举行这个活动,我也一起参加,当时写下了这篇读书笔记. 今天无意中看到,把自己写的读书笔记又仔细看了一遍,居然无法想像是出自自己的手中,心中有些感慨,于是转到这里收藏之! 试读活动页面:http://web…
上篇读书笔记系列之:<编写可维护的javascript>读书笔记(上) 上篇说的是编程风格,记录的都是最重要的点,不讲废话,写的比较简洁,而本篇将加入一些实例,因为那样比较容易说明问题. 二.编程实践 1.UI松耦合 第一.将css从javascript中抽离(要改变dom样式数据,应该去操作dom的class名而非dom的style属性,后续要修改此样式只需到对应的css文件中修改而不用修改js文件): 第二.将javascript从HTML中抽离,比如下面的写法是不好的 <!-- 不…
断断续续的,<Android源代码设计模式解析>也看了一遍.书中提到了非常多的设计模式.可是有部分在开发中见到的几率非常小,所以掌握不了也没有太大影响. 我认为这本书的最大价值有两点,一个是从设计模式的角度去理解Android源代码,结合着日常开发中的经常使用类,对设计模式的理解会更加的深刻:另外一个优点就是了解经常使用模式.再看其它人写的代码的时候,更easy理解代码思路. 以下是我的读书笔记和一些思考,设计模式仅仅整理我认为重要的部分. 建造者模式 建造者模式最明显的标志就是Build类,…