[erlang-questions] error_logger heap overflow
Bogdan Andu
bog09@REDACTED
Tue Nov 20 10:47:40 CET 2012
Hello,
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:
1)
Process Information
Pid
Name/Spawned as
State
Reductions
Stack+heap
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.
2)
Another question is this:
I observed that the ets table ssl_otp_session_cache get large although the client is the same:
=ets:<0.70.0>
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,
Bogdan
More information about the erlang-questions
mailing list