性能测试报告
ThingsPanel在Raspberry Pi上的全面性能分析报告
测试结论
ThingsPanel能够在2GB内存的树莓派上稳定运行,适合中小规模IoT应用场景。测试表明系统能够处理每秒约700个数据点的持续写入,足以稳定支持5个设备的100毫秒数据上报,或者20000个温湿度传感器1分钟频率数据上报。主要性能瓶颈是存储I/O性能而非CPU或内存,特别是在使用标准Class 10 TF卡时。通过优化存储介质(如使用A2级SD卡或外接SSD),系统性能还有10-30倍提升空间。整体而言,树莓派是部署ThingsPanel的经济有效选择,为边缘计算IoT应用提供了可行方案。
测试方法
本测试采用了多维度资源监控与实际负载测试相结合的方法,全面评估ThingsPanel在树莓派上的性能表现:
-
系统资源监控:
- 使用自定义脚本
monitor_thingspanel.sh实时监控CPU、内存和各组件资源使用 - 使用
pg_io_monitor.sh专门监控磁盘I/O性能,重点关注数据库分区 - 采样间隔1秒,记录各组件资源占用情况
- 使用自定义脚本
-
负载测试:
- 模拟10个IoT设备并发连接,使用MQTT协议向系统发送数据
- 测试数据发送速率约989点/秒,持续200个循环
- 通过数据库查询验证数据写入成功率和性能
-
性能分析:
- 对比空闲状态和负载状态下的资源使用差异
- 识别系统瓶颈点及其影响程度
- 分析各组件(PostgreSQL、Redis、GMQTT等)的资源占用特征
测试环境
-
硬件平台:
- Raspberry Pi 4
- CPU: 4核心ARM处理器 (aarch64架构)
- 内存: 1849MB (约2GB)
- 存储: Class 10 TF卡,根分区使用率约94%
-
软件环境:
- 操作系统: Raspbian GNU/Linux 11 (bullseye)
- ThingsPanel组件版本:
- PostgreSQL/TimescaleDB (Docker容器)
- Redis (Docker容器)
- GMQTT (PM2管理)
- Backend API (PM2管理)
- Nginx (系统服务)
-
测试工具:
- 自定义资源监控脚本
- MQTT性能测试客户端 (Go语言实现)
- 数据库监控查询脚本
资源使用总结
空闲状态 (无数据写入时)
| 指标 | 使用率 | 实际使用量 |
|---|---|---|
| 总CPU使用率 | 4.2% - 7.4% | 单核最高约7.4% |
| 总内存使用率 | 约35.2% | 约651MB |
| 磁盘写入 | 0 - 0.07MB/秒 | 几乎无写入 |
| ThingsPanel总CPU | 约2.2% | 单核约2.2% |
| ThingsPanel总内存 | 约21.2% |