emqx.conf配置:
listeners {
tcp.default.bind = “0.0.0.0:1883”
tcp.default.acceptors = 64
tcp.default.max_connections = 100
tcp.default.max_conn_rate = “10/s”
}
使用bench测试,命令:./emqtt_bench conn -h 127.0.0.1 --port 1883 -c 200
连接数据达到100后,emqx服务无法接受新的连接,然后停掉emqtt_bench启动的100个连接,观察emqx服务的连接数已经变成了0,此时重新启动./emqtt_bench conn -h 127.0.0.1 --port 1883 -c 200,emqx服务无法接受新的连接请求,观察emqx服务的连接数一直是0,请问:达到emqx设置的最大连接数后会导致emqx服务异常吗?这种情况应该怎么恢复呢?
emqx版本:v5.4.0
bench版本:emqtt-bench-0.4.17-ubuntu18.04-amd64
这个描述看上去是你上一次的连接没有释放。
你可以用 netstats -anpt |grep 1883 看看
如果已经释放后还是无法连接,可以上传一下 emqx 的 debug log 来分析一下。
确实有很多CLOSE_WAIT、SYN_RECV状态的记录,这些记录在连接断开后,需要很长时间(10分钟+)才能释放,这种情况正常吗?
不正常,你得按照系统调优那一个文档调一下操作系统。
这个现象是按照系统调优调整后发生的,帮忙看看还有可能是哪些配置影响吗?
Close_wait要 10 多分才释放,应该是调优的参数没生效,你可以自行搜索一下相关的内容 。