3

对于我的 erlang 应用程序,我同时使用了 sasl logger 和 log4erl,当发送给它们的事件数量约为每秒 1000 时,两者的性能都很差。log4erl 提供了更好的性能,但一段时间后它的邮箱开始填满,从而开始使 VM 膨胀。

使用 disk_log 会是一个更好的选择(因为它会在每秒负载 1000 个事件的情况下工作吗?)。

我尝试在外壳上使用disk_log ...在示例中,他们首先将要记录的消息转换为二进制(list_to_binary)并使用“blog”函数写入文件。

这样做会帮助我使用高效的大容量记录器吗?

还有一个疑问:: 使用 disk_log:blog 的文本大小只有 84 字节......但是使用 disk_log:log_terms ..大小是 970 字节..为什么会有这么大的差异?

4

2 回答 2

2

自己破解一些东西。具有内存存储和批量转储到磁盘的专用记录器是最快的解决方案。如果您无法承受丢失任何数据(在 VM 崩溃的情况下),请在远程节点上执行此操作。一旦我使用了远程“解决方案”,我每 5 秒查询一次目标虚拟机。我没有注意到对系统的影响。

于 2011-03-01T14:15:30.747 回答
1

在大容量日志记录方面,我更喜欢经过实战考验的解决方案,例如 scribe 或 flume。检查erl_scribe

于 2011-03-01T15:36:09.383 回答