【发布时间】:2011-04-05 10:19:51
【问题描述】:
我的应用程序基本上是一个基于内容的路由器,它将路由 MMS 事件。
我使用的记录器是 OTP 框架自带的 SASL 模式“error_logger”
问题是::
我正在使用客户端生成具有默认值的 MMS 事件。此客户端(在 Java 中)能够以多个线程
发送大量事件我在 10 个线程中发送 100 个事件(每个线程发送 10 个 MMS 事件)到我用 Erlang/OTP 编写的路由器。
问题是,当我的路由器收到如此高的负载时,我的 Logger 挂起,即它停止更新我的日志文件。但是路由器仍然能够路由事件。
我得出的结论是::
-
当接收到如此高负载的事件时,Erlang 中的调度问题(每个事件都有一个单独的进程)。
-
极不可能的死锁状态。
-
可能是由于在多个线程中发送事件而不是按顺序发送事件。但是我猜一个路由器会连接到多个服务提供者盒子,所以我想到了在线程中发送事件。
任何人都可以帮助 mw 揭开这个问题的神秘面纱吗?
【问题讨论】:
-
我尝试在 Erlang 14A 64 位版本上运行我的应用程序..但仍然面临同样的问题:(。我实际记录的是成功处理的事件的时间和一些额外细节通过我的应用程序..结果是完整行的 3/4。我需要这些日志,因为我的外部脚本将使用日志中的信息来显示给定时间段内成功事件的数量.. 直到现在我error_logger 只是挂起但从未崩溃。如果它崩溃了,它会将我的整个应用程序带到地面吗??
标签: erlang logging freeze erlang-otp