对于我的erlang应用程序,我使用了sasl logger和log4erl,当发送给它们的事件数量大约是每秒1000时,两者都表现不佳。 log4erl提供了更好的性能,但一段时间后,它的邮箱开始填满,从而开始使VM膨胀。
使用disk_log是一个更好的选择(因为它会在每秒加载1000个事件的情况下工作吗?)。
我尝试在shell上使用disk_log ...在示例中,他们首先将消息转换为二进制(list_to_binary)并使用“blog”函数写入文件。
这样做有助于我使用高效的大容量记录仪吗?
还有一个疑问:: 使用disk_log:博客文本的大小只有84个字节...但是使用disk_log:log_terms..the大小是970字节..为什么这么大的区别?
答案 0 :(得分:2)
自己捣蛋。具有内存存储和批量转储到光盘的专用记录器是最快的解决方案。如果您无法承受丢失任何数据(如果VM崩溃),请在远程节点上执行此操作。一旦我使用远程“解决方案”,我就会查询每个5秒目标VM。我没有注意到对系统的影响。
答案 1 :(得分:1)
在高容量记录中,我更喜欢经过测试的解决方案,如划线或水槽。检查erl_scribe。