Skip to content
本页目录

产品性能

本产品支持两种数据存储方案,一种是把数据存储在SQLite、Leveldb中,另一种是把数据存储在MySQL、TDengine种。本章节对两种存储形式做性能测试。

测试前准备

  • 1台2c4g虚拟机。
  • 在平创建一个产品,并且批量导入4000个设备。
  • 编写测试驱动。

驱动伪代码实现。

go
func (sd *SimpleDriver) reportDeviceData(d model.Device) {
	for {
		//休眠1s
		time.Sleep(1 * time.Second)
		_, _ = sd.DriverSdk.BatchReport(d.Id, model.NewBatchReport(false,
			model.BatchData{
				Properties: map[string]model.BatchProperty{
					"electric_fr":  {Value: RandomNum()},
					"electric_fra": {Value: RandomNum()},
					"electric_frb": {Value: RandomNum()},
					"electric_frc": {Value: RandomNum()},
					"electric_pfa": {Value: RandomNum()},
					"electric_pfb": {Value: RandomNum()},
					"electric_pfc": {Value: RandomNum()},
					"electric_pqa": {Value: RandomNum()},
					"electric_pqb": {Value: RandomNum()},
					"electric_pqc": {Value: RandomNum()},
				},
			}))
	}
}

func (sd *SimpleDriver) Initialize() error {
	devices := sd.DriverSdk.GetDeviceList()
	for _, device := range devices {
		d := device
		//并发上报
		go sd.reportDeviceData(d)
	}
	return nil
}

让我们把设备数量提升至8000个,并且把实例升级到4c8g,我们再来看一下产品性能表现。

可以从图片看到当设备为8000时,使用4c8g的机器,过去1个小时CPU的平均使用率为百分之60,内存平均使用率仅仅为百分之16!

推荐配置

平台根据接入设备数量不同,机器配置也应该做相应调整,下面给出对照表供大家参考。

设备数量0<设备数<=50005000<设备数<=10000设备数 > 10000
推荐机器配置2c4g4c8g根据情况调整或联系官方解决
磁盘100G ssd磁盘200G ssd磁盘根据情况调整或联系官方解决