【发布时间】:2018-12-22 02:43:46
【问题描述】:
- 我正在测试在以下环境中将许多设备连接到 FIWARE。
-
每个组件都部署在物理服务器上的容器中。
+-------------------------------------------------+ |Comet - Cygnus - Orion - IoTAgentJSON - Mosquitto| - device*N +-------------------------------------------------+ -
在每个设备以1 msg/sec传输数据的情况下,当设备数量为350时,IoTAgent出现如下错误。(即350 msg/sec)
{"log":"time=2018-12-16T14:57:24.810Z | lvl=ERROR | corr=ec11c37f-5194-4cb3-8d79-e04a2d1e745c | trans=ec11c37f-5194-4cb3-8d79-e04a2d1e745c | op=IoTAgentNGSI.NGSIService | srv=n/a | subsrv=n/a | msg=Error found executing update action in Context Broker: Error: socket hang up | comp=IoTAgent\n","stream":"stdout","time":"2018-12-16T14:57:24.81037597Z"} {"log":"time=2018-12-16T14:57:24.810Z | lvl=ERROR | corr=ec11c37f-5194-4cb3-8d79-e04a2d1e745c | trans=ec11c37f-5194-4cb3-8d79-e04a2d1e745c | op=IoTAgentNGSI.Alarms | srv=n/a | subsrv=n/a | msg=Raising [ORION-ALARM]: {\"code\":\"ECONNRESET\"} | comp=IoTAgent\n","stream":"stdout","time":"2018-12-16T14:57:24.810440213Z"} {"log":"time=2018-12-16T14:57:24.810Z | lvl=ERROR | corr=ec11c37f-5194-4cb3-8d79-e04a2d1e745c | trans=ec11c37f-5194-4cb3-8d79-e04a2d1e745c | op=IoTAgentJSON.MQTTBinding | srv=n/a | subsrv=n/a | msg=MEASURES-002: Couldn't send the updated values to the Context Broker due to an error: Error: socket hang up | comp=IoTAgent\n","stream":"stdout","time":"2018-12-16T14:57:24.810526916Z"} -
请求
ps ax | grep contextBroker命令的结果如下。ps ax | grep contextBroker 19766 ? Ssl 29:02 /usr/bin/contextBroker -fg -multiservice -ngsiv1Autocast -dbhost mongodb-orion-demo -statCounters -statSemWait -statTiming
问题1:原因在哪里?物联网代理?还是猎户座?还是 MongoDB?还是内核参数?
-
Error found executing update action in Context Broker: Error: socket hang up但 Orion 中没有显示错误日志。
问题2:如何提高FIWARE的处理性能?
- 您需要 IoTAgent 的规模吗?
- 您需要考虑 Orion 的参数吗?
- 需要参考以下网址考虑reqPoolSize和maxConnections等值吗?
- https://fiware-orion.readthedocs.io/en/master/admin/perf_tuning/#http-server-tuning
- 您需要 Orion 的秤吗?
问题3:IoT Agent上有批量操作吗?
在下面的页面中,你应该做一个批处理操作,而不是为每个实体打开一个新的连接,但是IoTAgent中有这样的功能吗?
ECONNRESET when opening a large number of connection in small time period
【问题讨论】:
-
您能否编辑您的问题帖子以添加 Orion 进程正在使用的参数?通常是
ps ax | grep contextBroker命令的结果。谢谢! -
我编辑了请求命令的结果并添加了它。谢谢你。 @fgalan
-
如果还有其他必要的命令和信息请告诉我。
-
当您设备的吞吐量为
-
在一个小时的测试中,系统会正常运行,直到设备的吞吐量达到 320 tps。通过设备发送的消息是否在 Comet 中注册来判断系统是否正确运行。
标签: fiware fiware-orion