[erlang-questions] How to deal with Mnesia core files

Chandru <>
Tue Mar 2 06:33:45 CET 2010


Hi Brian,

On 2 March 2010 03:33, Brian Acton <> wrote:
> Hi guys,
>
> I'm running R13B04 on FreeBSD 7.3-Current and I've been doing some load and
> performance testing. During times of heavy load, Mnesia starts getting
> stressed and I start seeing messages in the logs like this:
>
>  ** WARNING ** Mnesia is overloaded: {dump_log,   write_threshold}

Mnesia uses a few log files to record changes to the tables as it goes
along, and periodically dumps the entire table to disk. You can tweak
this behaviour using the two mnesia parameters:
dump_log_write_threshold
dump_log_time_threshold

>
> After a while, Mnesia starts getting more stressed and I see this error
> message:
>
> ** Too many db tables **

Mnesia uses temporary ets tables for transactions. A new ets table is
created during the execution and deleted when the transaction
finishes. If you have too many transactions starting, it will hit the
default ETS table limit of 1400. See
http://erlang.org/doc/efficiency_guide/advanced.html#id2266338

>
> And then mnesia basically barfs and leaves a file like:
>
> 
>
> I completely understand that software under heavy load may decide to exit
> but I am a little surprised that the process dumps core. Is this by design
> or this unintentional? More importantly, is there any means of interpreting
> the core files using some debug tool? If so, any tips on the magic commands
> to make that happen?

You can use mnesia_lib:vcore/1 to view the mnesia core file.

cheers
Chandru


More information about the erlang-questions mailing list