[erlang-questions] Erlang node memory consumption grows to 18GB in few seconds
Chaitanya Chalasani
cchalasani@REDACTED
Sun Apr 15 15:17:19 CEST 2018
Thank you for that suggestion, Danil.
However, removing the io:format alone didn’t solve the problem. I had to change the send function too.
From:
send(Data) ->
?MODULE ! {send, Data}.
To:
send(Data) ->
?MODULE ! {send, Data},
ok.
Does the shell also use io:format to show the function return value?
> On 15-Apr-2018, at 18:40, Danil Zagoskin <z@REDACTED> wrote:
>
> Never use io:format("~p") on large data.
> Simple solution is to limit depth: io:format("~P~n", [Data, 30])
>
> On Sat, Apr 14, 2018 at 12:55 PM, Chaitanya Chalasani <cchalasani@REDACTED> wrote:
>> Hi,
>>
>> I see the memory consumption of an erlang node grows exponentially and
>> quickly when I was sending binary data of about 700 MB from shell to a
>> simple erlang listener process and the shell process is stuck.
>>
>> -module(strange).
>> -export([start/0, listener/0, send/1, stop/0]).
>>
>> start() ->
>> register(?MODULE, spawn(?MODULE, listener, [])).
>>
>> listener() ->
>> receive
>> {send, Data} ->
>> io:format("Received Data ~p ~n", [Data]),
>> listener();
>> stop ->
>> io:format("Stopping listener ~n")
>> end.
>>
>> send(Data) ->
>> ?MODULE ! {send, Data}.
>>
>> stop() ->
>> ?MODULE ! stop.
>>
>> $ uname -a
>> Darwin Chaitanyas-MacBook-Pro.local 17.5.0 Darwin Kernel Version 17.5.0: Mon
>> Mar 5 22:24:32 PST 2018; root:xnu-4570.51.1~1/RELEASE_X86_64 x86_64
>>
>> $ erl
>> Erlang/OTP 20 [erts-9.3] [source] [64-bit] [smp:8:8] [ds:8:8:10]
>> [async-threads:10] [hipe] [kernel-poll:false] [dtrace]
>>
>> Eshell V9.3 (abort with ^G)
>> 1> c(strange).
>> {ok,strange}
>> 2> {ok, Data} = file:read_file("centos.iso").
>> {ok,<<51,237,144,144,144,144,144,144,144,144,144,144,144,
>> 144,144,144,144,144,144,144,144,144,144,144,144,
>> 144,144,...>>}
>> 3> strange:start().
>> true
>> 4> strange:send(Data).
>>
>> BREAK: (a)bort (c)ontinue (p)roc info (i)nfo (l)oaded
>> (v)ersion (k)ill (D)b-tables (d)istribution
>>
>> The observer says -
>> <0.53.0> group:server/3 93980000 17957208520 1 erlang:integer_to_list/1
>>
>> The Mac activity monitor shows Erlang consuming 18GB of RAM.
>>
>> Kindly, help me understand what is happening.
>>
>> /Chaitanya
>>
>> _______________________________________________
>> erlang-questions mailing list
>> erlang-questions@REDACTED
>> http://erlang.org/mailman/listinfo/erlang-questions
>>
>
>
>
> --
> Danil Zagoskin | z@REDACTED
More information about the erlang-questions
mailing list