mqtt经纪商发行受高利率连接限制

我正在执行一些独立的python脚本,它们并行运行,并且每隔10ms向Mosquitto代理发布消息(每个110字节)。 每个脚本发布到不同的主题。

mqtt代理安装在树莓派3(Raspbian 8)上,而脚本在Osx Sierra上运行。

不幸的是,当我执行它们,几秒钟后,他们崩溃的错误(每个脚本重复):

File "/Users/giordano/Dropbox/Andrea/tesi/sensorsScripts/simulatedsensors/RT-accSimulation.py", line 58, in <module> mqttClient = mqtt.Client() File "/Library/Python/2.7/site-packages/paho/mqtt/client.py", line 497, in __init__ self._sockpairR, self._sockpairW = _socketpair_compat() File "/Library/Python/2.7/site-packages/paho/mqtt/client.py", line 245, in _socketpair_compat sock1.connect(("127.0.0.1", port)) File "/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/socket.py", line 228, in meth return getattr(self._sock,name)(*args) socket.error: [Errno 49] Can't assign requested address 

试图解决这个问题,我试图同时执行较less的脚本和…它的工作! (我尝试了所有的组合,所以问题不限于特定的脚本,它们是完全相同的)。 此外,我也试图一起执行所有的脚本,但降低了出版率…它也工作了!

从那以后,我认为对于多个并发连接的限制或高数据率附近的问题或类似的东西(我没有经验)。

然后在树莓上编辑etc / mosquitto / mosquitto.conf文件:

 max_inflight_messages 0 (unlimited) max_queued_messages 0 (unlimited) max_connections -1 (unlimited) 

然后在树莓上编辑etc / security / limits.conf文件:

 hard nofile 10000000 soft nofile 10000000 

然后在树莓上编辑etc / sysctl.conf文件:

 fs.file_max = 10000000 fs.nr_open = 10000000 

我发现google了一下。

在我执行的Osx一边:

 sudo sysctl -w kern.maxfiles=1048600 sudo sysctl -w kern.maxfilesperproc=1048576 ulimit -S -n 1048576 

但没有任何改变。 我该如何处理呢? 如果有一个更好的performance经纪人,我可以考虑也改变蚊子。