CN115237804A - 性能瓶颈的评估方法、装置、电子设备、介质和程序产品 - Google Patents
性能瓶颈的评估方法、装置、电子设备、介质和程序产品 Download PDFInfo
- Publication number
- CN115237804A CN115237804A CN202210954618.6A CN202210954618A CN115237804A CN 115237804 A CN115237804 A CN 115237804A CN 202210954618 A CN202210954618 A CN 202210954618A CN 115237804 A CN115237804 A CN 115237804A
- Authority
- CN
- China
- Prior art keywords
- performance
- data
- bottleneck
- decision
- production operation
- 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.)
- Pending
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/36—Preventing errors by testing or debugging software
- G06F11/3668—Software testing
- G06F11/3672—Test management
- G06F11/3684—Test management for test design, e.g. generating new test cases
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/36—Preventing errors by testing or debugging software
- G06F11/3668—Software testing
- G06F11/3672—Test management
- G06F11/3692—Test management for test results analysis
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/36—Preventing errors by testing or debugging software
- G06F11/3668—Software testing
- G06F11/3696—Methods or tools to render software testable
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N20/00—Machine learning
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computer Hardware Design (AREA)
- Quality & Reliability (AREA)
- Software Systems (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Data Mining & Analysis (AREA)
- Evolutionary Computation (AREA)
- Medical Informatics (AREA)
- Artificial Intelligence (AREA)
- Computing Systems (AREA)
- Mathematical Physics (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
Abstract
本公开提供了一种生产运行中的性能瓶颈的评估方法,用于人工智能技术领域。生产运行中的性能瓶颈的评估方法包括:获取生产运行中的性能数据;输入所述性能数据至预先构建的性能瓶颈预测模型;以及在所述性能瓶颈预测模型中评估所述性能数据,得到评估结果,其中,所述评估结果包括在该生产运行中存在性能瓶颈或者在该生产运行中不存在性能瓶颈。本公开还提供了一种生产运行中的性能瓶颈的评估装置、电子设备、介质和计算机程序产品。
Description
技术领域
本公开涉及人工智能技术领域,更具体地,涉及一种生产运行中的性能瓶颈的评估方法、装置、电子设备、介质和计算机程序产品。
背景技术
近年来,随着系统架构从单体应用向分布式系统发展,开发效率和系统可扩展性逐步提高,交易链路变长,交易复杂性呈爆炸性增长。在这样复杂的系统下,系统的性能需要进行充分的测试和评估。现有技术中是根据生产预估的运行情况进行评估,形成性能测试需求,性能测试需求一般包括中高频交易,以及表数据量很大(比如表数据量超过500万)的关联交易。然后由相关实施团队对性能测试需求进行分析,并进行性能测试,从而得到分布式系统下单容器可支撑的最大并发用户数、最大吞吐量等,然后根据预估的生产最大并发用户数和最大吞吐量来部署生产的应用容器和数据库服务器。
虽然在测试环境有对交易提前做一定的压测,但是系统投产到生产环境之后,经常会出现一些意想不到的性能问题。比如测试环境的数据量没有生产的数据量大,导致在测试环境中进行性能测试的结果是符合预期的,但是生产却出现问题。又比如,数据清理不及时、或表中的数据量增长太快,导致结构化查询语言(SQL)语句执行慢。还比如,交易系统的吞吐量(TPS)突然增加,导致出现性能瓶颈。究其原因,一是因为性能测试需求是由人工识别,和识别人员的知识框架和经验有较大关系;二是因为生产上出现不在预期范围内的骤增的交易量,导致系统出现性能问题,从而导致即使有进行性能测试挖掘并进行性能测试,也还是会出现一些难以预料到的性能问题。
发明内容
有鉴于此,本公开提供了一种针对性强、及时和准确的生产运行中的性能瓶颈的评估方法、装置、电子设备、计算机可读存储介质和计算机程序产品。
本公开的一个方面提供了一种生产运行中的性能瓶颈的评估方法,包括:获取生产运行中的性能数据;输入所述性能数据至预先构建的性能瓶颈预测模型;以及在所述性能瓶颈预测模型中评估所述性能数据,得到评估结果,其中,所述评估结果包括在该生产运行中存在性能瓶颈或者在该生产运行中不存在性能瓶颈。
根据本公开实施例的生产运行中的性能瓶颈的评估方法,通过将生产运行中的性能数据作为性能瓶颈预测模型的输入,在性能瓶颈预测模型中评估性能数据,即可判断该生产运行中是否存在性能瓶颈,由此,测试人员可以根据生产运行中的瓶颈情况进行预估,是否需要进一步做性能测试。通过本公开的生产运行中的性能瓶颈的评估方法,使得测试人员可以有针对性地进行性能测试,及时根据生产运行的实际情况预测到可能出现的性能问题,并根据生产运行的性能数据在测试环境中进行推演,以便对可能出现的性能瓶颈做出相应的扩容、清理数据和引流等解决措施,弥补了人工识别性能测试需求的缺陷。
在一些实施例中,所述性能瓶颈预测模型为随机森林模型,所述随机森林模型包括m个决策树,每个所述决策树包括ni条决策路径,m为大于等于1的整数,ni为大于等于1的整数,i为大于等于1且小于等于m的整数,所述在所述性能瓶颈预测模型中评估所述性能数据,得到评估结果,包括:在所述随机森林模型中确定所述性能数据符合的k条决策路径,其中,k为大于等于1且小于等于m的整数;以及根据所述k条决策路径评估所述性能数据,得到评估结果。
在一些实施例中,所述随机森林模型中的每条所述决策路径具有路径分值,所述根据所述k条决策路径评估所述性能数据,得到评估结果,包括:将所述k条决策路径分别对应的所述路径分值加和,得到瓶颈分值;以及当所述瓶颈分值满足瓶颈阈值时,判定在该生产运行中存在性能瓶颈。
在一些实施例中,预先构建性能瓶颈预测模型,包括:获取生产运行中的历史性能数据;以及根据所述历史性能数据构建所述性能瓶颈预测模型。
在一些实施例中,所述获取生产运行中的历史性能数据,包括:有放回地m次获取生产运行中的历史性能数据,其中,所述历史性能数据包括t个性能特征,每个所述性能特征包括性能参数,m为大于等于1的整数,t为大于等于1的整数;所述根据所述历史性能数据构建所述性能瓶颈预测模型,包括:设定每个所述性能特征的Sv个性能参数区间,Sv为大于等于1的整数,v为大于等于1且小于等于t的整数;根据每次获取的所述历史性能数据和设定的所述每个所述性能特征的Sv个性能参数区间,构建决策树,其中,所述t个性能特征和每个所述性能特征的性能参数所符合的性能参数区间组合形成所述决策树的ni条决策路径,ni为大于等于1的整数,i为大于等于且小于等于m的整数;将m个所述决策树构建为随机森林模型;以及给随机森林模型中的每条所述决策路径打分,得到每条所述决策路径的路径分值。
在一些实施例中,每条所述决策路径包括t个决策点,每个所述决策点包括根节点和分支,所述根节点由所述性能特征确定,所述分支由所述性能特征的性能参数所符合的性能参数区间确定,所述给随机森林模型中的每条所述决策路径打分,得到每条所述决策路径的路径分值,包括:设定每个所述决策点的分支的分数值;将每条所述决策路径的所述t个决策点的分数值加和,得到路径分值。
本公开的另一方面提供了一种生产运行中的性能瓶颈的评估装置,包括:获取模块,所述获取模块用于获取生产运行中的性能数据;输入模块,所述输入模块用于输入所述性能数据至预先构建的性能瓶颈预测模型;评估模块,所述评估模块用于在所述性能瓶颈预测模型中评估所述性能数据,得到评估结果,其中,所述评估结果包括在该生产运行中存在性能瓶颈或者在该生产运行中不存在性能瓶颈。
本公开的另一方面提供了一种挖掘性能测试结果的方法,根据如上所述的生产运行中的性能瓶颈的评估方法,获取容器生产运行中的性能数据,得到容器的评估结果;根据如上所述的生产运行中的性能瓶颈的评估方法,获取数据库服务器生产运行中的性能数据,得到数据库服务器的评估结果;根据如上所述的生产运行中的性能瓶颈的评估方法,获取交易生产运行中的性能数据,得到交易的评估结果;以及将所述容器的评估结果、所述数据库服务器的评估结果和所述交易的评估结果组合,得到性能测试结果。
根据本公开实施例的挖掘性能测试结果的方法,通过生产运行中的性能瓶颈的评估方法可以识别到不同的生产运行中可能出现的性能瓶颈,将识别出的性能瓶颈组合即可得到性能测试结果,由此可以减少人工参与测试,从而在提升测试效率和准确性的同时,还可以节约测试成本。
本公开的另一方面提供了一种挖掘性能测试结果的装置,容器性能瓶颈评估装置,所述容器性能瓶颈评估装置用于根据如上所述的生产运行中的性能瓶颈的评估方法,获取容器生产运行中的性能数据,得到容器的评估结果;数据库服务器性能瓶颈评估装置,所述数据库服务器性能瓶颈评估装置用于根据如上所述的生产运行中的性能瓶颈的评估方法,获取数据库服务器生产运行中的性能数据,得到数据库服务器的评估结果;交易性能瓶颈评估装置,所述交易性能瓶颈评估装置用于根据如上所述的生产运行中的性能瓶颈的评估方法,获取交易生产运行中的性能数据,得到交易的评估结果;以及组合装置,所述组合装置用于将所述容器的评估结果、所述数据库服务器的评估结果和所述交易的评估结果组合,得到性能测试结果。
本公开的另一方面提供了一种电子设备,包括一个或多个处理器以及一个或多个存储器,其中,所述存储器用于存储可执行指令,所述可执行指令在被所述处理器执行时,实现如上所述方法。
本公开的另一方面提供了一种计算机可读存储介质,存储有计算机可执行指令,所述指令在被执行时用于实现如上所述的方法。
本公开的另一方面提供了一种计算机程序产品,包括计算机程序,所述计算机程序包括计算机可执行指令,所述指令在被执行时用于实现如上所述的方法。
附图说明
通过以下参照附图对本公开实施例的描述,本公开的上述以及其他目的、特征和优点将更为清楚,在附图中:
图1示意性示出了根据本公开实施例的可以应用方法、装置的示例性系统架构;
图2示意性示出了根据本公开实施例的生产运行中的性能瓶颈的评估方法的流程图;
图3示意性示出了根据本公开实施例的预先构建性能瓶颈预测模型的流程图;
图4示意性示出了根据本公开实施例的获取生产运行中的历史性能数据的流程图;
图5示意性示出了根据本公开实施例的根据历史性能数据构建性能瓶颈预测模型的流程图;
图6示意性示出了根据本公开实施例的决策树的示意图;
图7示意性示出了根据图6中的决策树的其中一条决策路径的示意图;
图8示意性示出了根据图6中的决策树的其中另一条决策路径的示意图;
图9示意性示出了根据本公开实施例的给随机森林模型中的每条决策路径打分,得到每条决策路径的路径分值的流程图;
图10示意性示出了根据本公开实施例的在性能瓶颈预测模型中评估性能数据,得到评估结果的流程图;
图11示意性示出了根据本公开实施例的根据k条决策路径评估性能数据,得到评估结果的流程图;
图12示意性示出了根据本公开实施例的生产运行中的性能瓶颈的评估装置的结构框图;
图13示意性示出了根据本公开实施例的评估模块的结构框图;
图14示意性示出了根据本公开实施例的第二确定单元的结构框图;
图15示意性示出了根据本公开实施例的模型构建装置的结构框图;
图16示意性示出了根据本公开实施例的第二获取模块的结构框图;
图17示意性示出了根据本公开实施例的构建模块的结构框图;
图18示意性示出了根据本公开实施例的打分单元的结构框图;
图19示意性示出了根据本公开实施例的挖掘性能测试结果的方法的流程图;
图20示意性示出了根据本公开实施例的基于所构建的随机森林识别容器性能瓶颈、数据库服务器性能瓶颈、交易性能瓶颈的流程图;
图21示意性示出了根据本公开实施例的挖掘性能测试结果的装置的结构框图;
图22示意性示出了根据本公开实施例的电子设备的方框图。
具体实施方式
以下,将参照附图来描述本公开的实施例。但是应该理解,这些描述只是示例性的,而并非要限制本公开的范围。在下面的详细描述中,为便于解释,阐述了许多具体的细节以提供对本公开实施例的全面理解。然而,明显地,一个或多个实施例在没有这些具体细节的情况下也可以被实施。此外,在以下说明中,省略了对公知结构和技术的描述,以避免不必要地混淆本公开的概念。
在本公开的技术方案中,所涉及的用户个人信息的获取,存储和应用等,均符合相关法律法规的规定,采取了必要保密措施,且不违背公序良俗。在本公开的技术方案中,对数据的获取、收集、存储、使用、加工、传输、提供、公开和应用等处理,均符合相关法律法规的规定,采取了必要保密措施,且不违背公序良俗。
在此使用的术语仅仅是为了描述具体实施例,而并非意在限制本公开。在此使用的术语“包括”、“包含”等表明了所述特征、步骤、操作和/或部件的存在,但是并不排除存在或添加一个或多个其他特征、步骤、操作或部件。
在使用类似于“A、B或C等中至少一个”这样的表述的情况下,一般来说应该按照本领域技术人员通常理解该表述的含义来予以解释(例如,“具有A、B或C中至少一个的系统”应包括但不限于单独具有A、单独具有B、单独具有C、具有A和B、具有A和C、具有B和C、和/或具有A、B、C的系统等)。术语“第一”、“第二”仅用于描述目的,而不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”的特征可以明示或者隐含地包括一个或者更多个所述特征。
近年来,随着系统架构从单体应用向分布式系统发展,开发效率和系统可扩展性逐步提高,交易链路变长,交易复杂性呈爆炸性增长。在这样复杂的系统下,系统的性能需要进行充分的测试和评估。现有技术中是根据生产预估的运行情况进行评估,形成性能测试需求,性能测试需求一般包括中高频交易,以及表数据量很大(比如表数据量超过500万)的关联交易。然后由相关实施团队对性能测试需求进行分析,并进行性能测试,从而得到分布式系统下单容器可支撑的最大并发用户数、最大吞吐量等,然后根据预估的生产最大并发用户数和最大吞吐量来部署生产的应用容器和数据库服务器。
虽然在测试环境有对交易提前做一定的压测,但是系统投产到生产环境之后,经常会出现一些意想不到的性能问题。比如测试环境的数据量没有生产的数据量大,导致在测试环境中进行性能测试的结果是符合预期的,但是生产却出现问题。又比如,数据清理不及时、或表中的数据量增长太快,导致结构化查询语言(SQL)语句执行慢。还比如,交易系统的吞吐量(TPS)突然增加,导致出现性能瓶颈。究其原因,一是因为性能测试需求是由人工识别,和识别人员的知识框架和经验有较大关系;二是因为生产上出现不在预期范围内的骤增的交易量,导致系统出现性能问题,从而导致即使有进行性能测试挖掘并进行性能测试,也还是会出现一些难以预料到的性能问题。
本公开的实施例提供了一种生产运行中的性能瓶颈的评估方法、装置、电子设备、计算机可读存储介质和计算机程序产品。生产运行中的性能瓶颈的评估方法包括:获取生产运行中的性能数据;输入性能数据至预先构建的性能瓶颈预测模型;在性能瓶颈预测模型中评估性能数据,得到评估结果,其中,评估结果包括在该生产运行中存在性能瓶颈或者在该生产运行中不存在性能瓶颈。
需要说明的是,本公开的生产运行中的性能瓶颈的评估方法、装置、电子设备、计算机可读存储介质和计算机程序产品可用于人工智能技术领域,也可用于除人工智能技术领域之外的任意领域,例如金融领域,这里对本公开的领域不做限定。
图1示意性示出了根据本公开实施例的可以应用生产运行中的性能瓶颈的评估方法、装置、电子设备、计算机可读存储介质和计算机程序产品的示例性系统架构100。需要注意的是,图1所示仅为可以应用本公开实施例的系统架构的示例,以帮助本领域技术人员理解本公开的技术内容,但并不意味着本公开实施例不可以用于其他设备、系统、环境或场景。
如图1所示,根据该实施例的系统架构100可以包括终端设备101、102、103,网络104和服务器105。网络104用以在终端设备101、102、103和服务器105之间提供通信链路的介质。网络104可以包括各种连接类型,例如有线、无线通信链路或者光纤电缆等等。
用户可以使用终端设备101、102、103通过网络104与服务器105交互,以接收或发送消息等。终端设备101、102、103上可以安装有各种通讯客户端应用,例如购物类应用、网页浏览器应用、搜索类应用、即时通信工具、邮箱客户端、社交平台软件等(仅为示例)。
终端设备101、102、103可以是具有显示屏并且支持网页浏览的各种电子设备,包括但不限于智能手机、平板电脑、膝上型便携计算机和台式计算机等等。
服务器105可以是提供各种服务的服务器,例如对用户利用终端设备101、102、103所浏览的网站提供支持的后台管理服务器(仅为示例)。后台管理服务器可以对接收到的用户请求等数据进行分析等处理,并将处理结果(例如根据用户请求获取或生成的网页、信息、或数据等)反馈给终端设备。
需要说明的是,本公开实施例所提供的生产运行中的性能瓶颈的评估方法一般可以由服务器105执行。相应地,本公开实施例所提供的生产运行中的性能瓶颈的评估装置一般可以设置于服务器105中。本公开实施例所提供的生产运行中的性能瓶颈的评估方法也可以由不同于服务器105且能够与终端设备101、102、103和/或服务器105通信的服务器或服务器集群执行。相应地,本公开实施例所提供的生产运行中的性能瓶颈的评估装置也可以设置于不同于服务器105且能够与终端设备101、102、103和/或服务器105通信的服务器或服务器集群中。
应该理解,图1中的终端设备、网络和服务器的数目仅仅是示意性的。根据实现需要,可以具有任意数目的终端设备、网络和服务器。
以下将基于图1描述的场景,通过图2~图11对本公开实施例的生产运行中的性能瓶颈的评估方法进行详细描述。
图2示意性示出了根据本公开实施例的生产运行中的性能瓶颈的评估方法的流程图。
如图2所示,该实施例的生产运行中的性能瓶颈的评估方法包括操作S210~操作S230。
在操作S210,获取生产运行中的性能数据,需要说明的是,获取的生产运行中的性能数据可以为容器生产运行中的性能数据;也可以为数据库服务器生产运行中的性能数据;还可以为交易生产运行中的性能数据。当然,容器、数据库服务器和交易仅为举例说明,获取的生产运行中的性能数据可以为任意生产运行中的性能数据。
当在容器生产运行中获取性能数据时,性能数据可以为容器ID、容器CPU利用率、容器内存利用率、容器磁盘IO、容器磁盘空间使用情况、容器网络带宽和容器时间点中的至少一个,性能数据的格式例如可以为:唯一索引|容器ID|容器CPU利用率|容器内存利用率|容器磁盘IO|容器磁盘空间使用情况|容器网络带宽|容器时间点。
当在容器生产运行中获取性能数据时,性能数据可以为数据库IP、数据库CPU利用率、数据库内存利用率、数据库磁盘IO、数据库磁盘空间使用情况、数据库网络带宽和数据库时间点中的至少一个,性能数据的格式例如可以为:唯一索引|数据库IP|数据库CPU利用率|数据库内存利用率|数据库磁盘IO|数据库磁盘空间使用情况|数据库网络带宽|数据库时间点。
当在容器生产运行中获取性能数据时,性能数据可以为交易名、交易成功率、交易耗时、交易每秒调用量、交易并发用户数和交易时间点中的至少一个,性能数据的格式例如可以为:唯一索引|交易名|交易成功率|交易耗时|交易每秒调用量|交易并发用户数|交易时间点。
在操作S220,输入性能数据至预先构建的性能瓶颈预测模型。
在操作S230,在性能瓶颈预测模型中评估性能数据,得到评估结果,其中,评估结果包括在该生产运行中存在性能瓶颈或者在该生产运行中不存在性能瓶颈。
根据本公开实施例的生产运行中的性能瓶颈的评估方法,通过将生产运行中的性能数据作为性能瓶颈预测模型的输入,在性能瓶颈预测模型中评估性能数据,即可判断该生产运行中是否存在性能瓶颈,由此,测试人员可以根据生产运行中的瓶颈情况进行预估,是否需要进一步做性能测试。通过本公开的生产运行中的性能瓶颈的评估方法,使得测试人员可以有针对性地进行性能测试,及时根据生产运行的实际情况预测到可能出现的性能问题,并根据生产运行的性能数据在测试环境中进行推演,以便对可能出现的性能瓶颈做出相应的扩容、清理数据和引流等解决措施,弥补了人工识别性能测试需求的缺陷。
图3示意性示出了根据本公开实施例的预先构建性能瓶颈预测模型的流程图。预先构建性能瓶颈预测模型包括操作S310和操作S320。
在操作S310,获取生产运行中的历史性能数据。需要说明的是,获取的生产运行中的历史性能数据可以为容器生产运行中的历史性能数据,此时构建的性能瓶颈预测模型为容器的性能瓶颈预测模型;历史性能数据也可以为数据库服务器生产运行中的历史性能数据,此时构建的性能瓶颈预测模型为数据库服务器的性能瓶颈预测模型;历史性能数据还可以为交易生产运行中的历史性能数据,此时构建的性能瓶颈预测模型为交易的性能瓶颈预测模型。当然,容器、数据库服务器和交易仅为举例说明,获取的生产运行中的历史性能数据可以为任意生产运行中的历史性能数据,对应的,构建的性能瓶颈预测模型可以为任意性能瓶颈预测模型。
在操作S320,根据历史性能数据构建性能瓶颈预测模型。下面以构建容器的性能瓶颈预测模型为例进行说明,但是并不能理解为是对本公开的限制。通过操作S310和操作S320可以便于实现预先构建性能瓶颈预测模型。
作为一种可实施的方式,性能瓶颈预测模型可以为随机森林模型,如图4所示,操作S310获取生产运行中的历史性能数据包括操作S311:有放回地m次获取生产运行中的历史性能数据,其中,历史性能数据包括t个性能特征,每个性能特征包括性能参数,m为大于等于1的整数,t为大于等于1的整数。
例如,历史性能数据为容器的历史性能数据,容器的历史性能数据包括t个性能特征,t可以为1,可以为2,可以为3,可以为4,可以为5等等。t个性能特征可以为容器ID、容器CPU利用率、容器内存利用率、容器磁盘IO、容器磁盘空间使用情况、容器网络带宽和容器时间点中的至少一个。每个性能特征包括性能参数。
如图5所示,操作S320根据历史性能数据构建性能瓶颈预测模型包括操作S321~操作S324。
在操作S321,设定每个性能特征的Sv个性能参数区间,Sv为大于等于1的整数,v为大于等于1且小于等于t的整数。
例如,选取4个性能特征构建决策树,4个性能特征分别为容器CPU利用率、容器内存利用率、容器磁盘IO和容器磁盘空间使用情况,设定容器CPU利用率的S1个性能参数区间分别为0~20%、20%~80%和80%~100%;设定容器内存利用率的S2个性能参数区间分别为0~50%和50%~100%;设定容器磁盘IO的S3个性能参数区间分别为0~1000和1000以上;设定容器磁盘空间使用情况的S4个性能参数区间分别为0~50%和50%~100%。
在操作S322,根据每次获取的历史性能数据和设定的每个性能特征的Sv个性能参数区间,构建决策树,其中,t个性能特征和每个性能特征的性能参数所符合的性能参数区间组合形成决策树的ni条决策路径,ni为大于等于1的整数,i为大于等于且小于等于m的整数。
可以理解的是,历史性能数据为已知评估结果的数据,每次获取的历史性能数据组成一个样本集,每个样本集里可以包括h个样本,h为大于等于1的整数,可以设定样本集中的存在性能瓶颈的样本数据和不存在性能瓶颈的样本数据的比例为a∶b,a和b均可以为任意自然数,a+b=1,例如a∶b可以为1∶4,获取的历史性能数据如表1所示。
表1
作为一些具体的示例,参考如图6所示的决策树,每个决策树包括多个决策路径,每个决策路径包括t个决策点,换言之,可以通过每个性能特征构建一个决策点,每个决策点包括根节点和分支。
下面详细介绍构建决策路径的方法,包括操作S410和操作S420。
在操作S410,构建决策树的第1个决策点,结合图6~图8,可以理解的是,决策树的第1个决策点可以为每个决策路径的第1个决策点,根据历史性能数据中样本数据的性能参数不同,每个决策路径的第1个决策点的分支不同,分支为样本数据的性能参数所在的性能参数区间。
下面以表1中的历史性能数据为例介绍操作S410构建决策树的第1个决策点的详细步骤,包括操作S411~操作S414。
在操作S411,根据表1的历史性能数据可以计算样本集的信息熵Info(n)。信息熵Info(n)可以通过公式(1)得到,(n)中的n为样本数量,这里为h。
其中,Pi为在样本集中,第i类样本所占的比例,在表1的历史性能数据中,存在性能瓶颈的样本所占的比例为a,不存在性能瓶颈的样本所占的比例为b。
在操作S412,计算历史性能数据的每个性能特征的条件熵InfoA(nj)。条件熵InfoA(nj)可以通过公式(2)得到,A为性能特征,(nj)中的nj为该性能特征的第j个性能参数区间的样本数量。
其中,Info(nj)为以第j个性能参数区间的样本数量为基础计算出的信息熵。
当A为容器CPU利用率时,n1为性能样本区间(0~20%)的样本数量,n2为性能样本区间(20%~80%)的样本数量,n3为性能样本区间(80%~100%)的样本数量,假设计算得到InfoA(nj)=c。
当A为容器内存利用率时,n1为性能样本区间(0~50%)的样本数量,n2为性能样本区间(50%~100%)的样本数量,假设计算得到InfoA(nj)=d。
当A为容器磁盘IO时,n1为性能样本区间(0~1000)的样本数量,n2为性能样本区间(1000以上)的样本数量,假设计算得到InfoA(nj)=e。
当A为容器磁盘空间使用情况时,n1为性能样本区间(0~50%)的样本数量,n2为性能样本区间(50%~100%)的样本数量,假设计算得到InfoA(nj)=f。
在操作S413,根据样本集的信息熵和每个性能特征的条件熵,计算信息增益Gain(A),信息增益Gain(A)可以通过公式(3)计算得到。
Gain(A)=Info(n)-InfoA(nj) (3)
通过公式(3)可以分别得到容器CPU利用率、容器内存利用率、容器磁盘IO和容器磁盘空间使用情况的信息增益。
在操作S414,将每个性能特征的信息增益从大到小排序,将排名第一的信息增益对应的性能特征确定为决策树的第1个决策点的根节点。通过操作S411~操作S414可以便于实现构建决策树的第1个决策点,以第1个决策点的根节点为容器CPU利用率为例进行说明,该根节点可能存在三个分支,分别为(0~20%)、(20%~80%)和(80%~100%),判断是否存在(0~20%)这一分支,需要确定样本集中是否含有(0~20%)这一性能参数区间的样本,若有,则存在这一分支;若没有,则不存在这一分支。(20%~80%)和(80%~100%)的分支是否存在的判断方法同上,这里不再一一赘述。
在操作S420,执行t-1次以第r-1个决策点的分支为基准,构建决策路径的第r个决策点,r为大于等于2,小于等于t的整数。
继续以表1为例,结合图6~图8,通过操作S411~操作S414构建决策树的第1个决策点后,通过操作S420构建第2个、第3个、第4个,直至第t个决策点。构建第r个决策点的方法与构建第1个决策点的方法相同,这里不再赘述,需要说明的是,构建第r个决策点时的样本数量为基准分支的样本数量。
由此,通过操作S410和操作S420可以便于构建一个决策树。
在操作S323,将m个决策树构建为随机森林模型。可以理解的是,根据有放回的数据样本可以重复执行操作S410和操作S420m次以构建m个决策树,m个决策树可以构建随机森林模型。
在操作S324,给随机森林模型中的每条决策路径打分,得到每条决策路径的路径分值。
作为一种可能实现的方式,每条决策路径包括t个决策点,每个决策点包括根节点和分支,根节点由性能特征确定,分支由性能特征的性能参数所符合的性能参数区间确定,如图9所示,结合图6,操作S324给随机森林模型中的每条决策路径打分,得到每条决策路径的路径分值,包括操作S3241~操作S3242。
在操作S3241,设定每个决策点的分支的分数值。
在操作S3242,将每条决策路径的t个决策点的分数值加和,得到路径分值。由此,通过操作S3241~操作S3242可以便于实现给随机森林模型中的每条决策路径打分,得到每条决策路径的路径分值。
通过操作S321~操作S324可以便于实现根据历史性能数据构建性能瓶颈预测模型。
图10示意性示出了根据本公开实施例的在性能瓶颈预测模型中评估性能数据,得到评估结果的流程图。
性能瓶颈预测模型可以为随机森林模型,随机森林模型包括m个决策树,每个决策树包括ni条决策路径,m为大于等于1的整数,ni为大于等于1的整数,i为大于等于1且小于等于m的整数,操作S230在性能瓶颈预测模型中评估性能数据,得到评估结果包括操作S231和操作S232。
在操作S231,在随机森林模型中确定性能数据符合的k条决策路径,其中,k为大于等于1且小于等于m的整数。可以理解的是,由于决策路径包括由性能特征确定的根节点和由性能特征的性能参数所符合的性能参数区间确定的分支,因此可以将性能数据中的性能特征和性能特征的性能参数与每条决策路径的根节点和分支做对应,若可以对应上,即可确定该性能数据符合该条决策路径,在随机森林模型的mni条决策路径中,可以找到性能数据符合的k条决策路径。
在操作S232,根据k条决策路径评估性能数据,得到评估结果。
作为一种可实施的方式,随机森林模型中的每条决策路径具有路径分值,如图11所示,操作S232根据k条决策路径评估性能数据,得到评估结果,包括操作S2321和操作S2322。
在操作S2321,将k条决策路径分别对应的路径分值加和,得到瓶颈分值。
在操作S2322,当瓶颈分值满足瓶颈阈值时,判定在该生产运行中存在性能瓶颈。相应地,当瓶颈分值不满足瓶颈阈值时,判定在该生产运行中不存在性能瓶颈。通过操作S2321和操作S2322可以便于实现根据k条决策路径评估性能数据,得到评估结果。
通过操作S231和操作S232可以便于实现在性能瓶颈预测模型中评估性能数据,得到评估结果。
基于上述生产运行中的性能瓶颈的评估方法,本公开还提供了一种生产运行中的性能瓶颈的评估装置200。以下将结合图12-图18对生产运行中的性能瓶颈的评估装置200进行详细描述。
图12示意性示出了根据本公开实施例的生产运行中的性能瓶颈的评估装置200的结构框图。
生产运行中的性能瓶颈的评估装置200包括第一获取模块201、输入模块202和评估模块203。
第一获取模块201,第一获取模块201用于执行操作S210:获取生产运行中的性能数据。
输入模块202,输入模块202用于执行操作S220:输入性能数据至预先构建的性能瓶颈预测模型。
评估模块203,评估模块203用于执行操作S230:在性能瓶颈预测模型中评估性能数据,得到评估结果,其中,评估结果包括在该生产运行中存在性能瓶颈或者在该生产运行中不存在性能瓶颈。
图13示意性示出了根据本公开实施例的评估模块203的结构框图。性能瓶颈预测模型为随机森林模型,随机森林模型包括m个决策树,每个决策树包括ni条决策路径,m为大于等于1的整数,ni为大于等于1的整数,i为大于等于1且小于等于m的整数,评估模块203包括第一确定单元2031和第二确定单元2032。
第一确定单元2031,第一确定单元2031用于在随机森林模型中确定性能数据符合的k条决策路径,其中,k为大于等于1且小于等于m的整数。
第二确定单元2032,第二确定单元2032用于根据k条决策路径评估性能数据,得到评估结果。
图14示意性示出了根据本公开实施例的第二确定单元2032的结构框图。随机森林模型中的每条决策路径具有路径分值,第二确定单元2032包括确定元件20321和判定元件20322。
确定元件20321,确定元件20321用于将k条决策路径分别对应的路径分值加和,得到瓶颈分值。
判定元件20322,判定元件20322用于当瓶颈分值满足瓶颈阈值时,判定在该生产运行中存在性能瓶颈。
图15示意性示出了根据本公开实施例的模型构建装置300的结构框图,模型构建装置300包括第二获取模块301和构建模块302。
第二获取模块301,第二获取模块301用于获取生产运行中的历史性能数据。
构建模块302,构建模块302用于根据历史性能数据构建性能瓶颈预测模型。
图16示意性示出了根据本公开实施例的第二获取模块301的结构框图,第二获取模块301包括获取单元3011。
获取单元3011,获取单元3011用于有放回地m次获取生产运行中的历史性能数据,其中,历史性能数据包括t个性能特征,每个性能特征包括性能参数,m为大于等于1的整数,t为大于等于1的整数。
图17示意性示出了根据本公开实施例的构建模块302的结构框图,构建模块302包括设定单元3021、第一构建单元3022、第二构建单元3023和打分单元3024。
设定单元3021,设定单元3021用于设定每个性能特征的Sv个性能参数区间,Sv为大于等于1的整数,v为大于等于1且小于等于t的整数。
第一构建单元3022,第一构建单元3022用于根据每次获取的历史性能数据和设定的每个性能特征的Sv个性能参数区间,构建决策树,其中,t个性能特征和每个性能特征的性能参数所符合的性能参数区间组合形成决策树的ni条决策路径,ni为大于等于1的整数,i为大于等于且小于等于m的整数。
第二构建单元3023,第二构建单元3023用于将m个决策树构建为随机森林模型。
打分单元3024,打分单元3024用于给随机森林模型中的每条决策路径打分,得到每条决策路径的路径分值。
图18示意性示出了根据本公开实施例的打分单元3024的结构框图,每条决策路径包括t个决策点,每个决策点包括根节点和分支,根节点由性能特征确定,分支由性能特征的性能参数所符合的性能参数区间确定,给随机森林模型中的每条决策路径打分,得到每条决策路径的路径分值,打分单元3024包括设定元件30241和加和元件30242。
设定元件30241,设定元件30241用于设定每个决策点的分支的分数值。
加和元件30242,加和元件30242用于将每条决策路径的t个决策点的分数值加和,得到路径分值。
根据本公开实施例的生产运行中的性能瓶颈的评估装置200,通过将生产运行中的性能数据作为性能瓶颈预测模型的输入,在性能瓶颈预测模型中评估性能数据,即可判断该生产运行中是否存在性能瓶颈,由此,测试人员可以根据生产运行中的瓶颈情况进行预估,是否需要进一步做性能测试。通过本公开的生产运行中的性能瓶颈的评估方法,使得测试人员可以有针对性地进行性能测试,及时根据生产运行的实际情况预测到可能出现的性能问题,并根据生产运行的性能数据在测试环境中进行推演,以便对可能出现的性能瓶颈做出相应的扩容、清理数据和引流等解决措施,弥补了人工识别性能测试需求的缺陷。
另外,根据本公开的实施例,第一获取模块201、输入模块202和评估模块203中的任意多个模块可以合并在一个模块中实现,或者其中的任意一个模块可以被拆分成多个模块。或者,这些模块中的一个或多个模块的至少部分功能可以与其他模块的至少部分功能相结合,并在一个模块中实现。
根据本公开的实施例,第一获取模块201、输入模块202和评估模块203中的至少一个可以至少被部分地实现为硬件电路,例如现场可编程门阵列(FPGA)、可编程逻辑阵列(PLA)、片上系统、基板上的系统、封装上的系统、专用集成电路(ASIC),或可以通过对电路进行集成或封装的任何其他的合理方式等硬件或固件来实现,或以软件、硬件以及固件三种实现方式中任意一种或以其中任意几种的适当组合来实现。
或者,第一获取模块201、输入模块202和评估模块203中的至少一个可以至少被部分地实现为计算机程序模块,当该计算机程序模块被运行时,可以执行相应的功能。
图19示意性示出了根据本公开实施例的挖掘性能测试结果的方法的流程图。
如图19所示,该实施例的挖掘性能测试结果的方法包括操作S610~操作S640。
在操作S610,根据上述的生产运行中的性能瓶颈的评估方法,获取容器生产运行中的性能数据,可以得到容器的评估结果。
在操作S620,根据上述的生产运行中的性能瓶颈的评估方法,获取数据库服务器生产运行中的性能数据,可以得到数据库服务器的评估结果。
在操作S630,根据上述的生产运行中的性能瓶颈的评估方法,获取交易生产运行中的性能数据,可以得到交易的评估结果。
在操作S640,将容器的评估结果、数据库服务器的评估结果和交易的评估结果组合,得到性能测试结果。
根据本公开实施例的挖掘性能测试结果的方法,通过生产运行中的性能瓶颈的评估方法可以识别到不同的生产运行中可能出现的性能瓶颈,将识别出的性能瓶颈组合即可得到性能测试结果,由此可以减少人工参与测试,从而在提升测试效率和准确性的同时,还可以节约测试成本。
下面参照图20详细描述根据本公开实施例的挖掘性能测试结果的方法。值得理解的是,下述描述仅是示例性说明,而不是对本公开的具体限制。
本公开的挖掘性能测试结果的方法包括以下步骤:
步骤1:部署链路采集中心,并采集交易的全链路信息。
优选的,在生产环境上部署的链路采集中心,主要使用的是全链路跟踪工具。目前业界有很多全链路跟踪工具,包括Twitter开源的调用链分析工具、韩国开源的基于字节码注入的Pinpoint、国内开源的基于字节码注入的SkyWalking等。本发明中的全链路跟踪工具,主要是基于Twitter开源的调用链分析工具Zipkin,其主要特点是轻量,部署和使用都比较简单。
优选的,交易的全链路信息包括交易上下游调用的服务,涉及的数据库表、SQL语句等。
步骤2:部署数据采集中心,并按照一定的监控周期采集生产运行数据。
优选的,生产运行数据包括分布式容器的资源使用情况,数据库服务器的资源使用情况、数据库表中数据量、交易成功率、交易耗时、交易每秒调用量、交易并发用户数等。通过一定的监控周期采集生产运行数据,并进行存储。
优选的,所述的分布式容器的资源包括容器的CPU使用率、内存使用率、磁盘IO、磁盘空间使用情况、网络带宽等。
优选的,所述的数据库服务器的资源包括数据库的CPU使用率、内存使用率、磁盘IO、磁盘空间使用情况、网络带宽等。
优选的,所述的数据库表中数据量是指数据库中每张表的数据量。
步骤3:通过数据统计中心对表数据量进行统计。
优选的,数据统计中心,主要是对所述的采集到的数据库表的数据量进行统计计算,得出近3天,近7天的表数据量增长情况。
步骤4:通过数据分析中心,对相关生产运行数据进行综合分析,识别出性能存在瓶颈的容器、数据库服务器、交易等。
优选的,数据分析中心主要是基于随机森林算法,对分布式容器的资源使用情况,数据库服务器的资源使用情况、数据库表中数据量、交易成功率、交易耗时、交易每秒调用量、交易并发用户数等数据进行综合分析,预测出性能存在瓶颈的容器、数据库服务器、交易等。
步骤5:通过邮件识别可能存在性能瓶颈的容器、数据库服务器、交易等,及当前的生产运行数据及交易链路发给开发人员。
优选的,开发人员可以根据生产的运行情况及交易链路,在测试环境准备类似的数据量及配置,执行相同的交易链路,更精准更有效的进行性能评估。
本实施例所提供的挖掘性能测试结果的方法具体包括以下步骤:
S101:部署链路采集中心,并采集交易的全链路信息。
优选的,在生产环境上部署的链路采集中心,主要使用的是全链路跟踪工具目前业界有很多全链路跟踪工具,包括Twitter开源的调用链分析工具、韩国开源的基于字节码注入的Pinpoint、国内开源的基于字节码注入的SkyWalking等。本发明中的全链路跟踪工具,主要是基于Twitter开源的调用链分析工具Zipkin,其主要特点是轻量,部署和使用都比较简单。
优选的,交易的全链路信息包括交易上下游调用的服务,涉及的数据库表、SQL语句等。
Zipkin的链路采集包括zipkin客户端,服务端、数据库存储。其关系为:客户端采集到交易链路信息之后,把链路信息上报给服务端,服务端收集到相关信息链路信息之后,将链路信息进行存储到数据库。优选的,这里的链路信息包括交易的时间点、交易的上下游服务、交易的数据库操作等。
每个链路操作所涉及的traceid、spanid、parentspanid、该链路操作及执行该操作的时刻,以一定的存储方式存到数据库:唯一索引|traceid|spanid|parentspanid|链路操作|时间点。
其中,traceid作为该交易链路的唯一标识,相同的交易链路,其traceid相同,即traceid贯穿整个交易链路。spanid表示被调用服务的id,spanid代表的是这个链路操作在整个调用链路树中的位置。同一调用层级,其parentspanid相同,spanid不同,spanid从小到大表示请求的顺序。parentspanid表示的是被调用服务的父亲服务的spanid。第一个服务作为根服务,没有父亲服务,故根服务的Parentspanid设置为null。链路操作表示的调用的服务或者执行的SQL。时间点表示的是执行链路操作时的时刻。
具体在数据库中的存储可见如下例子,表示的交易链路是服务A→服务B→执行SQL语句select*from tablel where num=1 and zone=200;→服务C→服务D。
S102:部署数据采集中心,并按照一定的监控周期采集生产运行数据。
优选的,生产运行数据包括分布式容器的资源使用情况,数据库服务器的资源使用情况、数据库表中数据量、交易成功率、交易耗时、交易每秒调用量、交易并发用户数等。通过一定的监控周期采集生产运行数据,并以一定的存储方式存到数据库。
优选的,所述的分布式容器的资源包括容器的CPU使用率、内存使用率、磁盘IO、磁盘空间使用情况、网络带宽等。
优选的,所述的数据库服务器的资源包括数据库的CPU使用率、内存使用率、磁盘IO、磁盘空间使用情况、网络带宽等。
优选的,所述的数据库表中数据量是指数据库中每张表的数据量。
S103:通过数据统计中心对表数据量进行统计。
优选的,数据统计中心,主要是对所述的采集到的数据库表的数据量进行统计计算,得出近3天,近7天的表数据量增长情况,以一定的存储方式存到数据库。优选的,数据库表中数据变化量包括数据库表空间名、数据库表名、当天数据量、近三天数据增长量、近七天数据增长量及日期。
具体如下,可用以下存储方式存储到数据库:唯一索引|数据库表空间名|数据库表名|当天数据量|近三天数据增长量|近七天数据增长量旧期。优选的,日期为采集当天的日期。
S104:通过数据分析中心,对相关生产运行数据进行综合分析,预测出性能存在瓶颈的容器、数据库服务器、交易等。
优选的,数据分析中心主要是基于随机森林算法,对分布式容器的资源使用情况,数据库服务器的资源使用情况、数据库表中数据量、交易成功率、交易耗时、交易每秒调用量、交易并发用户数等数据进行综合分析,预测出性能存在瓶颈的容器、数据库服务器、交易等。
S105:通过邮件识别可能存在性能瓶颈的容器、数据库服务器、交易等,及当前的生产运行数据及交易链路发给开发人员。
优选的,开发人员可以根据生产的运行情况及交易链路,在测试环境准备类似的数据量及配置,执行相同的交易链路,更精准更有效的进行性能评估。
数据采集中心按照一定的监控周期采集生产运行数据的过程:
S201:设置监控周期θ分钟。
优选的,监控周期θ作为一个全局变量,S202至S204的监控周期均由θ来决定。当设定监控周期为θ分钟,一天共(1440÷θ)个监控周期。每个监控周期采集一次生产运行数据,共采集(1440÷θ)组生产运行数据。θ一般为5分钟、10分钟不等,可以根据系统的监控需要进行设置。
S202:每θ分钟采集一次容器的生产运行数据,并把采集到的数据以一定的存储方式存到数据库。
优选的,容器的生产运行数据包括容器ID,容器的CPU利用率、容器的内存使用率、容器的磁盘IO、容器的磁盘空间使用情况、网络带宽、容器时间点。优选的,容器ID表示的是容器的唯一标识。优选的,容器时间点表示的是采集这组容器生产运行数据的时刻。
采集到的容器生产运行数据以一定的存储格式存储到数据库中,表名记为Pod_Status,具体如下:唯一索引|容器ID|容器CPU利用率|容器内存利用率|容器磁盘IO|容器磁盘空间使用情况|容器网络带宽|容器时间点。
S203:每θ分钟采集一次数据库服务器的生产运行数据,并把采集到的数据以一定的存储方式存到数据库。
优选的,数据库服务器的生产运行数据包括数据库IP、数据库的CPU利用率、数据库内存利用率、数据库磁盘IO、数据库磁盘空间使用情况、数据库网络带宽、数据库时间点。优选的,数据库IP表示的是数据库的唯一标识。优选的,数据库时间点表示的是采集这组数据库生产运行数据的时刻。
采集到的数据库的生产运行数据以一定的存储格式存储到数据库中,表名记为Database_Status,具体如下:唯一索引|数据库IP|数据库CPU利用率|数据库内存利用率|数据库磁盘IO|数据库磁盘空间使用情况|数据库网络带宽|数据库时间点。
S204:每θ分钟采集一次交易的生产运行数据,并把采集到的数据以一定的存储方式存到数据库。优选的,交易的生产运行数据包括交易名、交易成功率、交易耗时、交易每秒调用量、交易并发用户数、交易时间点。优选的,交易时间点表示的是采集这组交易生产运行数据的时刻。
采集到的交易生产运行数据以一定的存储格式存储到数据库中,Trade_Status具体如下:唯一索引|交易名|交易成功率|交易耗时|交易每秒调用量|交易并发用户数|交易时间点。
S205:每天采集一次数据库表中每张表的数据总量,并以一定的存储方式存到数据库。具体如下:唯一索引|数据库表空间名|数据库表名|数据量旧期。优选的,日期为采集当天的日期。
本实施例所提供的利用容器的生产运行数据、数据库服务器的生产运行数据、交易的生产运行数据、数据库表中数据变化量的历史样本构建随机森林的流程,主要包括:利用容器的生产运行数据、数据库服务器的生产运行数据、交易的生产运行数据、数据库表中数据变化量的历史样本数据,基于随机森林算法,通过随机采样方式,分别构建识别数容器性能瓶颈、数据库服务器性能瓶颈、交易性能瓶颈的随机森林。具体步骤如下:
S301:以有放回随机采样的方式,从历史样本数据中随机选择样本。优选的,从历史样本数据集N中,以有放回随机采样方式随机选择n(N>n)个样本,这n个样本作为训练决策树根节点处的样本,用来训练一颗决策树。优选的,未抽到的样本又称为袋外数据,主要是用来作为预测,用以评估所构建的决策树的误差。优选的,历史样本包括容器的生产运行数据、数据库服务器的生产运行数据、交易的生产运行数据、数据库表中数据变化量。
S302:利用ID3算法进行属性选择,生成决策树。
优选的,ID3算法指的是从历史样本数据集N中随机选择n个样本,计算每个属性的条件熵,得出它们信息增益的大小,最后从中选择信息增益最大的属性作为节点,对数据样本进行分裂。
优选的,对于容器的生产运行数据,从容器CPU利用率、容器内存利用率、容器磁盘IO、容器磁盘空间使用情况、容器网络带宽这五个属性中选择四个属性,其中容器CPU利用率和容器内存利用率是必选项,另两个属性项从另外的三个属性中随机选择。对于数据库服务器的生产运行数据,从数据库CPU利用率、数据库内存利用率、数据库磁盘IO、数据库磁盘空间使用情况、数据库网络带宽这五个属性中选择四个属性,其中数据库CPU利用率和数据库内存利用率是必选项,另两个属性项从另外的三个属性中随机选择。交易的生产运行数据,从交易成功率、交易耗时、交易每秒调用量、交易并发用户数、这四个属性中选择三个属性。
优选的,利用ID3算法,采用信息增益的策略,从属性中选择信息增益最大的属性作为分割节点,构建一颗决策树。
优选的,ID3算法所涉及的信息熵、条件熵和信息增益描述如下:
对于信息熵,假定样本集合n中,识别结果中第i类样本所占的比例为Pi,则样本集n的信息熵可以由前文中公式(1)求得。
其中,Info(n)的值越小,则n的纯度越高。例如,对于从样本集N中随机选择的容器的生产运行数据的历史样本n,若识别结果为Y的记录占20%,识别结果为N的记录占80%,则Info(n)=-(0.2×log20.2+0.8×log20.8)=0.7219。
对于条件熵,假定样本集合n中,以属性A划分数据,将数据集n划分为k部分,每部分对应属性A的一个属性,第j部分的样本数为nj,则样本集n在属性A条件下的条件熵可以根据上文中的公式(2)求得。
其中,Info(nj)表示第j部分样本数据的信息熵。例如,在对容器的生产运行数据样本n进行属性分割时,若选取容器CPU利用率这一属性,容器CPU利用率包含五类属性分别为0-20%、21%-40%、41%-60%、61%-80%和81%-100%五类属性将数据样本分为五部分,每部分的数据集为n1,n2,n3,n4,n5,用|ni|表示数据集ni的数据量。则以容器CPU利用率这一属性为条件进行样本分割得到的条件熵为:
对于以属性A分割数据时,其信息增益可以由上文中的公式(3)求得。
在构建决策树过程中,进行属性选择时,应选择信息增益值最大的属性作为该结节分裂条件。通过递归地执行该步骤,若数据样本为容器的生产运行数据,则构建生成一颗容器性能瓶颈决策树;若数据样本为数据库服务器的生产运行数据,则构建生成一颗数据库服务器性能瓶颈决策树;若数据样本为交易的生产运行数据,则构建生成一颗交易性能瓶颈决策树。
S303:重复执行以上两步m次,构建m棵决策树,形成随机森林。
优选的,当历史样本数据为容器的生产运行数据时,重复执行S301和S302这两个步骤,生成m颗容器性能瓶颈决策树,这些决策树最终形成容器性能瓶颈随机森林;当历史样本数据为数据库服务器的生产运行数据时,重复执行S301和S302这两个步骤,生成m颗数据库服务器性能瓶颈决策树,这些决策树最终形成数据库服务器性能瓶颈随机森林;当历史样本数据为交易的生产运行数据时,重复执行S301和S302这两个步骤,生成m颗交易性能瓶颈决策树,这些决策树最终形成加交易性能瓶颈随机森林。
如图20所示,本实施例所提供的基于所构建的随机森林识别容器性能瓶颈、数据库服务器性能瓶颈、交易性能瓶颈的流程,具体步骤如下:
S401:数据分析中心分别从Pod_status、Database_Status、Trade_Status中选取位于同一时间窗口内的数据记录。
S402:容器性能瓶颈随机森林、数据库服务器性能瓶颈随机森林和交易性能瓶颈随机森林以选取的数据分别作为输入,并行识别存在性能瓶颈的容器、存在性能瓶颈的数据库服务器,存在性能瓶颈的交易。
优选的,Pod_status作为容器性能瓶颈随机森林的输入项;Database_Status作为数据库服务器性能瓶颈随机森林的输入项;Trade_Status作为交易性能瓶颈随机森林的输入项。
S403:随机森林中的m棵决策树分别处理输入数据,并基于处理结果投票决策。
优选的,容器性能瓶颈随机森林中的m棵决策树根据分析结果投票决定决策容器是否存在性能瓶颈;数据库服务器性能瓶颈随机森林中的m棵决策树根据分析结果投票决策数据库服务器是否存在性能瓶颈;交易性能瓶颈随机森林中的m棵决策树根据分析结果投票决策交易是否存在性能瓶颈。
S404:对预测结果进行合并,并发送给开发人员。
优选的,三个随机森林的结果分别如下:
(容器存在性能瓶颈,容器不存在性能瓶颈);
(数据库服务器存在性能瓶颈,数据库服务器不存在性能瓶颈);
(交易存在性能瓶颈,交易不存在性能瓶颈);
组合起来的预测结果则为:
1、(容器存在性能瓶颈,数据库服务器存在性能瓶颈,交易存在性能瓶颈);
2、(容器存在性能瓶颈,数据库服务器存在性能瓶颈,交易不存在性能瓶颈);
3、(容器存在性能瓶颈,数据库服务器不存在性能瓶颈,交易存在性能瓶颈);
4、(容器存在性能瓶颈,数据库服务器不存在性能瓶颈,交易不存在性能瓶颈);
5、(容器不存在性能瓶颈,数据库服务器存在性能瓶颈,交易存在性能瓶颈);
6、(容器不存在性能瓶颈,数据库服务器存在性能瓶颈,交易不存在性能瓶颈);
7、(容器不存在性能瓶颈,数据库服务器不存在性能瓶颈,交易存在性能瓶颈);
8、(容器不存在性能瓶颈,数据库服务器不存在性能瓶颈,交易不存在性能瓶颈);
当预测结果为1-7时,则发送的邮件给开发人员,邮件内容包括:预测结果+容器的生产运行数据+数据库服务器的生产运行数据+交易的运行数据+数据库表的数据量、近3天表增长量、近7天的表增长量。
本公开提供的挖掘性能测试结果的方法:基于容器的生产运行数据、数据库服务器的生产运行数据、交易的生产运行数据等信息,通过随机森林进行建模并进行预测。若预测到将来可能会发生性能瓶颈,则把生产的运行数据,即交易链路、交易链路上应用容器的资源使用情况、数据库的资源使用情况、涉及的表的数据量,涉及的表近三天、近七天的增长趋势等,通过邮件的形式发送给项目组。项目组根据生产的运行情况进行预估,是否需要进一步做性能测试。通过这种方式,可以有针对性的进行性能测试,弥补人工识别性能测试需求的弊端,及时根据生产实际情况预测到可能出现的性能问题,并根据生产的运行数据在测试环境进行推演,以便对可能出现的性能瓶颈做出相应的扩容、引流、清理数据等解决措施。
基于上述挖掘性能测试结果的方法,本公开还提供了一种挖掘性能测试结果的装置400。以下将结合图21对挖掘性能测试结果的装置400进行详细描述。
图21示意性示出了根据本公开实施例的挖掘性能测试结果的装置400的结构框图。
挖掘性能测试结果的装置400包括容器性能瓶颈评估装置401、数据库服务器性能瓶颈评估装置402、交易性能瓶颈评估装置403和组合装置404。
容器性能瓶颈评估装置401,容器性能瓶颈评估装置401用于根据上述的生产运行中的性能瓶颈的评估方法,获取容器生产运行中的性能数据,得到容器的评估结果。
数据库服务器性能瓶颈评估装置402,数据库服务器性能瓶颈评估装置402用于根据上述的生产运行中的性能瓶颈的评估方法,获取数据库服务器生产运行中的性能数据,得到数据库服务器的评估结果。
交易性能瓶颈评估装置403,交易性能瓶颈评估装置403用于根据上述的生产运行中的性能瓶颈的评估方法,获取交易生产运行中的性能数据,得到交易的评估结果。
组合装置404,组合装置404用于将容器的评估结果、数据库服务器的评估结果和交易的评估结果组合,得到性能测试结果。
根据本公开实施例的挖掘性能测试结果的装置400,通过生产运行中的性能瓶颈的评估方法可以识别到不同的生产运行中可能出现的性能瓶颈,将识别出的性能瓶颈组合即可得到性能测试结果,由此可以减少人工参与测试,从而在提升测试效率和准确性的同时,还可以节约测试成本。
另外,根据本公开的实施例,容器性能瓶颈评估装置401、数据库服务器性能瓶颈评估装置402、交易性能瓶颈评估装置403和组合装置404中的任意多个模块可以合并在一个模块中实现,或者其中的任意一个模块可以被拆分成多个模块。或者,这些模块中的一个或多个模块的至少部分功能可以与其他模块的至少部分功能相结合,并在一个模块中实现。
根据本公开的实施例,容器性能瓶颈评估装置401、数据库服务器性能瓶颈评估装置402、交易性能瓶颈评估装置403和组合装置404中的至少一个可以至少被部分地实现为硬件电路,例如现场可编程门阵列(FPGA)、可编程逻辑阵列(PLA)、片上系统、基板上的系统、封装上的系统、专用集成电路(ASIC),或可以通过对电路进行集成或封装的任何其他的合理方式等硬件或固件来实现,或以软件、硬件以及固件三种实现方式中任意一种或以其中任意几种的适当组合来实现。
或者,容器性能瓶颈评估装置401、数据库服务器性能瓶颈评估装置402、交易性能瓶颈评估装置403和组合装置404中的至少一个可以至少被部分地实现为计算机程序模块,当该计算机程序模块被运行时,可以执行相应的功能。
图22示意性示出了根据本公开实施例的适于实现上述方法的电子设备的方框图。
如图22所示,根据本公开实施例的电子设备900包括处理器901,其可以根据存储在只读存储器(ROM)902中的程序或者从存储部分908加载到随机访问存储器(RAM)903中的程序而执行各种适当的动作和处理。处理器901例如可以包括通用微处理器(例如CPU)、指令集处理器和/或相关芯片组和/或专用微处理器(例如,专用集成电路(ASIC))等等。处理器901还可以包括用于缓存用途的板载存储器。处理器901可以包括用于执行根据本公开实施例的方法流程的不同动作的单一处理单元或者是多个处理单元。
在RAM 903中,存储有电子设备900操作所需的各种程序和数据。处理器901、ROM902以及RAM 903通过总线904彼此相连。处理器901通过执行ROM 902和/或RAM 903中的程序来执行根据本公开实施例的方法流程的各种操作。需要注意,所述程序也可以存储在除ROM 902和RAM 903以外的一个或多个存储器中。处理器901也可以通过执行存储在所述一个或多个存储器中的程序来执行根据本公开实施例的方法流程的各种操作。
根据本公开的实施例,电子设备900还可以包括输入/输出(I/O)接口905,输入/输出(I/O)接口905也连接至总线904。电子设备900还可以包括连接至I/O接口905的以下部件中的一项或多项:包括键盘、鼠标等的输入部分906;包括诸如阴极射线管(CRT)、液晶显示器(LCD)等以及扬声器等的输出部分907;包括硬盘等的存储部分908;以及包括诸如LAN卡、调制解调器等的网络接口卡的通信部分909。通信部分909经由诸如因特网的网络执行通信处理。驱动器910也根据需要连接至输入/输出(I/O)接口905。可拆卸介质911,诸如磁盘、光盘、磁光盘、半导体存储器等等,根据需要安装在驱动器910上,以便于从其上读出的计算机程序根据需要被安装入存储部分908。
本公开还提供了一种计算机可读存储介质,该计算机可读存储介质可以是上述实施例中描述的设备/装置/系统中所包含的;也可以是单独存在,而未装配入该设备/装置/系统中。上述计算机可读存储介质承载有一个或者多个程序,当上述一个或者多个程序被执行时,实现根据本公开实施例的方法。
根据本公开的实施例,计算机可读存储介质可以是非易失性的计算机可读存储介质,例如可以包括但不限于:便携式计算机磁盘、硬盘、随机访问存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、便携式紧凑磁盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本公开中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。例如,根据本公开的实施例,计算机可读存储介质可以包括上文描述的ROM 902和/或RAM 903和/或ROM 902和RAM 903以外的一个或多个存储器。
本公开的实施例还包括一种计算机程序产品,其包括计算机程序,该计算机程序包含用于执行流程图所示的方法的程序代码。当计算机程序产品在计算机系统中运行时,该程序代码用于使计算机系统实现本公开实施例的方法。
在该计算机程序被处理器901执行时执行本公开实施例的系统/装置中限定的上述功能。根据本公开的实施例,上文描述的系统、装置、模块、单元等可以通过计算机程序模块来实现。
在一种实施例中,该计算机程序可以依托于光存储器件、磁存储器件等有形存储介质。在另一种实施例中,该计算机程序也可以在网络介质上以信号的形式进行传输、分发,并通过通信部分909被下载和安装,和/或从可拆卸介质911被安装。该计算机程序包含的程序代码可以用任何适当的网络介质传输,包括但不限于:无线、有线等等,或者上述的任意合适的组合。
在这样的实施例中,该计算机程序可以通过通信部分909从网络上被下载和安装,和/或从可拆卸介质911被安装。在该计算机程序被处理器901执行时,执行本公开实施例的系统中限定的上述功能。根据本公开的实施例,上文描述的系统、设备、装置、模块、单元等可以通过计算机程序模块来实现。
根据本公开的实施例,可以以一种或多种程序设计语言的任意组合来编写用于执行本公开实施例提供的计算机程序的程序代码,具体地,可以利用高级过程和/或面向对象的编程语言、和/或汇编/机器语言来实施这些计算程序。程序设计语言包括但不限于诸如Java,C++,python,“C”语言或类似的程序设计语言。程序代码可以完全地在用户计算设备上执行、部分地在用户设备上执行、部分在远程计算设备上执行、或者完全在远程计算设备或服务器上执行。在涉及远程计算设备的情形中,远程计算设备可以通过任意种类的网络,包括局域网(LAN)或广域网(WAN),连接到用户计算设备,或者,可以连接到外部计算设备(例如利用因特网服务提供商来通过因特网连接)。
附图中的流程图和框图,图示了按照本公开各种实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段、或代码的一部分,上述模块、程序段、或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个接连地表示的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图或流程图中的每个方框、以及框图或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
本领域技术人员可以理解,本公开的各个实施例和/或权利要求中记载的特征可以进行多种组合和/或结合,即使这样的组合或结合没有明确记载于本公开中。特别地,在不脱离本公开精神和教导的情况下,本公开的各个实施例和/或权利要求中记载的特征可以进行多种组合和/或结合。所有这些组合和/或结合均落入本公开的范围。
以上对本公开的实施例进行了描述。但是,这些实施例仅仅是为了说明的目的,而并非为了限制本公开的范围。尽管在以上分别描述了各实施例,但是这并不意味着各个实施例中的措施不能有利地结合使用。本公开的范围由所附权利要求及其等同物限定。不脱离本公开的范围,本领域技术人员可以做出多种替代和修改,这些替代和修改都应落在本公开的范围之内。
Claims (12)
1.一种生产运行中的性能瓶颈的评估方法,其特征在于,包括:
获取生产运行中的性能数据;
输入所述性能数据至预先构建的性能瓶颈预测模型;
在所述性能瓶颈预测模型中评估所述性能数据,得到评估结果,其中,所述评估结果包括在该生产运行中存在性能瓶颈或者在该生产运行中不存在性能瓶颈。
2.根据权利要求1所述的方法,其特征在于,所述性能瓶颈预测模型为随机森林模型,所述随机森林模型包括m个决策树,每个所述决策树包括ni条决策路径,m为大于等于1的整数,ni为大于等于1的整数,i为大于等于1且小于等于m的整数,所述在所述性能瓶颈预测模型中评估所述性能数据,得到评估结果,包括:
在所述随机森林模型中确定所述性能数据符合的k条决策路径,其中,k为大于等于1且小于等于m的整数;
根据所述k条决策路径评估所述性能数据,得到评估结果。
3.根据权利要求2所述的方法,其特征在于,所述随机森林模型中的每条所述决策路径具有路径分值,所述根据所述k条决策路径评估所述性能数据,得到评估结果,包括:
将所述k条决策路径分别对应的所述路径分值加和,得到瓶颈分值;
当所述瓶颈分值满足瓶颈阈值时,判定在该生产运行中存在性能瓶颈。
4.根据权利要求1所述的方法,其特征在于,预先构建性能瓶颈预测模型,包括:
获取生产运行中的历史性能数据;
根据所述历史性能数据构建所述性能瓶颈预测模型。
5.根据权利要求4所述的方法,其特征在于,
所述获取生产运行中的历史性能数据,包括:有放回地m次获取生产运行中的历史性能数据,其中,所述历史性能数据包括t个性能特征,每个所述性能特征包括性能参数,m为大于等于1的整数,t为大于等于1的整数;
所述根据所述历史性能数据构建所述性能瓶颈预测模型,包括:
设定每个所述性能特征的Sv个性能参数区间,Sv为大于等于1的整数,v为大于等于1且小于等于t的整数;
根据每次获取的所述历史性能数据和设定的所述每个所述性能特征的Sv个性能参数区间,构建决策树,其中,所述t个性能特征和每个所述性能特征的性能参数所符合的性能参数区间组合形成所述决策树的ni条决策路径,ni为大于等于1的整数,i为大于等于1且小于等于m的整数;
将m个所述决策树构建为随机森林模型;
给随机森林模型中的每条所述决策路径打分,得到每条所述决策路径的路径分值。
6.根据权利要求5所述的方法,其特征在于,每条所述决策路径包括t个决策点,每个所述决策点包括根节点和分支,所述根节点由所述性能特征确定,所述分支由所述性能特征的性能参数所符合的性能参数区间确定,所述给随机森林模型中的每条所述决策路径打分,得到每条所述决策路径的路径分值,包括:
设定每个所述决策点的分支的分数值;
将每条所述决策路径的所述t个决策点的分数值加和,得到路径分值。
7.一种生产运行中的性能瓶颈的评估装置,其特征在于,包括:
获取模块,所述获取模块用于获取生产运行中的性能数据;
输入模块,所述输入模块用于输入所述性能数据至预先构建的性能瓶颈预测模型;
评估模块,所述评估模块用于在所述性能瓶颈预测模型中评估所述性能数据,得到评估结果,其中,所述评估结果包括在该生产运行中存在性能瓶颈或者在该生产运行中不存在性能瓶颈。
8.一种挖掘性能测试结果的方法,其特征在于,
根据权利要求1~6中任一项所述的生产运行中的性能瓶颈的评估方法,获取容器生产运行中的性能数据,得到容器的评估结果;
根据权利要求1~6中任一项所述的生产运行中的性能瓶颈的评估方法,获取数据库服务器生产运行中的性能数据,得到数据库服务器的评估结果;
根据权利要求1~6中任一项所述的生产运行中的性能瓶颈的评估方法,获取交易生产运行中的性能数据,得到交易的评估结果;
将所述容器的评估结果、所述数据库服务器的评估结果和所述交易的评估结果组合,得到性能测试结果。
9.一种挖掘性能测试结果的装置,其特征在于,
容器性能瓶颈评估装置,所述容器性能瓶颈评估装置用于根据权利要求1~6中任一项所述的生产运行中的性能瓶颈的评估方法,获取容器生产运行中的性能数据,得到容器的评估结果;
数据库服务器性能瓶颈评估装置,所述数据库服务器性能瓶颈评估装置用于根据权利要求1~6中任一项所述的生产运行中的性能瓶颈的评估方法,获取数据库服务器生产运行中的性能数据,得到数据库服务器的评估结果;
交易性能瓶颈评估装置,所述交易性能瓶颈评估装置用于根据权利要求1~6中任一项所述的生产运行中的性能瓶颈的评估方法,获取交易生产运行中的性能数据,得到交易的评估结果;
组合装置,所述组合装置用于将所述容器的评估结果、所述数据库服务器的评估结果和所述交易的评估结果组合,得到性能测试结果。
10.一种电子设备,其特征在于,包括:
一个或多个处理器;
一个或多个存储器,用于存储可执行指令,所述可执行指令在被所述处理器执行时,实现根据权利要求1~6中任一项或者权利要求8所述的方法。
11.一种计算机可读存储介质,其特征在于,所述存储介质上存储有可执行指令,该指令被处理器执行时实现根据权利要求1~6中任一项或者权利要求8所述的方法。
12.一种计算机程序产品,其特征在于,包括计算机程序,所述计算机程序包括一个或者多个可执行指令,所述可执行指令被处理器执行时实现根据权利要求1~6中任一项或者权利要求8所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210954618.6A CN115237804A (zh) | 2022-08-10 | 2022-08-10 | 性能瓶颈的评估方法、装置、电子设备、介质和程序产品 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210954618.6A CN115237804A (zh) | 2022-08-10 | 2022-08-10 | 性能瓶颈的评估方法、装置、电子设备、介质和程序产品 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN115237804A true CN115237804A (zh) | 2022-10-25 |
Family
ID=83679352
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210954618.6A Pending CN115237804A (zh) | 2022-08-10 | 2022-08-10 | 性能瓶颈的评估方法、装置、电子设备、介质和程序产品 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115237804A (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116738238A (zh) * | 2023-08-14 | 2023-09-12 | 北京赛目科技股份有限公司 | 一种天气场景的搭建方法、装置及电子设备 |
CN117077063A (zh) * | 2023-10-13 | 2023-11-17 | 航天宏图信息技术股份有限公司 | 车轮编队低轨卫星星座的故障诊断方法、装置和设备 |
-
2022
- 2022-08-10 CN CN202210954618.6A patent/CN115237804A/zh active Pending
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116738238A (zh) * | 2023-08-14 | 2023-09-12 | 北京赛目科技股份有限公司 | 一种天气场景的搭建方法、装置及电子设备 |
CN117077063A (zh) * | 2023-10-13 | 2023-11-17 | 航天宏图信息技术股份有限公司 | 车轮编队低轨卫星星座的故障诊断方法、装置和设备 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10338967B2 (en) | Systems and methods for predicting performance of applications on an internet of things (IoT) platform | |
CN105283851B (zh) | 用于选择跟踪目标的成本分析 | |
CN115237804A (zh) | 性能瓶颈的评估方法、装置、电子设备、介质和程序产品 | |
CN105122212A (zh) | 自动化跟踪系统中的周期性优化 | |
CN110363427A (zh) | 模型质量评估方法和装置 | |
US11004333B2 (en) | Detecting influential factors for traffic congestion | |
CN113537337A (zh) | 训练方法、异常检测方法、装置、设备和存储介质 | |
CN113159934A (zh) | 一种网点客流量的预测方法、系统、电子设备及存储介质 | |
CN111582488A (zh) | 一种事件推演方法及装置 | |
CN113191681A (zh) | 网点选址方法、装置、电子设备及可读存储介质 | |
CN110245684B (zh) | 数据处理方法、电子设备和介质 | |
CN116756616A (zh) | 数据处理方法、装置、计算机可读介质及电子设备 | |
CN112231299A (zh) | 一种特征库动态调整的方法和装置 | |
CN116796233A (zh) | 数据分析方法、装置、计算机可读介质及电子设备 | |
CN114661571B (zh) | 模型评测方法、装置、电子设备和存储介质 | |
CN114510405B (zh) | 指标数据评估方法、装置、设备、存储介质及程序产品 | |
CN113869904B (zh) | 可疑数据识别方法、装置、电子设备、介质和计算机程序 | |
CN114416422A (zh) | 问题定位方法、装置、设备、介质和程序产品 | |
CN114358024A (zh) | 日志分析方法、装置、设备、介质和程序产品 | |
CN114706856A (zh) | 故障处理方法及装置、电子设备和计算机可读存储介质 | |
CN114710397A (zh) | 服务链路的故障根因定位方法、装置、电子设备及介质 | |
CN113052509A (zh) | 模型评估方法、模型评估装置、电子设备和存储介质 | |
CN114066513A (zh) | 一种用户分类的方法和装置 | |
CN112906723A (zh) | 一种特征选择的方法和装置 | |
CN116823407B (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 |