在测试 wso2 流处理器服务器的性能时,我在部署目录中放置了数百个 .siddhi 文件。这导致“到许多打开的文件”问题。
我拥有的基本规则是:
所有规则都听同一个 kafka 主题
每个规则都有自己的组 ID(以便所有规则同时处理流)
当部署文件夹中的 .siddhi 文件数量超过大约 100 时。没有部署其他 .siddhi 文件,并且 siddhi 变得无响应。
谁能告诉我:
1.我哪里出错了?
- 在单个 siddhi 服务器上创建规则的限制是什么?
在测试 wso2 流处理器服务器的性能时,我在部署目录中放置了数百个 .siddhi 文件。这导致“到许多打开的文件”问题。
我拥有的基本规则是:
所有规则都听同一个 kafka 主题
每个规则都有自己的组 ID(以便所有规则同时处理流)
当部署文件夹中的 .siddhi 文件数量超过大约 100 时。没有部署其他 .siddhi 文件,并且 siddhi 变得无响应。
谁能告诉我:
1.我哪里出错了?
这里似乎发生的事情是您用完了打开的文件描述符。正如@pcnfernando 在上一个答案中建议的那样,您可以使用ulimit -n ####
.
然而,真正的问题是为什么会这样?这可能是由于几个原因。您的 siddhi 文件数量,以及 Kafka 主题/分区的数量(因为这也可能导致打开的连接过多)。
因此,即使您使用 解决了问题ulimit -n ####
,最好使用lsof
[1] 进行一些调查,看看是哪个进程实际导致了问题。这将对 Q1 有所帮助。
对于第二季度。定义可以在单个服务器中部署的 Siddhi 规则的数量没有硬性规定。这完全取决于处理能力、内存等变量,当然还有在这种情况下打开文件描述符的数量。
[1] https://www.ibm.com/developerworks/aix/library/au-lsof.html
这可能是由于您的操作系统配置所致。运行以下命令以显示所有当前限制。
ulimit -a
ulimit -n 70000
将设置文件描述符限制。
增加限制后尝试场景。
此外,验证您是在 100 个文件中复制相同的规则,还是在 100 个不同的规则中复制。