emqx 5.0.19 创建大量连接后集群无法使用 lock_owner_status badrpc,timeout

EMQX 版本

EMQX 安装部署方式

k8s 手动部署 statefulset
rpcdriver 为 ssl

EMQX 集群情况

3个节点集群

服务器(运行 EMQX 的机器)硬件配置

16核 32GB,CPU 型号:Intel Xeon Cascade Lake 8255C(2.5GHz/3.1GHz)

服务器操作系统和平台

euleros 2.9

服务端参数优化情况

压力机硬件配置

压力机使用的测试工具

emqx_bench

压力机参数优化情况

在 EMQX 中启用的功能

只开启了ssl端口 其他功能都是关闭的

测试场景

一台压力机 一个进程 10000链接,跑了一会后 出现链接失败,观察emqx 发现有报错,

kill as it held the lock for too long…

lock_owner_status, {badrpc, timeout}

具体问题

连接数量超过达到 8k 后,无法继续接入新的连接

出现上述报错后,所有客户端均无法连接

进入emqx容器 执行
emqx_ctl cluster status
返回正常的3个节点链接信息

netstat -ano
4370 5370 8883端口均正常展示

使用 curl 测试 5370端口 有概率报错 connection reset by peer

每个节点的内存和CPU占用均不高 内存占用只有200多mb,cpu也很低

建议使用 5.3 试一试, 5.1 之前的版本属于 5.x 初始版本,当时还不太稳定。

好的,我试一下。

尝试切换到5.3 集群无法正常建立,错误

error crasher; inital call; gen rpc client badarg erlang auto_to_list tcp

debug Ekka(AutoCluster) join result reason illegal target target node: emqx@emqx-0.emqx-handless.emqx-31183.svc.cluster.local

能提供下日志文件么,感谢
另外你试一试用全新的(没有旧数据)的环境启动下 5.3 看看

我这里拿不到完整的日志,大概报错就上面的那些,这个有方法排查下吗?

关于第二个问题,我这边是使用k8s部署的,如果要清理的话是不是删掉data文件夹就行了,我刚才尝试删除data文件夹也不行,还是相同的报错。

或者有没有一些工具 命令行可以协助排查一下。

这个错误后面 有个badarg 不知道是什么原因

目前定位到的一个问题是 rpc使用了ssl,这个我按照官网的文档 生成了自签名证书,修改了ssl_dist.conf, 但是服务报错集群无法建立。使用tcp方式就正常了,目前测试之前的场景可以通过。

不过链接建立一段时间后会有若干个被关闭 不知道正不正常。

目前还发现有一个问题,本地使用mqttx连接,连接成功后自动断开重连了,不知道为啥。

你可以将日志等级设置为 debug,这个级别会打印连接断开的原因

请问,有检索关键字吗?开启debug后日志比较多。