对一个运行中的Erlang系统来说,进程绝对是重要的组成部分.正因为进程是所有运行实体的基础,因此会想去了解它们的更多信息.幸运的是,VM提供了大量的可用信息,其中有些可以安全使用,有些在生产环境中使用是不安全的(因为会返回非常大的数据集合,拷贝到shell以及打印所需的内存量会造成节点崩溃). 进程的所有信息都可以通过调用process_info(Pid, Key)或者process_info(Pid, [keys])86得到. 下面是一些常用的键值:…
<玩转Django2.0>读书笔记-Django配置信息 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 项目配置是根据实际开发需求从而对整个Web框架编写相应配置信息.配置信息主要由项目对“setting”实现,主要配置有项目路径,密钥配置,域名访问权限,App列表,配置静态资源,配置模板文件,数据配置,中间件和缓存配置. 一.基本配置信息 一个简单对项目必须具备对基本配置信息有:项目路径,密钥配置,域名访问权限,App列表和中间件.以“MyWeb”项目为例,setting…
重点函数:fork,exit,_exit 一.fork 函数原型: #include <unistd.> pid_t fork(void) 函数说明:fork函数将创建一个子进程,该函数调用一次,但是有两次返回.子进程返回值为0,父进程的返回值是该子进程的进程ID. 小技巧:父进程能够拿到该次fork生成的子进程的ID,这是唯一的机会.而子进程不需要关心自己的进程ID.通过是否关心子进程id,就能明确地区分是父进程还是子进程. 相关的函数: 获取自己的进程ID:getpid() 获取父进程ID…
error_logger 爆炸 具有讽刺意味的是,负责错误日志的进程竟然是最为脆弱的之一.在Erlang的缺省安装中,error_logger39负责记录日志(写入磁盘或者发送到网络上),它的速度要比错误产生的速度慢得多.尤其是在记录用户产生的日志消息(不是错误)或者大量进程崩溃时,更是如此.对于前者,是因为error_logger本来就不适用于记录高度连续的消息.它只适用于真正的异常情况,并不期望过多的消息量.对于后者,是因为崩溃进程的完整状态(包括其消息邮箱)都会拷贝出来进行日志记录.这种消…
为过载做计划 到目前为止,我在实际工作中所碰到最常见的错误,基本上都是节点内存耗尽.而且通常都和过长的消息队列有关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] =  -------…
进程是操作系统运行程序的一个实例, 也是操作系统分配资源的单位. 在Linux环境中, 每个进程都有独立的进程空间, 以便对不同的进程进行隔离, 使之不会互相影响. atexit函数 #include <stdlib.h> int atexit(void (*function)(void)); atexit用于注册进程正常退出时的回调函数. 若注册了多个回调函数, 最后的调用顺序与注册顺序相反:类似于栈. 使用atexit注册的退出函数是在进程正常退出时, 才会被调用. 这里的正常退出是指,…