Archive

Posts Tagged ‘Native Process’

Erlang R15最大的卖点Native Process

July 21st, 2011 34 comments

原创文章,转载请注明: 转载自系统技术非业余研究

本文链接地址: Erlang R15最大的卖点Native Process

R15最激动人心的东西就是这个Native Process,请参看Rickard Green写的Future Extensions to the Native Interface:看 这里

我来blabla下。 做过Erlang规模程序的人都知道有个痛, Erlang的公平调度引起的痛。 举个例子,比如说日志服务。当我们的系统有成千上万的进程需要日志服务的时候,我们通常会把日志的内容发给一个日志进程由它来负责持久化。这是个典型的模块划分方法,我们之前的c程序也都是这么干的。但是在erlang下这样很容易有问题。大家知道Erlang讲究公平,进程调度是公平的,port调度是公平的,bif使用是公平的,甚至ets这样的模块使用也是公平的。那么我们就可以这么理解。如果一个系统里面有N个进程需要服务,那么总进程数目是N+1, 平均来分配时间片。反过来说就是这个日志进程只能分的整个系统的1/(N+1)的cpu计算能力,但是要干N个活。后果就是这个进程忙不过来,导致消息队列不停的加大,消息队列需要堆内存,这个内存需求越来越大,最后系统分配不出内存,最终vm挂掉了。
Read more…

Post Footer automatically generated by wp-posturl plugin for wordpress.

Categories: Erlang探索 Tags: ,