[erlang-questions] Is mnesia/erlang/ETP strong enough?

Yang Zhang <>
Wed Feb 11 19:37:46 CET 2009


Hi. Taavi.

Thanks.

 http://erlang.org/faq/how_do_i.html#5.15

really help.  Although I insist on I wrote the correct program(Use tail
recursion, etc), but I confess I know little how to " Limit atom table
growth. Check message queues size. Look for runaway processes. use
erlang:system_monitor/1,/2" .

I think erlang/mnesia designers and implementors are doing well so I can use
it like a idiot. (I lost confidence in SqlServer because its perfomance when
dealing with 100M records, need create big index and is still slow. So I
move to mnesia and continue finding some database except Oracle.  Hope it
can solve my problem.)

-----------------------------------------------------------------------------------------

If you run out of memory, strange things will start to happen regardless of
language..

----------------------------------------------------------------------------------------

I agree, but just few hours after encounter erlang memory problem, I start
to think about the memory problem.

I am running erlang on a server(win2003 server R2)  with 8 CPUs and 10G
memory. I found when erlang consumed ~800M - 1.5G memory, it will crash
itself. Actually meantime OS have ~7G memory free but erl can't use it.  I
start to wonder why can't erlang spawn another real OS erlang process then
share some memory, then it can have memory more than 1.5G. I know on 32bit
system each process has 4G limitation and actually it can only use less than
3G. ( I tested my C# program, it would throw OutOfMemory exception too when
it consumed ~800M - 1.5G memory. But it didn't crash.)

That's why in my previous I have to create several nodes to spawn processes,
with each node run 20 proceses, each node only consume ~100M memory so it
didn't crash.
Thanks again for reply. Just hope erlang can have a more elegant way to
handle memory problem.
On Thu, Feb 12, 2009 at 2:09 AM, Taavi Talvik <> wrote:

>
> On Feb 11, 2009, at 7:09 PM, Yang Zhang wrote:
>
>  After 2 weeks programming and running with erlang program, I got lots
>> of memory error and erl crashed more than 50 times
>>
>
> ...
>
>  Crash dump was written to: erl_crash.dump
>> eheap_alloc: Cannot allocate 373662860 bytes of memory (of type "heap").
>>
>
> http://erlang.org/faq/how_do_i.html#5.15
>
> Look around for processes which grow uncontrolled.
> Split them up. Use tail recursion. Limit atom table growth. Check
> message queues size. Look for runaway processes. use
> erlang:system_monitor/1,/2
>
>  I am using C#/SqlServer to develop program. I haven't seen anytime
>> sqlserver open a table with 6M table will crash itself, I even tried
>> to open a 50M records table.
>> Why erl system so volunerable?
>>
>> Is crash the better way than only ternimate the problem process? Don't
>> know why.
>>
>> Also I have fell in love with erlang, but its so unstable behavior
>> make it far away from my commerial program.
>>
>
>
> If you run out of memory, strange things will start to happen regardless of
> language..
>
> best regards,
> taavi
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://erlang.org/pipermail/erlang-questions/attachments/20090212/d1ed3347/attachment.html>


More information about the erlang-questions mailing list