如何有效地扩展Erlang应用程序以利用系统资源?

时间:2018-04-11 01:47:04

标签: erlang

我正在为许多用户制作应用程序。

然而,我正在坚持使用"扩展以利用耗尽的系统资源。"我希望你能理解我引用那部分的意思。如果没有,也许我可以在将来澄清。

该应用程序支持大约50k消息/秒的SCTP流量。

我正在使用10名主管,其中有很多流程属于工人。

一些分销商用于通过进程ID将SCTP消息传输给工作人员。

经销商工作顺利,没有任何延迟,没有任何消息。

工人必须完成一些任务,这样才能看到经销商。消息队列长度增加。

但是 ,工作人员和主管人员正在坚持下去。" :S

我可以通过Observer捕获这种情况,所有调度程序线程都很忙(红色100%)(我使用的芯片组有32个内核和64 GB RAM)。

同时,CPU负载和RAM消耗不高(使用htop命令)。

那么你能让我知道如何使用这个应用程序来利用几乎系统资源吗?

似乎OTP 18存在一些瓶颈?

谢谢和问候, 杜克。

1 个答案:

答案 0 :(得分:1)

感谢您抽出时间研究这篇文章。得到!!!我发现了问题。它属于Mnesia的读/写性能(我错过了提到我使用Mnesia进行数据库管理)。我阅读了许多讨论Mnesia性能的主题。根据我的经验,可以说:Mnesia with fragment将为我们提供最佳性能,远远超过mnesia:ets或mnesia:async_dirty。

干杯, 杜克