用Elixir替换sidekiq作业:如何了解并发性?

时间:2018-08-07 03:54:38

标签: ruby elixir sidekiq

我目前有两名工人正在处理成千上万个工作高峰,这些工作本质上相当于“打开telnet连接,发送一些数据,读取一些数据,关闭”

我一直在探索Elixir,并且正在重建一个我了解和理解的应用程序。

我如何找出我可以同时旋转多少个同时的“工作”(想想:灵丹妙药函数返回布尔值)?

实际上,例如在Ubuntu上可以有多少个开放端口?

1 个答案:

答案 0 :(得分:0)

您可以在Erlang Efficiency Guide中找到一些数字。

具体地说,

  

同时运行的Erlang进程的最大数量为   默认值262,144。可以在启动时配置此限制。欲了解更多   有关信息,请参见erl(1)手册页中的+ P命令行标志。   ERTS。

  

同时打开的Erlang端口的最大数量通常为   默认值为16,384。可以在启动时配置此限制。欲了解更多   有关信息,请参见erl(1)手册页中的+ Q命令行标志。   ERTS。

当然,根据您系统的设计,这些数字可能并不直接相关。正如@Justin Wood提到的那样,您应该具有某种任务管道。

还要看一下exq,它是Elixir的Job处理库,与Sidekiq兼容。这可能会使您的实现更简单。