EMQX开源版本支持百万连接吗

环境信息

  • EMQX 版本:v4.x
  • 操作系统及版本:Docker

问题描述

EMQX 开源版本支持百万连接吗?记得以前开源版本只支持10万,企业版才是100万,现在没找到这个对比了。

支持的,理论上纯连接的话 8C16G 可以到100w,当然服务器、压力客户端机器之类的需要一些调优的。可以压测试试

我服务器是8c32g,按照文档里的调优之后,3台服务器用jmeter压测只能到8万的连接数,为啥差别这么大

应该很多操作系统的参数要打开。连接数上不去有错误日志吗?贴出来学习一下。

都打开了,按照文档里的系统调优都做了,日志里啥都没有,有几次broker直接崩溃。
我是用jmeter压测的,那个mqtt-bench编译一直失败,直接放弃

压测机是3台 16核心64G的机器,emqxbroker也是16核心64G的机器,
使用jmeter压测,纯连接,2000并发都不到。与你们官网百万并发也差距太大了吧

我在单台 8C16G 上做其他测试时都能超过了 10 万以上的并发, 16C64G 不可能才跑 2000 的并发。
因为 MQTT 的特性,测试时的订阅、发布和主题间的关系和模型对性能的影响很大

我的emqx-broker是docker方式运行的,确实不到2000并发,但是如果改成deb安装,能够达到1万的并发。虽然仍是远远达不到预期,但是好多了

另外,我已经按照你们官网的文档进行了调优,仍然距离百万的差距很大很大https://www.emqx.io/docs/zh/v4.4/tutorial/tune.html,也不是抱怨吧,就是感觉很奇怪啊,一般http都能勉强达到1万,mqtt理论上专为高性能而生,怎么说,性能应该非常非常哇塞才对

我上面提到了不同的 Pub Sub 和 Topic 的模型,性能可能会出现很大的不同
你只你的并发不高,建议提供更详细的信息:

  1. EMQX 版本,启用的功能
  2. 物理机器/云服务器参数
  3. Pub 模型
  4. Sub 模型
  5. 压测机参数和压测方式

你这边的 1w 并发是指 同时在线 1w 连接还是 1w 的连接速度?

1.emqx版本:4.3.10
2.云服务器:华为云 16vCPUs | 64GiB | c6.4xlarge.4
3.无pub
4.无sub
5.压测机参数:1台master(仅作压测任务分发,结果收集) 华为云8vCPUs | 16GiB | c6.2xlarge.2
3台slave(实际压测负载) 华为云16vCPUs | 64GiB | c6.4xlarge.4

压测目标:1秒连接1万个客户端
压测脚本:见下图

emqx如果是docker形式安装部署的,则每秒最多2000连接,如果是deb方式安装的,勉强1万

100w 不是只每秒百万的连接建立速度哈,指的是同时在线的客户端数量

1秒连接1万台客户端

啊 我的龟龟 我理解完全错误了 ,对不住了大佬 浪费您时间了 实在不好意思 【手动狗头】

一般场景下这都够用的(除非是暴力重连和大量客户端做连接迁移的时候,会阻塞一些,会导致客户端全部上线回来比较慢)

HTTP 能到 1w 它很有可能是底层也只有几十或者几百个 Socket 进行的连接复用,要是每个请求都重新创建 Socket 性能消耗就会大很多。

嗯 感谢大佬解惑,胜读十年书