[erlang-questions] Erlang OTP 18 memory leak / SSL
Mon Sep 21 09:51:38 CEST 2015
2015-09-20 15:24 GMT+02:00 Sereysethy TOUCH <>:
> I did as what you told me by getting a shell console on the node.
> I run memory(). and see ets ate the most memory. And it increased
> overtime. I run ets:i(). and I found out the ssl_manager took a big chunk
> of what memory used.
> 32794 client_ssl_otp_session_cache ordered_set 0 89
> 36891 server_ssl_otp_session_cache ordered_set 1564 67995
> 40993 httpc_manager__session_cookie_db bag 0 299
> So I think there is a problem with ssl_manager in Erlang OTP 18.
> Any workarounds?
Ok, the bug I fixed with the session table is on the client side. But your
big ets table is on the server side.
Session data is by default fairly long lived (24 h that is the max
recommended time to keep a session by the RFC),
you can set the ssl application variable session_lifetime to make its
lifetime shorter which should mitigate your problem.
We have a backlog item to make a configurable threshold of max sessions
allowed to be stored in the table, which I am sure will be
implemented fairly soon but alas not for 18.1.
Regards Ingela Erlang/OTP Team - Ericsson AB
> On Sun, Sep 20, 2015 at 2:22 AM, Jesper Louis Andersen <
> > wrote:
>> On Sat, Sep 19, 2015 at 6:34 PM, Sereysethy TOUCH <
>> > wrote:
>>> I just recently updated Erlang to latest version OTP 18 on Ubuntu
>>> server. It uses cowboy (websocket), ranch, ssl, erlydtl & rabbitmq. It used
>>> to work fine in OTP 17. The program is correctly compiled but during the
>>> execution the memory kept increasing. I need to restart the process every
>>> one or two hours to free some memory.
>> 1. Get a shell console on the node
>> 2. call 'memory().' in the shell
>> 3. If it reports ets as the winner, call
>> 4. ets:i().
>> This will give you a nice overview for where to look and verify it is the
>> SSL problem.
> erlang-questions mailing list
-------------- next part --------------
An HTML attachment was scrubbed...
More information about the erlang-questions