如何监测mnesia负荷?

时间:2014-03-19 10:29:34

标签: erlang monitoring mnesia

在使用主要mnesia overloaded个查询和async_dirty表时,我有时会收到ram_copies错误消息。因此,要了解发生了什么,我想获得有关mnesia状态的更多信息,例如每秒查询数或查询队列的大小。我搜索了很多,发现了两种可能的方法。

第一个是mnesia:system_info函数,可以返回当前事务列表。但它似乎无法提供有关非事务性查询的信息。

第二个是订阅mnesia events,但是使用这种方式需要一些活动的后台处理以及手动订阅每个表事件。

是否有更好的方法来获取此信息?

3 个答案:

答案 0 :(得分:1)

我知道这不是最直接的答案,而且我不像四年前那样熟悉代码,但我曾经有过相同的问题并制作了一个监控mnesia的erlang应用程序write statistics提供吞吐量的SVG图:

Mnesia Graphs

如果它是您想要的某种东西,测试会运用以下功能:https://github.com/woahdae/mnesia_graphs/blob/master/test/mnesia_graphs_srv_tests.erl

如果它真的 你想要的东西,我可以再看看这个项目。我再次在Erlang工作,所以这是一个很好的练习。

此外,还有一个提醒,一个好的README用户是谁:四年后你自己!

答案 1 :(得分:0)

默认情况下,它限制为4.
您必须将dc_dump_limit从4更改为50或其他内容。  比它对你有用。

答案 2 :(得分:0)

16 Erlang之前 1> appmon:start(). 需要使用后 1> observer:start(). 您始终需要32位WxWidget

最近两年,我们正在使用Folsomite Erlang event capture,并对我们正在使用的已捕获事件和指标进行触发和可视化IcingaGraphite