CN111143143B - 一种性能测试方法及装置 - Google Patents

一种性能测试方法及装置 Download PDF

Info

Publication number
CN111143143B
CN111143143B CN201911365674.0A CN201911365674A CN111143143B CN 111143143 B CN111143143 B CN 111143143B CN 201911365674 A CN201911365674 A CN 201911365674A CN 111143143 B CN111143143 B CN 111143143B
Authority
CN
China
Prior art keywords
task
memory
manager
tested
test
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN201911365674.0A
Other languages
English (en)
Other versions
CN111143143A (zh
Inventor
龙春竹
朱海涅
徐越
刘燕
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Nsfocus Technologies Inc
Nsfocus Technologies Group Co Ltd
Original Assignee
Nsfocus Technologies Inc
Nsfocus Technologies Group Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Nsfocus Technologies Inc, Nsfocus Technologies Group Co Ltd filed Critical Nsfocus Technologies Inc
Priority to CN201911365674.0A priority Critical patent/CN111143143B/zh
Publication of CN111143143A publication Critical patent/CN111143143A/zh
Application granted granted Critical
Publication of CN111143143B publication Critical patent/CN111143143B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/22Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing
    • G06F11/2205Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing using arrangements specific to the hardware being tested
    • G06F11/2236Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing using arrangements specific to the hardware being tested to test CPU or processors
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/22Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing
    • G06F11/2273Test methods
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/3668Software testing
    • G06F11/3672Test management
    • G06F11/3688Test management for test execution, e.g. scheduling of test suites
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5027Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Quality & Reliability (AREA)
  • Software Systems (AREA)
  • Test And Diagnosis Of Digital Computers (AREA)

Abstract

本发明公开了一种性能测试方法及装置,其中,方法包括:获取待测试系统的初始参数;将初始参数输入至预设算法中,得到性能参数;将性能参数作为测试参数,对待测试系统进行性能测试;若确定待测试系统未通过性能测试,则调整初始参数,直至确定待测试系统通过性能测试。该技术方案用以对基于Flink框架构建的业务系统进行性能测试。

Description

一种性能测试方法及装置
技术领域
本发明实施例涉及测试领域,尤其涉及一种性能测试方法及装置。
背景技术
Flink核心是一个流式的数据流处理引擎,其针对数据流的分布式引擎提供了数据分析、数据通信以及容错机制等功能。在实际业务场景适用中,包括实时分析,连续数据管道处理、历史数据处理和迭代算法(机器学习、图计算)等数据分析场景;通过结合Time、Window、Trigger等多种处理机制,Flink提供了高性能、低延迟、高容错且功能强大的流式处理服务。
现有技术中,主要提供对Flink框架本身的基准测试,如基准测试工具HiBench、streaming-benchmarks等,主要侧重于对Flink框架本身的单元业务进行单独测试。基准测试工具不能对基于Flink框架构建的业务系统进行性能测试。
发明内容
本发明实施例提供一种性能测试方法及装置,用以对基于Flink框架构建的业务系统进行性能测试。
本发明实施例提供的一种性能测试方法,包括:
获取待测试系统的初始参数;
将所述初始参数输入至预设算法中,得到性能参数;所述预设算法是根据已有业务系统在历史测试用例下确定的初始参数和性能参数之间的运算关系;
将所述性能参数作为测试参数,对所述待测试系统进行性能测试;若确定所述待测试系统未通过所述性能测试,则调整所述初始参数,直至确定所述待测试系统通过所述性能测试。
可选的,所述初始参数包括输入数据量和任务管理器中任务槽个数;
所述性能参数至少包括所述任务管理器的个数、所述任务管理器的内存、所述任务管理器中任务槽个数、线程并行数、作业管理器的内存;
所述将所述初始参数输入至预设算法中,得到性能参数,包括:
根据所述输入数据量和单线程的预设数据处理速度,确定所述线程并行数;
根据所述输入数据量和单线程所占的预设内存,确定所述任务管理器的内存;
根据所述线程并行数、所述任务槽个数,确定所述任务管理器的个数;
根据所述任务管理器的个数、所述任务管理器的内存确定所述作业管理器的内存。
可选的,所述根据所述输入数据量和单线程的预设数据处理速度,确定所述线程并行数,包括:
根据公式(1)确定所述线程并行数;
所述公式(1)为:
P为线程并行数;X为输入数据量;S为单线程的预设数据处理速度。
可选的,所述根据所述线程并行数、所述任务槽个数,确定所述任务管理器的个数,包括:
根据公式(2)确定所述任务管理器的个数;
所述公式(2)为:
N任务管理器为任务管理器的个数;P为线程并行数;N任务槽为任务管理器中任务槽个数。
可选的,所述根据所述任务管理器的个数、所述任务管理器的内存确定所述作业管理器的内存,包括:
根据公式(3)确定所述作业管理器的内存;
所述公式(3)为:
M作业管理器=N任务管理器×M任务管理器
M作业管理器为作业管理器的内存;N任务管理器为任务管理器的个数;M任务管理器为任务管理器的内存。
可选的,所述调整所述初始参数,包括:
将所述任务管理器中任务槽个数增加预设个数后,作为所述任务管理器中调整后的任务槽个数。
可选的,所述根据所述输入数据量和单线程所占的预设内存,确定所述任务管理器的内存,包括:
若所述任务槽个数是所述任务管理器中初始任务槽个数,则根据公式(4)确定所述任务管理器的内存;
所述公式(4)为:
M任务管理器0=M单线程+log2(X+k1)
M任务管理器0为任务管理器的初始内存;M单线程为单线程所占的预设内存;X为输入数据量;k1为根据经验确定的参数;
若所述任务槽个数是所述任务管理器中调整后的任务槽个数,则根据公式(5)确定所述任务管理器的内存;
所述公式(5)为:
M任务管理器1=k2M任务管理器0
M任务管理器1为任务管理器在任务槽个数调整后所对应的内存;k2为系数,k2的取值由任务管理器中调整后的任务槽个数和初始任务槽个数确定。
可选的,所述确定所述待测试系统通过所述性能测试,包括:
若确定所述待测试系统在所述性能测试中符合预设条件,则确定所述待测试系统通过所述性能测试;所述预设条件包括:
所述任务管理器的个数占所述待测试系统的CPU总数的比例小于第一预设值;且所述作业管理器的内存占所述待测试系统的总内存的比例小于第二预设值;且所述待测试系统的负载不大于所述待测试系统的CPU总数;且所述待测试系统维持稳定运行的持续时长不小于预设时长。
可选的,所述获取待测试系统的初始参数,包括:
获取测试用例集中的测试用例;所述测试用例集中每个测试用例的初始参数不同;
从所述测试用例中确定所述测试用例的初始参数。
可选的,在所述确定所述待测试系统通过所述性能测试之后,还包括:
获取所述测试用例的下一个测试用例,以对所述待测试系统进行所述下一个测试用例对应的性能测试。
可选的,在所述确定所述待测试系统通过所述性能测试之后,还包括:
确定所述性能测试时所述待测试系统的运行数据,以用于评估所述待测试系统的数据处理能力和/或资源占用情况;
其中,用于评估所述待测试系统的数据处理能力的运行数据至少包括以下之一或组合:输入数据量、输出数据量、数据处理完成度;
用于评估所述待测试系统的资源占用情况的运行数据至少包括以下之一或组合:CPU占用比、系统负载比、物理内存占用比、虚拟内存占用比、进程堆内存占用比、磁盘IO占用比、网卡网络IO占用分析。
上述技术方案中,通过已有业务系统在历史测试用例下的性能测试,确定的初始参数和性能参数之间的运算关系,进而实现在对于待测试系统进行性能测试时,可以直接根据获取到的初始参数确定待测试系统的测试参数,并根据该测试参数对待测试系统进行性能测试,从而实现对基于Flink构建的业务系统的性能测试。进一步的,提供性能测试过程中的动态调优策略,在确定待测试系统无法通过当前性能测试时,动态调整初始参数,以根据调整后的初始参数确定调整后的性能参数,然后再次对待测试系统进行性能测试,直至确定待测试系统通过性能测试,通过该方式不仅可以实现自动化的对待测试系统的性能测试,而且可以确定出在特定输入数据量情况下待测试系统的具体参数配置。
相应的,本发明实施例还提供了一种性能测试装置,包括:
获取单元、算法单元和测试单元;
所述获取单元用于获取待测试系统的初始参数;
所述算法单元用于将所述初始参数输入至预设算法中,得到性能参数;所述预设算法是根据已有业务系统在历史测试用例下确定的初始参数和性能参数之间的运算关系;
所述测试单元用于将所述性能参数作为测试参数,对所述待测试系统进行性能测试;若所述测试单元确定所述待测试系统未通过所述性能测试,则所述算法单元调整所述初始参数,直至所述测试单元确定所述待测试系统通过所述性能测试。
可选的,所述初始参数包括输入数据量和任务管理器中任务槽个数;
所述性能参数至少包括所述任务管理器的个数、所述任务管理器的内存、所述任务管理器中任务槽个数、线程并行数、作业管理器的内存;
所述算法单元具体用于:
根据所述输入数据量和单线程的预设数据处理速度,确定所述线程并行数;
根据所述输入数据量和单线程所占的预设内存,确定所述任务管理器的内存;
根据所述线程并行数、所述任务槽个数,确定所述任务管理器的个数;
根据所述任务管理器的个数、所述任务管理器的内存确定所述作业管理器的内存。
可选的,所述算法单元具体用于:
根据公式(1)确定所述线程并行数;
所述公式(1)为:
P为线程并行数;X为输入数据量;S为单线程的预设数据处理速度。
可选的,所述算法单元具体用于:
根据公式(2)确定所述任务管理器的个数;
所述公式(2)为:
N任务管理器为任务管理器的个数;P为线程并行数;N任务槽为任务管理器中任务槽个数。
可选的,所述算法单元具体用于:
根据公式(3)确定所述作业管理器的内存;
所述公式(3)为:
M作业管理器=N任务管理器×M任务管理器
M作业管理器为作业管理器的内存;N任务管理器为任务管理器的个数;M任务管理器为任务管理器的内存。
可选的,所述算法单元具体用于:
将所述任务管理器中任务槽个数增加预设个数后,作为所述任务管理器中调整后的任务槽个数。
可选的,所述算法单元具体用于:
若所述任务槽个数是所述任务管理器中初始任务槽个数,则根据公式(4)确定所述任务管理器的内存;
所述公式(4)为:
M任务管理器0=M单线程+log2(X+k1)
M任务管理器0为任务管理器的初始内存;M单线程为单线程所占的预设内存;X为输入数据量;k1为根据经验确定的参数;
若所述任务槽个数是所述任务管理器中调整后的任务槽个数,则根据公式(5)确定所述任务管理器的内存;
所述公式(5)为:
M任务管理器1=k2M任务管理器0
M任务管理器1为任务管理器在任务槽个数调整后所对应的内存;k2为系数,k2的取值由任务管理器中调整后的任务槽个数和初始任务槽个数确定。
可选的,所述测试单元具体用于:
若所述测试单元确定所述待测试系统在所述性能测试中符合预设条件,则确定所述待测试系统通过所述性能测试;所述预设条件包括:
所述任务管理器的个数占所述待测试系统的CPU总数的比例小于第一预设值;且所述作业管理器的内存占所述待测试系统的总内存的比例小于第二预设值;且所述待测试系统的负载不大于所述待测试系统的CPU总数;且所述待测试系统维持稳定运行的持续时长不小于预设时长;。
可选的,所述获取单元具体用于:
获取测试用例集中的测试用例;所述测试用例集中每个测试用例的初始参数不同;
从所述测试用例中确定所述测试用例的初始参数。
可选的,所述获取单元还用于:
在所述测试单元确定所述待测试系统通过所述性能测试之后,获取所述测试用例的下一个测试用例,以使所述测试单元对所述待测试系统进行所述下一个测试用例对应的性能测试。
可选的,所述测试单元还用于:
在所述确定所述待测试系统通过所述性能测试之后,确定所述性能测试时所述待测试系统的运行数据,以用于评估所述待测试系统的数据处理能力和/或资源占用情况;
其中,用于评估所述待测试系统的数据处理能力的运行数据至少包括以下之一或组合:输入数据量、输出数据量、数据处理完成度;
用于评估所述待测试系统的资源占用情况的运行数据至少包括以下之一或组合:CPU占用比、系统负载比、物理内存占用比、虚拟内存占用比、进程堆内存占用比、磁盘IO占用比、网卡网络IO占用分析。
相应的,本发明实施例还提供了一种计算设备,包括:
存储器,用于存储程序指令;
处理器,用于调用所述存储器中存储的程序指令,按照获得的程序执行上述性能测试方法。
相应的,本发明实施例还提供了一种计算机可读非易失性存储介质,包括计算机可读指令,当计算机读取并执行所述计算机可读指令时,使得计算机执行上述性能测试方法。
附图说明
为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简要介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域的普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例提供的一种基于Flink框架实现的业务系统;
图2为本发明实施例提供性能测试方法所适用的系统架构;
图3为本发明实施例提供的一种测试装置的结构示意图;
图4为本发明实施例提供的一种性能测试方法的流程示意图;
图5为本发明实施例提供的待测试系统运行数据示意图;
图6为本发明实施例提供的一种性能测试装置的结构示意图。
具体实施方式
为了使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明作进一步地详细描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其它实施例,都属于本发明保护的范围。
基于Flink框架实现的业务系统可以如图1所示,使用Flink框架提供的标准接口实现,定义标准的数据输入、数据输出,支持针对不用业务场景横向扩展业务系统。
基于Flink构建的业务系统中,涉及作业管理器(JobManager)和任务管理器(TaskManager),作业管理器是业务系统中的协调者,它负责接收Flink作业,调度组成作业的多个任务的执行;任务管理器是实际负责执行计算的Worker,每个任务管理器负责管理其所在节点上的资源信息,如内存、磁盘、网络,在启动的时候将资源的状态向作业管理器汇报。
图2示例性的示出了本发明实施例提供性能测试方法所适用的系统架构,该系统架构可以包括待测试系统和测试系统;
待测试系统理解为基于Flink框架构建的业务系统;
测试系统包括用例管理模块、性能场景管理模块、前端显示模块,具体结构可以如图3所示。工作人员可以在前端显示模块中配置待测试系统的业务场景,比如输入数据量;用例管理模块用于根据前端显示模块输入的业务场景,生成具体的测试用例;用例管理模块还用于根据测试用例对待测试系统进行性能测试,以及获取待测试系统的运行数据,并根据运行数据确定待测试系统在测试用例下的测试结果;性能场景管理模块用于结合测试用例下的测试结果和业务场景,分析待测试系统的系统性能,并生成性能分析结果在前端显示模块上显示。
基于上述描述,图4示例性的示出了本发明实施例提供的一种性能测试方法的流程,该流程可以由性能测试装置执行,该装置可以位于上述测试系统中,可以是上述测试系统。
如图4所示,该流程具体包括:
步骤401,获取待测试系统的初始参数;
可以配置测试用例集,该测试用例集中包括多个测试用例,每个测试用例的初始参数不同,从而可以根据每个测试用例对待测试系统进行性能测试。
在根据任一个测试用例对待测试系统进行性能测试时,可以是获取测试用例中的初始参数。初始参数中包括输入数据量,输入数据量又可以叫做接入数据量,即输入至待测试系统的数据数量。可设置测试用例集合中多个测试用例的输入数据量依次增加,如设置多个测试用例的输入数据量依次为1万条/s、2万条/s、3万条/s、…、n万条/s。
初始参数中还可以包括任务管理器中任务槽(Slot)个数或者任务管理器的个数,其中,任务槽个数理解为任务管理器中设置的任务槽的个数,每个任务管理器中的任务槽个数相同,且可以在性能测试过程中动态调整;任务管理器的个数理解为在当前测试用例下作业管理器启用的任务管理器的个数,同样可以在性能测试过程中动态调整。
也就是说,初始参数可以是输入数据量和任务管理器中任务槽个数,或者输入数据量和任务管理器的个数。此处解释为,输入数据量、任务槽个数和任务管理器个数三个参数中,可以已知其中两个参数得到另一个未知参数,所以,本发明实施例中初始参数只需要包括其中两个参数即可。
步骤402,将初始参数输入至预设算法中,得到性能参数;
其中,预设算法是根据已有业务系统在历史测试用例下确定的初始参数和性能参数之间的运算关系。解释为,对已有业务系统采用多个历史测试用例进行性能测试,并从已有业务系统中获取每次性能测试中的初始参数和性能参数,进而确定初始参数和性能参数之间的运算关系。在对待测试系统进行性能测试时,即可以结合输入至待测试系统的初始参数和该运算关系确定待测试系统的性能参数,以用于对待测试系统进行性能测试。
以初始参数包括输入数据量和任务管理器中任务槽个数的情况,具体说明如何根据初始参数确定性能参数。
基于Flink构建的业务系统中,影响其正常运行的参数可以如表1所示,至少包括任务管理器的个数、任务管理器的内存(Yarn Task Manager Memory)、任务管理器中任务槽个数、线程并行数(Parallelism)、作业管理器的内存(Yarn Job Manager Memory)。也即根据初始参数确定的性能参数至少包括任务管理器的个数、任务管理器的内存、任务管理器中任务槽个数、线程并行数、作业管理器的内存。
具体的,根据输入数据量和单线程的预设数据处理速度,确定线程并行数;根据输入数据量和单线程所占的预设内存,确定任务管理器的内存;根据线程并行数、任务槽个数,确定任务管理器的个数;以及根据任务管理器的个数、任务管理器的内存确定作业管理器的内存。
表1
参数 参数意义
任务管理器的个数 作业管理器启动的任务管理器的个数
任务管理器的内存 每个任务管理器的内存可选单元(默认值:MB)
任务管理器中任务槽个数 每个任务管理器中的任务槽的数量
线程并行数 运行程序中线程的总并行数
作业管理器的内存 作业管理器的内存可选单元(默认值:MB)
本发明实施例中,可以预先设定每个线程的数据处理速度和每个线程所占的内存,并基于下述算法确定各性能参数。
基于公式(1),确定线程并行数;其中,公式(1)为:
P为线程并行数;X为输入数据量;S为单线程的预设数据处理速度。
基于公式(2),确定任务管理器的个数;其中,公式(2)为:
N任务管理器为任务管理器的个数;P为线程并行数;N任务槽为任务管理器中任务槽个数。
本发明实施例中,可以将公式(1)代入至公式(2)中,以得到公式:
基于公式(3),确定作业管理器的内存;其中,公式(3)为:
M作业管理器=N任务管理器×M任务管理器
M作业管理器为作业管理器的内存;N任务管理器为任务管理器的个数;M任务管理器为任务管理器的内存。
本发明实施例中,测试用例集中多个测试用例的输入数据量虽然呈线性增长趋势,但每个测试用例所对应的任务管理器的内存并非呈线性增长趋势,而是呈log2X函数增长趋势,因此得出任务管理器的内存可以根据公式(4)确定,其中,公式(4)为:
M任务管理器0=M单线程+log2(X+k1)
M任务管理器0为任务管理器的初始内存;M单线程为单线程所占的预设内存;X为输入数据量;k1为根据经验确定的参数。
本发明实施例中,可以设置k1=1,则公式(4)为:
M任务管理器0=M单线程+log2(X+1)
此处,M任务管理器0指的是任务管理器的初始内存,也即任务槽个数是任务管理器中初始任务槽个数时所对应的任务管理器的内存,相当于任务槽个数尚未发生改变时所对应的任务管理器的内存。本发明实施例还提供了任务管理器的内存的动态调整,其动态调整量由任务管理器中任务槽个数的动态调整量确定,由下述实施例中具体描述。
步骤403,将性能参数作为测试参数,对待测业务系统进行性能测试;若确定待测试系统未通过性能测试,则调整初始参数,直至确定待测试系统通过性能测试。
在确定出当前测试用例中初始参数对应的性能参数后,可以将该性能参数作为测试参数以对待测试系统进行性能测试。
性能测试中,当待测试系统符合以下四个条件时,则确定待测试系统通过当前测试用例对应的性能测试:
(1)任务管理器的个数占待测试系统的CPU总数的比例小于第一预设值;
(2)作业管理器的内存占待测试系统的总内存的比例小于第二预设值;
(3)待测试系统的负载不大于待测试系统的CPU总数;
(4)待测试系统维持稳定运行的持续时长不小于预设时长。
具体实现中,可以是确定任务管理器的个数不大于待测试系统的CPU总数的80%,且作业管理器的内存不大于待测试系统的总内存的70%,且待测试系统的系统负载不大于待测试系统的CPU总数,且待测试系统维持稳定运行的持续时长不小于1小时之后,确定待测试系统通过当前测试用例对应的性能测试。
当待测试系统不符合上述四个条件中任意一个时,则确定待测试系统未通过当前测试用例对应的性能测试,此时,则需要对待测试系统进行动态调整,具体调整初始参数中的任务管理器中任务槽个数,可以是将任务管理器中任务槽个数增加预设个数后,作为任务管理器中调整后的任务槽个数,从而提高任务管理器中线程并发度。然后再将输入数据量和调整后的任务槽个数输入至预设算法中,以确定调整后的性能参数,并基于调整后的性能参数对待测试系统继续进行性能测试。
本发明实施例中,由于在任务管理器中增加任务槽个数,可能会影响任务管理器中数据处理的稳定性,所以在动态调整任务管理器中任务槽个数时,优选的,每次增量为1。实际中,可以设置初始参数中任务管理器中任务槽个数为1,则在一次动态调整中,可以将任务管理器中任务槽个数增加为2。
预设算法中,在确定任务管理器中任务槽个数发生变化后,任务管理器的个数、线程并行数、作业管理器的内存三个性能参数的计算方式仍基于上述公式计算,而任务管理器的内存的计算方式需要作出改变,原因为,同一个任务管理器中多个任务槽遵循共享内存机制,任务管理器内存的增加幅度会小于任务槽个数的增加幅度。
也就是说,若任务槽个数是任务管理器中调整后的任务槽个数,则根据公式(5)确定任务管理器的内存;公式(5)为:
M任务管理器1=k2M任务管理器0
M任务管理器1为任务管理器在任务槽个数调整后所对应的内存;k2为系数,k2的取值由任务管理器中调整后的任务槽个数和初始任务槽个数确定。
一种实现方式中,设置则公式(5)可以转换为公式:
举例来说,当初始参数中任务管理器中任务槽个数为1,且在一次动态调整中,任务管理器中任务槽个数增加为2,则确定进一步的,结合公式(1)至(5)可得到本例子中,动态调整后作业管理器的内存为:
上述实现方式中,若确定待测试系统未通过性能测试,则增加任务管理器中任务槽个数,然后再将输入数据量和调整后的任务槽个数输入至预设算法中,以确定调整后的性能参数,并基于调整后的性能参数对待测试系统继续进行性能测试,直至确定待测试系统通过性能测试。在确定待测试系统通过当前测试用例对应的性能测试之后,则需要获取测试用例集合中当前测试用例的下一个测试用例,以对待测试系统进行下一个测试用例对应的性能测试。
举例来说,测试待测试系统的硬件环境下的性能峰值,如表2所示,性能测试场景为“测试待测试系统,输入数据量为1万条/s,2万条/s,…,测试待测试系统当前硬件环境下的性能峰值”,各测试用例的输入数据量分别为1万条/s、2万条/s、…、n万条/s,各测试用例的任务管理器中初始任务槽个数为1,根据预设算法分别生成对应性能参数,作为测试参数以对待测试系统进行性能测试。以输入数据量为1万条/s为例,性能参数分别为N任务管理器-1万条/s、M任务管理器-1万条/s、N任务槽-1万条/s、P1万条/s、M作业管理器-1万条/s,将该性能参数作为测试参数对待测试系统进行性能测试,如果待测试系统维持N任务管理器-1万条/s不大于待测试系统的CPU总数的80%,且M作业管理器-1万条/s不大于待测试系统的总内存的70%,且待测试系统的系统负载不大于待测试系统的CPU总数,且待测试系统维持稳定运行的持续时长不小于1小时,则确定待测试系统通过输入数据量为1万条/s的测试用例对应的性能测试,则可以对待测试系统进行输入数据量为2万条/s的测试用例对应的性能测试,直至确定出待测试系统的硬件环境下的性能峰值。
表2
本发明实施例中,比如,在对待测试系统进行输入数据量为2万条/s的测试用例对应的性能测试时,虽然默认本次测试用例中任务管理器的任务槽个数为1,但是可能存在待测试系统在任务槽个数为1的情况下不能通过本次性能测试,所以测试系统会主动调整任务槽个数,比如调整至3,然后确定待测试系统在任务槽个数为3的情况下通过本次性能测试,则此时,可以确定在输入数据量为2万条/s时,可以直接配置待测试系统的任务槽个数为3,通过该方式,也可以实现在不同输入数据量情况下确定对应任务槽个数的效果。
但需要说明的是,本发明实施例会设置任务管理器中任务槽个数的最大值,若任务管理器中任务槽个数增加至最大值之后,待测试系统仍未通过性能测试,则确定待测试系统未通过性能测试,且向工作人员报告具体运行数据,以使工作人员根据运行数据分析原因。
此外,在对待测试系统进行每个测试用例对应的性能测试时,都可以输出待测试系统的运行数据,从而可以从不同维度分析待测试系统的测试结果。
具体的,对于每次性能测试,确定性能测试时待测试系统的运行数据,以用于评估待测试系统的数据处理能力和/或资源占用情况;其中,用于评估待测试系统的数据处理能力的运行数据至少包括以下之一或组合:输入数据量、输出数据量、数据处理完成度;用于评估待测试系统的资源占用情况的运行数据至少包括以下之一或组合:CPU占用比、系统负载比、物理内存占用比、虚拟内存占用比、进程堆内存占用比、磁盘IO占用比、网卡网络IO占用分析。举例来说,在测试用例为n万条/s的输入数据量情况下,分析待测试系统对资源的占用趋势,部分指标结果分析示例性的如图5所示。
上述技术方案中,通过已有业务系统在历史测试用例下的性能测试,确定的初始参数和性能参数之间的运算关系,进而实现在对于待测试系统进行性能测试时,可以直接根据获取到的初始参数确定待测试系统的测试参数,并根据该测试参数对待测试系统进行性能测试,从而实现对基于Flink构建的业务系统的性能测试。进一步的,提供性能测试过程中的动态调优策略,在确定待测试系统无法通过当前性能测试时,动态调整初始参数,以根据调整后的初始参数确定调整后的性能参数,然后再次对待测试系统进行性能测试,直至确定待测试系统通过性能测试,通过该方式不仅可以实现自动化的对待测试系统的性能测试,而且可以确定出在特定输入数据量情况下待测试系统的具体参数配置。
基于同一发明构思,图6示例性的示出了本发明实施例提供的一种性能测试装置的结构,该装置可以执行性能测试方法的流程。
所述装置包括:
获取单元601、算法单元602和测试单元603;
所述获取单元601用于获取待测试系统的初始参数;
所述算法单元602用于将所述初始参数输入至预设算法中,得到性能参数;所述预设算法是根据已有业务系统在历史测试用例下确定的初始参数和性能参数之间的运算关系;
所述测试单元603用于将所述性能参数作为测试参数,对所述待测试系统进行性能测试;若所述测试单元603确定所述待测试系统未通过所述性能测试,则所述算法单元602调整所述初始参数,直至所述测试单元603确定所述待测试系统通过所述性能测试。
可选的,所述初始参数包括输入数据量和任务管理器中任务槽个数;
所述性能参数至少包括所述任务管理器的个数、所述任务管理器的内存、所述任务管理器中任务槽个数、线程并行数、作业管理器的内存;
所述算法单元602具体用于:
根据所述输入数据量和单线程的预设数据处理速度,确定所述线程并行数;
根据所述输入数据量和单线程所占的预设内存,确定所述任务管理器的内存;
根据所述线程并行数、所述任务槽个数,确定所述任务管理器的个数;
根据所述任务管理器的个数、所述任务管理器的内存确定所述作业管理器的内存。
可选的,所述算法单元602具体用于:
根据公式(1)确定所述线程并行数;
所述公式(1)为:
P为线程并行数;X为输入数据量;S为单线程的预设数据处理速度。
可选的,所述算法单元602具体用于:
根据公式(2)确定所述任务管理器的个数;
所述公式(2)为:
N任务管理器为任务管理器的个数;P为线程并行数;N任务槽为任务管理器中任务槽个数。
可选的,所述算法单元602具体用于:
根据公式(3)确定所述作业管理器的内存;
所述公式(3)为:
M作业管理器=N任务管理器×M任务管理器
M作业管理器为作业管理器的内存;N任务管理器为任务管理器的个数;M任务管理器为任务管理器的内存。
可选的,所述算法单元602具体用于:
将所述任务管理器中任务槽个数增加预设个数后,作为所述任务管理器中调整后的任务槽个数。
可选的,所述算法单元602具体用于:
若所述任务槽个数是所述任务管理器中初始任务槽个数,则根据公式(4)确定所述任务管理器的内存;
所述公式(4)为:
M任务管理器0=M单线程+log2(X+k1)
M任务管理器0为任务管理器的初始内存;M单线程为单线程所占的预设内存;X为输入数据量;k1为根据经验确定的参数;
若所述任务槽个数是所述任务管理器中调整后的任务槽个数,则根据公式(5)确定所述任务管理器的内存;
所述公式(5)为:
M任务管理器1=k2M任务管理器0
M任务管理器1为任务管理器在任务槽个数调整后所对应的内存;k2为系数,k2的取值由任务管理器中调整后的任务槽个数和初始任务槽个数确定。
可选的,所述测试单元603具体用于:
若所述测试单元603确定所述待测试系统在所述性能测试中符合预设条件,则确定所述待测试系统通过所述性能测试;所述预设条件包括:
所述任务管理器的个数占所述待测试系统的CPU总数的比例小于第一预设值;且所述作业管理器的内存占所述待测试系统的总内存的比例小于第二预设值;且所述待测试系统的负载不大于所述待测试系统的CPU总数;且所述待测试系统维持稳定运行的持续时长不小于预设时长;。
可选的,所述获取单元601具体用于:
获取测试用例集中的测试用例;所述测试用例集中每个测试用例的初始参数不同;
从所述测试用例中确定所述测试用例的初始参数。
可选的,所述获取单元601还用于:
在所述测试单元603确定所述待测试系统通过所述性能测试之后,获取所述测试用例的下一个测试用例,以使所述测试单元603对所述待测试系统进行所述下一个测试用例对应的性能测试。
可选的,所述测试单元603还用于:
在所述确定所述待测试系统通过所述性能测试之后,确定所述性能测试时所述待测试系统的运行数据,以用于评估所述待测试系统的数据处理能力和/或资源占用情况;
其中,用于评估所述待测试系统的数据处理能力的运行数据至少包括以下之一或组合:输入数据量、输出数据量、数据处理完成度;
用于评估所述待测试系统的资源占用情况的运行数据至少包括以下之一或组合:CPU占用比、系统负载比、物理内存占用比、虚拟内存占用比、进程堆内存占用比、磁盘IO占用比、网卡网络IO占用分析。
基于同一发明构思,本发明实施例还提供了一种计算设备,包括:
存储器,用于存储程序指令;
处理器,用于调用所述存储器中存储的程序指令,按照获得的程序执行上述性能测试方法。
基于同一发明构思,本发明实施例还提供了一种计算机可读非易失性存储介质,包括计算机可读指令,当计算机读取并执行所述计算机可读指令时,使得计算机执行上述性能测试方法。
本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
尽管已描述了本发明的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例作出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本发明范围的所有变更和修改。
显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。

Claims (13)

1.一种性能测试方法,其特征在于,包括:
获取待测试系统的初始参数;
将所述初始参数输入至预设算法中,得到性能参数;所述预设算法是根据已有业务系统在历史测试用例下确定的初始参数和性能参数之间的运算关系;
将所述性能参数作为测试参数,对所述待测试系统进行性能测试;若确定所述待测试系统未通过所述性能测试,则调整所述初始参数,直至确定所述待测试系统通过所述性能测试;
所述初始参数包括任务管理器中任务槽个数;所述性能参数至少包括所述任务管理器的内存;
所述调整所述初始参数,包括:
将所述任务管理器中任务槽个数增加预设个数后,作为所述任务管理器中调整后的任务槽个数;
在确定所述任务管理器中任务槽个数发生变化后,所述任务管理器的内存的计算方式与所述任务管理器中任务槽个数发生变化之前所述任务管理器的内存的计算方式不同。
2.如权利要求1所述的方法,其特征在于,所述初始参数包括输入数据量;所述性能参数至少包括所述任务管理器的个数、所述任务管理器中任务槽个数、线程并行数、作业管理器的内存;
所述将所述初始参数输入至预设算法中,得到性能参数,包括:
根据所述输入数据量和单线程的预设数据处理速度,确定所述线程并行数;
根据所述输入数据量和单线程所占的预设内存,确定所述任务管理器的内存;
根据所述线程并行数、所述任务槽个数,确定所述任务管理器的个数;
根据所述任务管理器的个数、所述任务管理器的内存确定所述作业管理器的内存。
3.如权利要求2所述的方法,其特征在于,所述根据所述输入数据量和单线程的预设数据处理速度,确定所述线程并行数,包括:
根据公式(1)确定所述线程并行数;
所述公式(1)为:
P为线程并行数;X为输入数据量;S为单线程的预设数据处理速度。
4.如权利要求2所述的方法,其特征在于,所述根据所述线程并行数、所述任务槽个数,确定所述任务管理器的个数,包括:
根据公式(2)确定所述任务管理器的个数;
所述公式(2)为:
N任务管理器为任务管理器的个数;P为线程并行数;N任务槽为任务管理器中任务槽个数。
5.如权利要求2所述的方法,其特征在于,所述根据所述任务管理器的个数、所述任务管理器的内存确定所述作业管理器的内存,包括:
根据公式(3)确定所述作业管理器的内存;
所述公式(3)为:
M作业管理器=N任务管理器×M任务管理器
M作业管理器为作业管理器的内存;N任务管理器为任务管理器的个数;M任务管理器为任务管理器的内存。
6.如权利要求2所述的方法,其特征在于,所述根据所述输入数据量和单线程所占的预设内存,确定所述任务管理器的内存,包括:
若所述任务槽个数是所述任务管理器中初始任务槽个数,则根据公式(4)确定所述任务管理器的内存;
所述公式(4)为:
M任务管理器0=M单线程+log2(X+k1)
M任务管理器0为任务管理器的初始内存;M单线程为单线程所占的预设内存;X为输入数据量;k1为根据经验确定的参数;
若所述任务槽个数是所述任务管理器中调整后的任务槽个数,则根据公式(5)确定所述任务管理器的内存;
所述公式(5)为:
M任务管理器1=k2M任务管理器0
M任务管理器1为任务管理器在任务槽个数调整后所对应的内存;k2为系数,k2的取值由任务管理器中调整后的任务槽个数和初始任务槽个数确定。
7.如权利要求2所述的方法,其特征在于,所述确定所述待测试系统通过所述性能测试,包括:
若确定所述待测试系统在所述性能测试中符合预设条件,则确定所述待测试系统通过所述性能测试;所述预设条件包括:
所述任务管理器的个数占所述待测试系统的CPU总数的比例小于第一预设值;且所述作业管理器的内存占所述待测试系统的总内存的比例小于第二预设值;且所述待测试系统的负载不大于所述待测试系统的CPU总数;且所述待测试系统维持稳定运行的持续时长不小于预设时长。
8.如权利要求1所述的方法,其特征在于,所述获取待测试系统的初始参数,包括:
获取测试用例集中的测试用例;所述测试用例集中每个测试用例的初始参数不同;
从所述测试用例中确定所述测试用例的初始参数。
9.如权利要求8所述的方法,其特征在于,在所述确定所述待测试系统通过所述性能测试之后,还包括:
获取所述测试用例的下一个测试用例,以对所述待测试系统进行所述下一个测试用例对应的性能测试。
10.如权利要求1所述的方法,其特征在于,在所述确定所述待测试系统通过所述性能测试之后,还包括:
确定所述性能测试时所述待测试系统的运行数据,以用于评估所述待测试系统的数据处理能力和/或资源占用情况;
其中,用于评估所述待测试系统的数据处理能力的运行数据至少包括以下之一或组合:输入数据量、输出数据量、数据处理完成度;
用于评估所述待测试系统的资源占用情况的运行数据至少包括以下之一或组合:CPU占用比、系统负载比、物理内存占用比、虚拟内存占用比、进程堆内存占用比、磁盘IO占用比、网卡网络IO占用分析。
11.一种性能测试装置,其特征在于,包括:
获取单元、算法单元和测试单元;
所述获取单元用于获取待测试系统的初始参数;
所述算法单元用于将所述初始参数输入至预设算法中,得到性能参数;所述预设算法是根据已有业务系统在历史测试用例下确定的初始参数和性能参数之间的运算关系;
所述测试单元用于将所述性能参数作为测试参数,对所述待测试系统进行性能测试;若所述测试单元确定所述待测试系统未通过所述性能测试,则所述算法单元调整所述初始参数,直至所述测试单元确定所述待测试系统通过所述性能测试;
所述初始参数包括任务管理器中任务槽个数;所述性能参数至少包括所述任务管理器的内存;所述算法单元,用于在调整所述初始参数时,将所述任务管理器中任务槽个数增加预设个数后,作为所述任务管理器中调整后的任务槽个数;在确定所述任务管理器中任务槽个数发生变化后,所述任务管理器的内存的计算方式与所述任务管理器中任务槽个数发生变化之前所述任务管理器的内存的计算方式不同。
12.一种计算设备,其特征在于,包括:
存储器,用于存储程序指令;
处理器,用于调用所述存储器中存储的程序指令,按照获得的程序执行权利要求1至10任一项所述的方法。
13.一种计算机可读非易失性存储介质,其特征在于,包括计算机可读指令,当计算机读取并执行所述计算机可读指令时,使得计算机执行如权利要求1至10任一项所述的方法。
CN201911365674.0A 2019-12-26 2019-12-26 一种性能测试方法及装置 Active CN111143143B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201911365674.0A CN111143143B (zh) 2019-12-26 2019-12-26 一种性能测试方法及装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201911365674.0A CN111143143B (zh) 2019-12-26 2019-12-26 一种性能测试方法及装置

Publications (2)

Publication Number Publication Date
CN111143143A CN111143143A (zh) 2020-05-12
CN111143143B true CN111143143B (zh) 2024-02-23

Family

ID=70520435

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201911365674.0A Active CN111143143B (zh) 2019-12-26 2019-12-26 一种性能测试方法及装置

Country Status (1)

Country Link
CN (1) CN111143143B (zh)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112345869A (zh) * 2020-11-25 2021-02-09 武汉光庭信息技术股份有限公司 一种汽车电子设备测试方法、系统、电子设备及存储介质
CN113535354A (zh) * 2021-06-30 2021-10-22 深圳市云网万店电子商务有限公司 调整Flink SQL算子并行度的方法及装置
CN114265637A (zh) * 2021-12-24 2022-04-01 中电信数智科技有限公司 档案管理系统配置方法、系统、电子设备以及存储介质
CN114896121A (zh) * 2022-05-31 2022-08-12 杭州数梦工场科技有限公司 分布式处理系统的监控方法及装置
CN115442270A (zh) * 2022-09-02 2022-12-06 南京信易达计算技术有限公司 全栈式高性能计算集群监控系统

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1567218A (zh) * 2003-06-18 2005-01-19 英业达股份有限公司 实时调整压力测试参数的测试系统及方法
CN108683560A (zh) * 2018-05-15 2018-10-19 中国科学院软件研究所 一种大数据流处理框架的性能基准测试系统及方法
CN109634924A (zh) * 2018-11-02 2019-04-16 华南师范大学 基于机器学习的文件系统参数自动调优方法及系统
CN110543932A (zh) * 2019-08-12 2019-12-06 珠海格力电器股份有限公司 基于神经网络的空调性能预测方法和装置
CN110569588A (zh) * 2019-08-29 2019-12-13 华中科技大学 一种基于前馈神经网络的工业机器人整机性能预估方法

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6457021B1 (en) * 1998-08-18 2002-09-24 Microsoft Corporation In-memory database system

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1567218A (zh) * 2003-06-18 2005-01-19 英业达股份有限公司 实时调整压力测试参数的测试系统及方法
CN108683560A (zh) * 2018-05-15 2018-10-19 中国科学院软件研究所 一种大数据流处理框架的性能基准测试系统及方法
CN109634924A (zh) * 2018-11-02 2019-04-16 华南师范大学 基于机器学习的文件系统参数自动调优方法及系统
CN110543932A (zh) * 2019-08-12 2019-12-06 珠海格力电器股份有限公司 基于神经网络的空调性能预测方法和装置
CN110569588A (zh) * 2019-08-29 2019-12-13 华中科技大学 一种基于前馈神经网络的工业机器人整机性能预估方法

Also Published As

Publication number Publication date
CN111143143A (zh) 2020-05-12

Similar Documents

Publication Publication Date Title
CN111143143B (zh) 一种性能测试方法及装置
CN106959894B (zh) 资源分配方法和装置
US9430288B2 (en) Job scheduling based on historical job data
CN102214139B (zh) 一种面向分布式系统的自动化测试的执行控制与调度方法
CN109995677B (zh) 资源分配方法、装置及存储介质
Fryer Operating policies in multiechelon dual-constraint job shops
US20070250630A1 (en) Method and a system of generating and evaluating potential resource allocations for an application
CN106055464B (zh) 数据缓存集群压力测试装置及方法
DE112006003081T5 (de) Leistungspriorisierung in Multithreadprozessoren
CN110517148B (zh) 量化交易策略执行的控制方法、系统及装置
CN102868573B (zh) Web服务负载云测试方法和装置
CN111563014A (zh) 接口服务性能测试方法、装置、设备和存储介质
CN111522728A (zh) 自动化测试用例的生成方法、电子设备及可读存储介质
CN103425536A (zh) 一种面向分布式系统性能测试的测试资源管理方法
DE112021003294T5 (de) Systemverwaltung auf grundlage von leistung und leistungsfähigkeit
CN113656174A (zh) 资源分配方法、系统、计算机设备和存储介质
CN110377519B (zh) 大数据系统的性能容量测试方法、装置、设备及存储介质
CN109992408B (zh) 一种资源分配方法、装置、电子设备和存储介质
CN111694653A (zh) 计算系统中调整计算算子类型分布的方法、装置及系统
CN107844496B (zh) 统计信息输出方法及装置
CN117234733A (zh) 一种分布式系统任务分配方法、系统、存储介质及设备
CN110928750B (zh) 数据处理方法、装置及设备
CN116450483A (zh) 一种确定软件分配的负载的方法、装置、服务器及介质
US20200314019A1 (en) Managing bandwidth based on user behavior
CN116501468A (zh) 批量作业处理方法、装置及电子设备

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
CB02 Change of applicant information
CB02 Change of applicant information

Address after: 100089 Beijing city Haidian District Road No. 4 North wa Yitai three storey building

Applicant after: NSFOCUS Technologies Group Co.,Ltd.

Applicant after: NSFOCUS TECHNOLOGIES Inc.

Address before: 100089 Beijing city Haidian District Road No. 4 North wa Yitai three storey building

Applicant before: NSFOCUS INFORMATION TECHNOLOGY Co.,Ltd.

Applicant before: NSFOCUS TECHNOLOGIES Inc.

GR01 Patent grant
GR01 Patent grant