ThingsKit开发指南-性能测试-场景A

概述

ThingsKit已被众多公司以单体和微服务部署模式运行在生产环境中。本文主要介绍一下Thingskit以单体模式,部署在阿里云ECS服务器上,模拟5K台设备接入平台的性能情况。

设备数每秒数据点数实例类型队列类型数据库CPU使用率写入IOPS
5K15KAliyun_ecs.c6、4 核(vCPU)、8GB RAM内存PostgreSQL+TimesscaleDB70%850

测试目标

在线5K台设备,每台设备消息包含3个数据点,即每秒上报消息1.5万点,持续运行24小时,服务器平均CPU不超过70%,平均内存不超过70%。

测试版本

Thingskit 物联网基础平台 v1.1.1

测试环境

测试环境(使用阿里云ECS部署)
阿里云服务器数量1
实例规格族ecs.c6
CPU4核(vCPU)
内存8GB
操作系统Ubuntu 22 64位
软件应用Thingskit

阿里云ECS配置截图:

ThingsKit开发指南-性能测试-场景A

测试场景

  • 5000台设备;
  • 单体部署;
  • 通过MQTT每秒5000条消息,每条MQTT消息包含3个数据点,每秒产生15000个数据点;
  • PostgreSQL数据库;
  • TimescaleDB时序插件。

测试方法

在阿里云单个ECS实例上部署了单体ThingsKit实例以及所有相关的第三方组件。通过模拟器,模拟5000台设备连接并上报数据,通过模拟器不断用MQTT发布时间序列数据。

本次测试,模拟平台管理智能电表设备,以JSON数据格式发送消息,其中包含三个数据点:脉冲计数器、泄漏标识和电池电量。每个设备都使用单独的MQTT连接到服务器。ThingsKit物联网平台将所有时间序列数据存储在数据库中。

测试过程记录

5K设备连接及数据观察

ThingsKit平台截图,动态数据实时展示截图:

ThingsKit开发指南-性能测试-场景A

Java VisualVM实时监控截图

Java VisualVM实时监控截图【包含:堆、类、线程】

ThingsKit开发指南-性能测试-场景A

pgAdmin实时监控截图

pgAdmin实时监控截图【包含:每秒事务、服务器会话、元组输入、元组输出、数据块I/O】

ThingsKit开发指南-性能测试-场景A

阿里云资源实时监控截图

测试结果,阿里云,服务器CPU、内存、磁盘读写等运行情况

ThingsKit开发指南-性能测试-场景A

Shell查看服务器实时监控截图

ThingsKit开发指南-性能测试-场景A

运行21小时,Java VisualVM监控截图

Java VisualVM监控截图【包含:堆、类、线程】

ThingsKit开发指南-性能测试-场景A

运行21小时,平台监控截图

ThingsKit开发指南-性能测试-场景A

运行24小时,阿里云资源监控截图

ThingsKit开发指南-性能测试-场景A
ThingsKit开发指南-性能测试-场景A
ThingsKit开发指南-性能测试-场景A

数据存储磁盘资源使用情况

每秒5000台设备x3个数据点x24小时:

  • 一台设备/秒:1台设备1个数据点1秒综合数据约占0.18KB【1台、1秒】;
  • 5K设备/小时:5000台设备3个数据点,在运行1小时后,综合数据所占磁盘9.37GB;
  • 5K设备/天:5000台运行1天时间(24小时)大约224.9GB。

测试结论

据上述测试过程监控分析得出测试结论:在该测试环境下运行,平台支持5K设备同时在线和1.5W每秒的数据并发,系统资源消耗和平台运行状态一切正常。

💡 提示:

本次测试考虑到生产环境的异构性和复杂性,测试指标并未设计为极限测试指标,理论上5K设备和1.5W的数据并发还可以提高。