关于压力测试:DGIOT千万级ZETag云标签压力测试报告

9次阅读

共计 3992 个字符,预计需要花费 10 分钟才能阅读完成。

ZETag 云标签压力测试

[导读]:在软件运行时,设施一直减少,软件内信息量一直晋升,程序压力一直减少,程序的承受能力至关重要。

DGiot 计划:利用 ZETA AP 影子设施模仿 1 万 ZETA AP、千万 ZETag 云标签同时在应用程序中工作;
其余计划:我的项目实际测试软件承受能力
援用


1 概述

1.1 测试背景

随着 ZETA 产业的倒退与业务的深入利用,设施治理、网络管理、应用服务都面临大规模设施接入挑战。ZETA 设施接入服务必须可能反对高并发性 (如超过百万级的并发设施接入)、高速率 (如每秒超过十万事件)、高吞吐量 (如每 100 秒解决超过 GB)。同时,利用事件发生率各不相同,须要接入服务有超强的解决能力,保障利用事件的失常解析。

1.2 测试简介

压力测试是软件质量保证的一项根本行为,是每个重要软件测试工作的一部分。软件压力测试是指对系统一直施加压力的状况下,依据零碎各项指标的变动状况来判断:
1、零碎可能存在的瓶颈;2、零碎负载能力;3、零碎失常运行状况下的运行效率。

图 1 - 理论业务场景

本次压力测试通过模仿 1 万 ZETA AP、千万 ZETA TAG 标签的在线运行,精准高效实现 ZETA AP、ZETag 的在线协定解析、解析数据实时入库、海量数据在线查问与展现等流程。同时,对实在物流业务场景进行形象,实现批次 ZETag 在不同线路上产生轨迹扭转,挪动过程中利用不同的 ZETA AP 实现定位。

ZETag 在线运行过程中,每隔 15 分钟发送心跳包,被邻近的单个或者多个 ZETA AP 报送至服务端。服务端会依照策略抉择信号最好的上报数进行存库,并利用上报信号最好的 AP 对 ZETag 进行定位。

1.3 目标

通过压力测试,判断以后应用环境状况下零碎的负载能力,为今后利用范畴扩充,用户量回升后,服务器扩容、降级等提供必要的技术撑持,及服务器布局等。

本次测试目标是为了验证基于 dgiot 连贯与设施治理平台的 ZETA 物流跟踪治理可能实现千万级 ZETag 云标签同时在线稳固运行、数据及时回传、失常入库、高效查库。

本次测试场景的压力与复杂度远高于实在场景,在保障 ZETA 物流跟踪以后业务能够失常发展的同时,也能够无效撑持 ZETA 相干业务利用的拓展与深入利用。

2 测试环境

2.1 网络

为了尽量避免网络传输给测试后果带来的影响,应该选取外部局域网作为压力测试的网络环境(然而咱们没有专门的局域网,只能用外网测试)。网络框图如下:

图 2 - 网络结构示意图

2.2 腾讯云服务器

平台服务器即连贯与设施治理平台服务器,是压力测试的次要对象。平台服务器为目前正式环境中运行的服务器,应用服务器配置不同,其压力测试后果也不统一。
服务器配置如下:

2.3 应用服务器

服务器配置如下:

2.4 测试机

因为压力测试是对系统负载能力的测试,无奈通过真是的环境来进行获取相干指标,因而通过测试机与测试服务,模仿 1 万 AP、千万 ZETATAG 与服务器高频数据交互,利用算法虚构实在业务场景下理论的操作来进行测试。

测试机部署虚构云设施服务,及进行压力测试的客户端机器,个别采纳高配置的机器来进行测试。
在压力测试过程中,个别疏忽测试机对压力测试后果的影响。
测试机配置(腾讯云服务器):

服务器类型
腾讯云服务器

2.5 条件与限度

为了尽量保障压力测试后果的真实性,在压力测试期间,做如下的条件限度:
1、尽量在局域网内进行压力测试,防止因网络起因干扰测试后果与论断;
2、数据库服务器除了解决测试利用零碎申请外,不进行其它简单利用申请;
3、测试应用服务器不进行其它的失常业务解决,因而压力测试安顿在非工作日进行;
4、压力测试后果疏忽测试机、应用服务器、网络等其它额定的开销,不作为零碎瓶颈的剖析对象。

2.6 测试场景

启动测试机,导入已编写好的服务,设置线路条数、起始地位、发送频率、AP 数量、TAG 取值范畴、等参数信息,便能够启动模仿场景,进行 AP、TAG 与服务器的高频数据交互。

3 测试工具

3.1 测试工具

测试工具:虚构 AP;监控工具:Grafana

3.2 工具简介

利用 ZETAAP 影子设施模仿 1 万 ZETAAP、千万 ZETATAG 同时在应用程序中工作的环境,对应用程序进行负载测试。当应用程序在负载状态下运行时,Grafana 会精确评测、监控并剖析零碎的性能和性能。
ZETAAP 影子设施应用 TCP/IP 协定,次要思维是应用虚构设施来模仿实在设施并发对系统施加压力。通过 ZETAAP 影子设施模仿接管 ZETATAG 标签上报数据,将上报数据上报至服务端。

4 测试场景与指标

ZETAAP、ZETATAG 设施音讯收发是平台功能模块中实现数据网关性能,同时服务器须要进行简单运算的查问、计算。但也是零碎中根本的模块,操作量绝对较大,性能的要求较高,对服务的压力绝对较大。

ZETA 物流跟踪业务场景图

ZETA 设施运行模仿:
ZETA AP:每 10s 被动连贯服务端,间断 30min 未连上期待 2min 再次连贯;
连贯状态下 1min 一次心跳交互;
间断三次未收到 ACK,发动重连。
ZETA TAG:每 15 分钟上报一次心跳包;
心跳报文被不同 AP 接管上报后,服务端会比拟后保留首次
收到 TAG 心跳后 3s 内 RSSI 最强上报的 AP 地位信息作为 TAG 的以后地位。

客户端场景模仿形容:
运输、配送线路:本次场景模仿线路总计 200 条,线路能够配置。
运输车辆:本次场景模仿运输车辆 50000 部,货车会模仿实在物流场景在既定线路上进行挪动,车上 ZETag 云标签随之挪动。
ZETA AP:本次模仿 10000 台,每条线路上散布 500 台 ZETA AP
ZETag 云标签数量:本次模仿在运 ZETag 云标签 1000 万个,ZZETag 云标签随运输车辆挪动,每隔 15 分钟的心跳报文被相邻的 2 - 3 个 ZETA AP 接管。

服务端业务形容:
1、每 15 分钟内实现千万在运 ZETag 云标签心跳数据包解析(加上冗余报文,每 15 分钟内解析心跳报文数量 2000 多万条);
2、实现 ZETag 云标签心跳数据比拟与冗余数据过滤;
3、实现解析出的海量 TAG 地位信息实时分类入库;
4、反对 ZETag 云标签最新地位更新与轨迹查问;
5、每分钟实现 1 万 ZETA AP 的心跳报文解析、存储;
6、实现 ZETA AP 运行状态信息的接管与存储;
7、反对 ZETA AP 运行状态信息查问。
依据测试零碎中音讯的业务场景状况,选取以下指标作为场景压力测试状况判断根据:
A、ZETA AP 在线状况统计
B、ZETA AP 在线率
C、在线 ZETag 云标签数量
D、ZETA 标签解析包数量
E、1/5/15 分钟 CPU 均匀负载
F、内存使用量

5 测试策略

5.1 测试筹备

依照本测试计划及测试计划,筹备测试数据,实现服务部署,并在模仿环境中进行测试运行。

5.2 压力测试

压力测试分以下几种状况测试:

测试内容
测试项阐明

A、ZETA AP 在线状况统计
统计同时在线的 ZETAAP 数量

B、ZETA AP 在线率
在线 ZETAAP 与模仿总量的比值

C、在线 ZETAG 标签数量
统计心跳周期内 ZETAG 在线数量

D、ZETA 标签解析包数量
平台实现的 ZETA 标签解析数量

E、1/5/15 分钟 CPU 均匀负载
平台服务器的 CPU 负载信息

F、内存使用量
平台服务器的内存使用量

压力测试过程中须要记录的性能指标包含:

测试环境
指标

平台指标
最大 AP 在线数 ZETAG 标签并发数 最小响应工夫 最大响应工夫 均匀响应工夫

被测服务器 CPU
最小 均匀 最大

被测服务器内存耗费
最小值 最大值 平均值

6 测试后果

6.1 测试后果数据与剖析图表

ZETag 云标签数据包入库总量(入库超 10 亿条):

ZETA AP 在线数量:

ZETag 云标签在线数量统计(15 分钟最高超过 1856 万):

ZETag 云标签解析数量:(两小时内约解析 1.5 亿条)

1/5/15 分钟 CPU 负载统计:(负载比拟安稳)

内存使用量:(客户端最高 7.19G,服务端最高 29.6G)

磁盘读写测试:

API 压力测试后果:
ZETag 接口
超时工夫为 5 秒
随机读 tag,数据库内数据 58169933 条
tag 生成形式:FF 结尾后六位随机生成

申请次数 / 次
200000

测试总工夫 / 秒
269.583

返回 200 数
120116 / 200000

返回 404 数
79884 / 200000

返回其余状态码
0 / 200000

返回成功率 / %
100

每秒申请数 / 次 / 秒
741.88

  • 返回 status code 为 200(找到指标 tag)或 404(找不到指标 tag)两者都视为调用胜利
    服务器 CPU 负载

服务器内存负载

12.png

ZETag History 接口
超时工夫为 5 秒
对所有 tag 随机读,limit 值为 100,日期范畴在正当范畴内随机产生,数据库内数据 58169933 条
tag 生成形式:FF 结尾后六位随机生成
日期生成形式:1569558137~1569579737 间随机数

申请次数 / 次
200000

测试总工夫 / 秒
298.123

返回 200 数
200000 / 200000

返回其余状态码
0 / 200000

返回成功率 / %
100

每秒申请数 / 次 / 秒
670.86

服务器 CPU 负载

服务器内存负载

14.png

6.2 测试后果剖析
依据以上测试后果可得出以下论断:

测试内容
测试后果(取值范畴)

A、ZETA AP 在线状况统计
9960-20000

B、ZETA AP 在线率
100%

C、在线 ZETag 云标签数量
最大值:18562926

D、ZETag 云标签解析包数量
共计:1010505054

E、1/5/15 分钟 CPU 均匀负载
1 分钟:0.11-15.85 分钟:0.78-13.915 分钟:5.8-11.65

F、内存使用量
服务端:12.46G(均匀)客户端:2.90G(均匀)

经剖析能够得出以下论断:

1、15 分钟内超过千万个(1020 万)的 ZETag 云标签实现了心跳数据包上报、解析、存储;
2、服务运行稳固,内存使用量与 CPU 负载均在安稳状态;

以后存在问题

综上所述,平台能够稳固撑持千万级 ZETag 云标签同时在运的物流跟踪网络经营与业务利用。通过优化策略与扩容能够撑持更大规模、更多畛域的 ZETA 利用。

正文完
 0