[erlang-questions] error_logger heap overflow

Bogdan Andu bog09@REDACTED
Tue Nov 20 10:47:40 CET 2012


I have a concurent server that handles ssl conections. I saw that if there are aprox. 20 parallel connections to the server running for about 1 day, the virtual machine dies with the following message:

Slogan: eheap_alloc: Cannot allocate 2850821240 bytes of memory (of type "heap").
System version: Erlang R14B04 (erts-5.8.5) [source] [64-bit] [smp:2:2] [rq:2] [async-threads:0] [kernel-poll:false]


I have two questions:

Process Information

Name/Spawned as
MsgQ Length
<0.5.0> error_logger Garbing
(limited info) 129146284187 356352655 323792

356352655*8 = 2850821240, exactly the value from "Cannot allocate 2850821240 bytes of memory" message.

The error_logger process accumulates a high number of pending messages in the message queue, resulting in heap exhaustion.

The amount and size of the log messages sent to error_logger are normal normal.

How can I make error_logger to process messages faster and to avoid heap overflow error.

Another question is this:

I observed that the ets table ssl_otp_session_cache get large although the client is the same:

Slot: 23
Table: 28695
Name: ssl_otp_session_cache
Buckets: 6224 
Objects: 41912
Words: 2058733

(2058733*8)/(1024*1024) =~ 15 MBytes 

Altough I know the cache entries expire after 24 hours how can I decrease this timeout to 1 hour, for example?

Or how can I disable the ssl caching altogether?

Thank you,


More information about the erlang-questions mailing list