Erlang 如何监控记忆负荷?

Erlang 如何监控记忆负荷?,erlang,monitoring,mnesia,Erlang,Monitoring,Mnesia,当我主要使用async_dirty查询和ram_拷贝表时,有时会收到mnesia重载错误消息。所以,为了了解发生了什么,我想获得更多关于记忆状态的信息,比如每秒查询的数量或查询队列的大小。我搜索了很多,找到了两种可能的方法 第一个是可以返回当前事务列表的函数。但它似乎无法提供有关非事务性查询的信息 第二种是订阅,但使用这种方式需要一些活动的后台处理以及手动订阅每个表事件 是否有更好的方法获取此信息?默认情况下,它限制为4。 您必须将dc_dump_限制从4更改为50或其他。 我知道这不是最直接的

当我主要使用
async_dirty
查询和
ram_拷贝
表时,有时会收到
mnesia重载
错误消息。所以,为了了解发生了什么,我想获得更多关于记忆状态的信息,比如每秒查询的数量或查询队列的大小。我搜索了很多,找到了两种可能的方法

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

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


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

默认情况下,它限制为4。
您必须将dc_dump_限制从4更改为50或其他。
我知道这不是最直接的答案,我对代码也不像四年前那么熟悉,但我曾经有过同样的问题,我制作了一个监控mnesia write statistics的erlang应用程序,它提供了一个SVG吞吐量图:

如果这是您想要的,那么测试将运行以下功能:

如果这真的是你想要的,我可以再看看这个项目。我又在二郎工作了,所以这是一个很好的锻炼

此外,还有一件事提醒我们:四年后的你自己

在16 Erlang之前
1>appmon:start()。
在你需要使用
1>观察者:开始()。
任何时候都需要32位


在过去两年中,我们使用and来触发和可视化我们正在使用的捕获事件和指标,并且

您能否更具体地说明您想要什么类型的信息?这并不完全清楚。@IGIVECRAPANSWERS,任何关于查询执行率的信息。它可能是在最后一秒钟内执行的元素读取/写入数。也可能是排队但未完成的基本读/写次数。
dc\u dump\u limit
控制从内存转储
disc\u副本的频率。在我的情况下,它不会有帮助,因为我没有
光盘拷贝
表。无论如何,问题是如何测量导致过载的“负载”-mnesia dc_dump_limit Number和(Log)>(filesize(Tab)/dc_dump_limit)是一个配置参数。确定。看来没有办法避免主动监视。谢谢你的回答。我来看看你的代码。