测试目的
测试 EMQX 企业版 4.3.4 单节点并发连接 10 万、以每秒 10 万 QoS 1、payload 200B 的消息发布速率持久化至 TimescaleDB 所需 EMQX 资源及响应时间等性能指标。
测试架构
测试环境、机器配置及测试工具
测试环境
华为云 北京四区
测试工具
XMeter 企业版 v3.0
EMQX、TimescaleDB、测试机配置
服务 | 数量 | 版本 | 操作系统 | CPU | 内存 | 云主机型号 |
---|---|---|---|---|---|---|
EMQX | 1 | 企业版v4.3.6 | Centos 7.8 | 32核 | 64G | C6.8xlarge2 |
PostgreSQL/TimescaleDB | 1 | 13.5 | Centos 7.8 | 16核 | 64G | C6.4xlarge4 |
XMeter管理机 | 2 | 3.2.0 | Centos 7.8 | 8核 | 16G | C6.2xlarge2 |
XMeter压力机 | 10 | / | Centos 7.8 | 8核 | 16G | C6.2xlarge2 |
测试场景
如测试架构图中所示,XMeter 压力机模拟 10 万 MQTT 客户端向 EMQX 发起连接,新增连接速率为每秒 2000,客户端心跳间隔(keep alive)300 秒。所有连接成功后每个客户端每秒发送一条 QoS 为 1、payload 为 200B 的消息,所有消息通过规则引擎存储至 TimescaleDB。
测试执行1个小时。
规则引擎配置
TimescaleDB 资源设置
规则设置
注:为了测试 payload 大小为 200 字节,测试中设计 location 字段 200B。
启用异步、批量插入
PostgreSQL 配置文件
本次测试修改了 PostgreSQL 配置文件 /var/lib/pgsql/10/data/postgresql.conf 中的下面三个参数:
shared_buffers = 25GB
effective_cache_size = 16GB
max_wal_size = 4GB
min_wal_size = 1GB
其他保持默认值。
测试结果
具体测试结果及 EMQX 资源使用截图如下。
EMQX Dashboard 统计
EMQX 规则引擎统计
XMeter 测试报告截图
详细测试结果
详细测试结果请填写右侧表单获取完整版 PDF 文件。