分类模型的生成方法及装置、系统容量的预估方法及装置的制造方法
【专利说明】分类模型的生成方法及装置、系统容量的预估方法及装置 【技术领域】
[0001] 本发明涉及互联网软件测试技术领域,尤其涉及一种分类模型的生成方法及装 置、系统容量的预估方法及装置。 【【背景技术】】
[0002] 目前,对于如电子商务平台以及其他实时流量受活动等影响强烈的互联网软件而 言,在活动期间服务器上软件系统的性能表现会影响用户体验、品牌口碑甚至运营收入。因 此,有必要对承载软件系统的实际的生产环境的系统容量进行预估,以获得生产环境的性 能瓶颈,进而可以对生产环境的进行优化调整。
[0003] 如果通过对测试环境进行压力测试来获取系统容量,虽然成本比较低,但是数据 的可信度也比较低。因此现有技术中都是对实际的生产环境进行压力测试来预估系统容量 的。然而,对实际的生产环境进行压力测试存在故障风险较高、成本较大且效率较低等诸多 缺陷,所以目前如何更好的实现生产环境的系统容量数据是亟待解决的问题。 【
【发明内容】
】
[0004] 有鉴于此,本发明实施例提供了一种分类模型的生成方法及装置、系统容量的预 估方法及装置,用以解决现有技术中对生产环境进行压力测试导致的故障风险较高、成本 较大且效率较低的问题。
[0005] 本发明实施例的一方面,提供一种分类模型的生成方法,包括:
[0006] 采集生产环境的系统数据和测试环境的系统数据;
[0007] 分别从所述生产环境的系统数据和所述测试环境的系统数据中提取特征向量;
[0008] 生成系统容量与系统容量级别的对应关系;
[0009] 对提取出的特征向量、生产环境的系统容量数据、测试环境的系统容量数据和所 述对应关系进行机器学习,以生成分类模型。
[0010] 如上所述的方面和任一可能的实现方式,进一步提供一种实现方式,所述生产环 境的系统数据包括:生产环境的系统运行性能数据、生产环境的系统部署数据和生产环境 的系统配置数据中至少一个。
[0011] 如上所述的方面和任一可能的实现方式,进一步提供一种实现方式,所述测试环 境的系统数据包括:测试环境的系统运行性能数据、测试环境的系统部署数据和测试环境 的系统配置数据中至少一个。
[0012] 如上所述的方面和任一可能的实现方式,进一步提供一种实现方式,从系统数据 中提取特征向量的方法包括:
[0013] 对所述系统数据进行数据格式的标准化处理,所述系统数据为所述生产环境的系 统数据或者所述测试环境的系统数据;
[0014] 对经过标准化处理的所述系统数据进行去噪处理;
[0015] 利用降维算法,对经过去噪处理的所述系统数据进行降维处理,获得所述系统数 据的特征向量。
[0016] 如上所述的方面和任一可能的实现方式,进一步提供一种实现方式,对提取出的 特征向量、生产环境的系统容量数据、测试环境的系统容量数据和所述对应关系进行机器 学习,以生成分类模型,包括:
[0017] 根据从测试环境的系统数据中提取出的特征向量、从实际环境的系统数据中提取 出的特征向量、各系统容量数据,生成第一数据集和第二数据集;
[0018] 获得未标定数据集和第一权重向量;
[0019] 利用分类算法对所述第一数据集、所述第二数据集、所述未标定数据集和所述第 一权重向量进行机器学习,以生成分类模型;
[0020] 利用所述分类模型在第二数据集上误差,并根据所述误差重新计算权重向量,以 获得第二权重向量;
[0021 ]利用所述第二权重向量重新生成分类模型,直到达到指定的迭代次数达时停止; [0022]输出所述分类模型。
[0023]本发明实施例的一方面,提供一种系统容量的预估方法,包括:
[0024]采集测试环境的系统数据;
[0025] 根据所述测试环境的系统数据,并利用分类模型,获得生产环境的系统容量级别; 其中,所述分类模型为利用上述分类模型的生成方法获得的。
[0026] 如上所述的方面和任一可能的实现方式,进一步提供一种实现方式,根据所述测 试环境的系统数据,并利用分类模型,获得生产环境的系统容量级别,包括;
[0027] 对所述系统数据进行数据格式的标准化处理;
[0028]对经过标准化处理的所述系统数据进行去噪处理;
[0029]利用降维算法,对经过去噪处理的所述系统数据进行降维处理,获得所特征向量;
[0030] 根据从所述系统数据提取出的特征向量,并利用分类模型,获得生产环境的系统 容量级别。
[0031] 本发明实施例的一方面,提供一种分类模型的生成装置,包括:
[0032] 数据采集模块,用于采集生产环境的系统数据和测试环境的系统数据;
[0033] 特征提取模块,用于分别从所述生产环境的系统数据和所述测试环境的系统数据 中提取特征向量;
[0034] 级别处理模块,用于生成系统容量与系统容量级别的对应关系;
[0035] 模型生成模块,用于对提取出的特征向量、生产环境的系统容量数据、测试环境的 系统容量数据和所述对应关系进行机器学习,以生成分类模型。
[0036] 如上所述的方面和任一可能的实现方式,进一步提供一种实现方式,所述生产环 境的系统数据包括:生产环境的系统运行性能数据、生产环境的系统部署数据和生产环境 的系统配置数据中至少一个。
[0037] 如上所述的方面和任一可能的实现方式,进一步提供一种实现方式,所述测试环 境的系统数据包括:测试环境的系统运行性能数据、测试环境的系统部署数据和测试环境 的系统配置数据中至少一个。
[0038] 如上所述的方面和任一可能的实现方式,进一步提供一种实现方式,所述特征提 取模块,具体用于:
[0039] 对所述系统数据进行数据格式的标准化处理,所述系统数据为所述生产环境的系 统数据或者所述测试环境的系统数据;
[0040] 对经过标准化处理的所述系统数据进行去噪处理;
[0041] 利用降维算法,对经过去噪处理的所述系统数据进行降维处理,获得所述系统数 据的特征向量。
[0042] 如上所述的方面和任一可能的实现方式,进一步提供一种实现方式,所述模型生 成模块,具体用于:
[0043] 根据从测试环境的系统数据中提取出的特征向量、从实际环境的系统数据中提取 出的特征向量、各系统容量数据,生成第一数据集和第二数据集;
[0044] 获得未标定数据集和第一权重向量;
[0045] 利用分类算法对所述第一数据集、所述第二数据集、所述未标定数据集和所述第 一权重向量进行机器学习,以生成分类模型;
[0046] 利用所述分类模型在第二数据集上误差,并根据所述误差重新计算权重向量,以 获得第二权重向量;
[0047] 利用所述第二权重向量重新生成分类模型,直到达到指定的迭代次数达时停止; [0048]输出所述分类模型。
[0049] 本发明实施例的一方面,提供一种系统容量的预估装置,包括:
[0050] 数据采集模块,用于采集测试环境的系统数据;
[0051] 容量预估模块,用于根据所述测试环境的系统数据,并利用分类模型,获得生产环 境的系统容量级别;其中,所述分类模型为利用上述分类模型的生成装置获得的。
[0052]如上所述的方面和任一可能的实现方式,进一步提供一种实现方式,所述装置还 包括:特征提取模块,用于对所述系统数据进行数据格式的标准化处理;以及,对经过标准 化处理的所述系统数据进行去噪处理;以及,利用降维算法,对经过去噪处理的所述系统数 据进行降维处理,获得所特征向量;
[0053]所述容量预估模块,具体用于:根据从所述系统数据提取出的特征向量,并利用分 类模型,获得生产环境的系统容量级别。
[0054]由以上技术方案可以看出,本发明实施例具有以下有益效果:
[0055] 本发明实施例所提供的技术方案中,利用生产环境的系统数据和测试环境的系统 数据以及压力测试后的系统容量数据,生成用于估算生产环境的系统容量等级的分类模 型。与现有技术中,对实际的生产环境进行压力测试来获取系统容量的方式相比,本发明实 施例由于避免使用测试环境的压力测试数
据对生产环境的系统容量进行预估,因此能够减 少生产环境的压力测试的故障风险,降低了成本,提高的效率,所以解决了现有技术中对生 产环境进行压力测试导致的故障风险较高、成本较大且效率较低的问题。 【【附图说明】】
[0056] 为了更清楚地说明本发明实施例的技术方案,下面将对实施例中所需要使用的附 图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域 普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其它的附 图。
[0057] 图1是本发明实施例所提供的分类模型的生成架构示例图;
[0058] 图2是本发明实施例所提供的分类模型的生成方法的流程示意图;
[0059] 图3是本发明实施例所提供的采集系统数据的示例图;
[0060] 图4是本发明实施例所提供的从系统数据中提取特征向量的示例图;
[0061 ]图5是本发明实施例所提供的系统容量的预估方法的流程示意图;
[0062]图6是本发明实施例所提供的系统容量的预估的示例图;
[0063]图7是本发明实施例所提供的分类模型的生成装置的功能方块图;
[0064]图8是本发明实施例所提供的系统容量的预估装置的功能方块图。 【【具体实施方式】】
[0065] 为了更好的理解本发明的技术方案,下面结合附图对本发明实施例进行详细描 述。
[0066] 应当明确,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基 于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其 它实施例,都属于本发明保护的范围。
[0067] 在本发明实施例中使用的术语是仅仅出于描述特定实施例的目的,而非旨在限制 本发明。在本发明实施例和所附权利要求书中所使用的单数形式的"一种"、"所述"和"该" 也旨在包括多数形式,除非上下文清楚地表示其他含义。
[0068] 应当理解,本文中使用的术语"和/或"仅仅是一种描述关联对象的关联关系,表示 可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种 情况。另外,本文中字符7",一般表示前后关联对象是一种"或"的关系。
[0069] 应当理解,尽管在本发明实施例中可能采用术语第一、第二等来描述权重向量,但 这些权重向量不应限于这些术语。这些术语仅用来将权重向量彼此区分开。例如,在不脱离 本发明实施例范围的情况下,第一权重向量也可以被称为第二权重向量,类似地,第二权重 向量也可以被称为第一权重向量。
[0070] 取决于语境,如在此所使用的词语"如果"可以被解释成为"在……时"或"当…… 时"或"响应于确定"或"响应于检测"。类似地,取决于语境,短语"如果确定"或"如果检测 (陈述的条件或事件)"可以被解释成为"当确定时"或"响应于确定"或"当检测(陈述的条件 或事件)时"或"响应于检测(陈述的条件或事件)"。
[0071] 利用测试环境的压力测试结果预估系统容量的关键点在于,如何获取测试环境的 系统数据与生产环境的系统数据之间的关系。由于生产环境的系统数据和测试环境的系统 数据是具有高度非线性的,因此需要引入机器学习方法解决非线性关系的聚类和拟合问 题。常见的机器学习算法通常需要对特定的领域有大量数据作为训练样本,同时需要假设 测试环境的系统数据与生产环境的系统数据服从相同的数据分布。而生产环境仅有极少量 的训练样本,甚至没有训练样本,测试环境与生产环境的差异也可能导致数据分布不同。
[0072] 请参考图1,其为本发明实施例所提供的分类模型的生成架构示例图,如图所示, 本发明实施例中,为解决上述技术难点,根据生产环境的系统数据和测试环境的系统数据, 并采用基于实例的迀移学习算法TrAdaBoost和支持向量机(Support Vector Machine, SVM)算法,来构建具备迀移学习能力的分类模型,并利用该分类模型实现对生产系统的系 统容量等级进行预估。
[0073] 实施例一
[0074] 本发明实施例给出一种分类模型的生成方法,请参考图2,其为本发明实施例所提 供的分类模型的生成方法的流程示意图,如图所示,该方法包括以下步骤:
[0075] S201,采集生产环境的系统数据和测试环境的系统数据。
[0076]具体的,本发明实施例中为了提高生产环境的系统容量预估的准确性,需要采集 生产环境的系统数据和测试环境的系统数据。
[0077]请参考图3,其为本发明实施例所提供的采集系统数据的示例图,如图所示,本发 明实施例中,所述生产环境的系统数据可以包括但不限于:生产环境的系统运行性能数据、 生产环境的系统部署数据和生产环境的系统配置数据中至少一个。
[0078] 其中,生产环境的系统运行性能数据指的是生产环境中所有相关的子系统在一段 时间内的每秒查询率(Query Per Second,QPS)、端到端的响应时间和并发数据。本发明实 施例中,可以周期的从生产环境中的实时流式文件传输系统采集生产环境的系统运行性能 数据。如图3所示,可以将采集的生产环境的系统运行性能数据存入数据库。
[0079] 其中,生产环境的系统部署数据指的是生产环境中各子系统中机房数目、各机房 中机器数目。本发明实施例中,可以从生产环境中的运营平台采集生产环境的系统部署数 据。如图3所示,可以将采集的生产环境的系统部署数据存入数据库。
[0080] 其中,生产环境的系统配置数据指的是生产环境中各机器中的CPU、内存大小和网 卡大小等。本发明实施例中,可以利用shell脚本进行ssh登录生产环境中的各机器,进行生 产环境的系统配置数据的采集。如图3所示,可以将采集的生产环境的系统配置数据存入数 据库。
[0081] 如图3所示,本发明实施例中,所述测试环境的系统数据可以包括但不限于:测试 环境的系统运行性能数据、测试环境的系统部署数据和测试环境的系统配置数据中至少一 个。
[0082] 其中,测试环境的系统运行性能数据指的是测试环境中所有相关的子系统在一段 时间内的QPS、端到端的响应时间和并发数据。本发明实施例中,可以周期的从测试环境中 的实时流式文件传输系统采集测试环境的系统运行性能数据。如图3所示,可以将采集的测 试环境的系统运行性能数据存入数据库。
[0083]其中,测试环境的系统部署数据指的是测试环境中各子系统中机房数目、各机房 中机器数目。本发明实施例中,可以从测试环境中的运营平台采集测试环境的系统部署数 据。如图3所示,可以将采集的测试环境的系统部署数据存入数据库。
[0084] 其中,测试环境的系统配置数据指的是测试环境中各机器中的CPU、内存大小和网 卡大小等。本发明实施例中,可以利用shell脚本进行ssh登录测试环境中的各机器,进行测 试环境的系统配置数据的采集。如图3所示,可以将采集的测试环境的系统配置数据存入数 据库。
[0085] 如图3所示,本发明实施例中,还需要采集生产环境的系统容量数据以及测试环境 的系统容量数据,然后将采集的各系统容量数据存储到上述数据库中。
[0086]其中,生产环境的系统容量数据可以利用压力测试工具对生产环境进行压力测试 获得,然后将生产环境的系统容量数据存储到压力测试平台中的数据库中。因此,本发明实 施例中,可以从压力测试平台的数据库中采集所需要的生产环境的系统容量数据。
[0087] 同理,测试环境的系统容量数据可以利用压力测试工具对测试环境进行压力测试 获得,然后将测试环境的系统容量数据存储到压力测试平台中的数据库中。因此,本发明实 施例中,可以从压力测试平台的数据库中采集所需要的测试环境的系统容量数据。
[0088] 在一个具体的实现方式中,存储生产环境的系统数据、生产环境的系统容量数据、 测试环境的系统数据、测试环境的系统容量数据的数据库可以利用结构化查询语言 (Structured Query Language,SQL)数据库实现,或者,也可以利用MySQL数据库实现。
[0089] S202,分别从所述生产环境的系统数据和所述测试环境的系统数据中提取特征向 量。
[0090] 具体的,在采集到生产环境的系统数据和测试环境的系统数据后,可以从数据库 中提取这些系统数据,然后分别对这两个系统数据进行处理,从两个系统数据中分别提
取 出相应的特征向量。
[0091] 举例说明,从系统数据中提取特征向量的方法可以包括但不限于:
[0092] 首先,对所述系统数据进行数据格式的标准化处理,所述系统数据为所述生产环 境的系统数据或者所述测试环境的系统数据。然后,对经过标准化处理的所述系统数据进 行去噪处理。最后,利用降维算法,对经过去噪处理的所述系统数据进行降维处理,获得所 述系统数据的特征向量。
[0093]需要说明的是,本发明实施例中,从生产环境的系统数据中提取特征向量与从测 试环境的系统数据中提取特征向量的方法是相同的,因此上面举例说明的从系统数据中提 取特征向量的方法适用于生产环境的系统数据,也同时适用于测试环境的系统数据,这里 不再分开进行描述。
[0094] 可以理解的是,由于采集到的系统数据中各项数据的数据格式不同,因此为了方 便后面的去噪处理和降维处理,需要先对各项数据进行数据格式的标准化处理。请参考图 4,其为本发明实施例所提供的从系统数据中提取特征向量的示例图,如图所示,对于系统 数据包含的系统运行性能数据、系统部署数据和系统配置数据,需要分别进行数据格式的 标准化处理,将各项数据的数据格式都处理成相同的数据格式。例如,可以使用z分数(z-score)算法实现数据格式的标准化处理。
[0095] 可以理解的是,由于数据的采集操作或者系统异常都有可能导致出现较多的异常 数据,异常数据会严重影响生成的分类模型,使得分类模型的输出结果误差增大,导致准确 率降低,因此,本发明实施例中,需要对采集的系统数据进行去噪处理,从而可以去除采集 的系统数据中的孤立数据和/或异常数据。
[0096]可以理解的是,由于测试环境的系统或者生产环境的系统中会包含20多个子系 统,每个子系统都采集七个维度的数据后,将得到140多个维度的数据,并且随着系统的迭 代升级,子系统的数量将持续增加,因此本发明实施例中需要对采集的系统数据进行降维 处理,提取系统数据中的主要特征数据。
[0097] 在一个具体的实现过程中,可以利用主成分分析(Principal Component Analysis,PCA)降维算法实现降维处理。
[0098]举例说明,利用PCA降维算法,对经过去噪处理的所述系统数据进行降维处理,获 得所述系统数据的特征向量的方法可以包括但不限于:
[0099]首先,根据采集的系统数据生成对应的数据矩阵。然后对数据矩阵进行零均值化 处理,即计算数据矩阵中所述数据的平均值,然后对于每个数据都减去平均值。接着,根据 经过零均值化处理的数据矩阵,计算协方差矩阵,以及计算协方差矩阵的特征值和特征向 量。最后,按照由大到小的顺序,对特征值进行排序,选择其中最大的k个特征值,将k个特征 值对应的k个特征向量分别作为列向量,利用列向量组成特征向量。
[0100] S203,生成系统容量与系统容量级别的对应关系。
[0101]具体的,需要说明的是,由于生产环境的系统容量数据的数据量比较少,即便基于 迀移技术对未标定数据集进行建模来提高分类准确率,进行回归分析后发现仍然会有较大 的泛化误差,因此为了进一步提高系统容量预估的准确性,本发明实施例中需要采用对系 统容量进行分级的方式,为预估出的生产环境的系统容量生成对应的系统容量级别。
[0102]例如,可以将生产环境的系统容量数据,如PC子系统、NA子系统和WAP子系统等子 系统的系统容量数据分别分为不多于10个系统容量等级。
[0103] 例如,对PC子系统进行压力测试后,获得PC子系统的系统容量数据为2000QPS,这 样,PC子系统的系统容量等级与系统容量数据的对应关系可以包括:
[0104] 等级 1:1400QPS ~1600QPS
[0105] 等级 2:1600QPS ~1800QPS
[0106] 等级 3:1800QPS ~1900QPS
[0107] 等级 4:1900QPS ~2000QPS
[0108] 等级 5:2000QPS ~2100QPS
[0109] 等级 6:2100QPS ~2200QPS
[0110] 等级 7:2200QPS ~2400QPS
[0111] 等级 8:2400QPS ~2600QPS
[0112] 利用上述系统容量数据与系统容量等级之间的对应关系生成的分类模型,可以根 据测试环境的系统数据,预估出生产环境的系统容量,以获得系统容量等级。
[0113] S204,对提取出的特征向量、生产环境的系统容量数据、测试环境的系统容量数据 和所述对应关系进行机器学习,以生成分类模型。
[0114] 具体的,对从生产环境的系统数据和测试环境的系统数据中分别提取出的特征向 量、生产环境的系统容量数据、测试环境的系统容量数据和系统容量数据与系统容量等级 之间的对应关系,进行机器学习,以生成分类模型。
[0115] 本发明实施例中,生成分类模型的方法可以包括但不限于:
[0116] 首先,根据从测试环境的系统数据中提取出的特征向量、从实际环境的系统数据 中提取出的特征向量、各系统容量数据,生成第一数据集和第二数据集。然后,获得未标定 数据集和第一权重向量。接着,利用分类算法对所述第一数据集、所述第二数据集、所述未 标定数据集和所述第一权重向量进行机器学习,以生成分类模型。最后,利用所述分类模型 在第二数据集上误差,并根据所述误差重新计算权重向量,以获得第二权重向量;并利用所 述第二权重向量重新生成分类模型,直到达到指定的迭代次数达时停止,并输出所述分类 模型。
[0117] 下面给出一个具体的生成分类模型的方法,需要说明的是,该方法仅为举例说明, 不对生成分类模型的方法进行特别限定。
[0118] 步骤a:根据从测试环境的系统数据中提取出的特征向量和测试环境的系统容量 数据,生成数据集Ta,如数据集T a可以为(从测试环境的系统数据中提取出的特征向量,生产 环境的系统容量数据,维数a,每个维度中数据的数目η)。以及,根据从生产环境的系统数据 中提取出的特征向量和生产系统的系统容量数据,生成数据集T b,如数据集Tb可以为(从生 产环境的系统数据中提取出的特征向量,生产环境的系统容量数据,维数b,每个维度中数 据的数目m)。以及,生成未标定数据集S,未标定数据集S中可以包括从没有标定系统容量数 据的生产环境中提取出的特征向量和从没有标定系统容量数据的测试环境中提取出的特 征向量。
[0119] 步骤b:定义分类模型为:g:X-Y,其中,g表示分类模型,X表示从采集的测试环境 的系统数据中提取出的特征向量,Y表示该分类模型预估出的生产环境的系统容量级别。
[0120] 步骤c:生成初始的权重向量
>其中,w1中的 角标1表示该权重向量是初始的权重向量。而且,
[0121] >111
[0122] 步骤d:计算初始的调权参数&:
[0123]
[0124] 其中,βι表示初始的调权参数,N表示预先指定的迭代次数,作为迭代的停止条件。
[0125] 步骤e:枏据当前的权重向量,获得权重分布Ρ*:
[0126]
[0127] 具中,仪里分布F表不当前的权重向量中每个数值与权重向量中所有数值总和的 比值,t表示当前的迭代次数,t = l,2,…,N。
[0128] 例如,如果当前的权重向量为初始的权重向量w1,则当前的迭代次数t = 1。
[0129] 步骤f:利用SVM算法对合并数据集Ta和数据集Tb后得到的数据集、未标注数据集S、 权重分布产和系统容量数据与系统容量级别的对应关系,进行机器学习,生成分类模型g:X -Y〇
[0130] 步骤g:计算生成的分类模型在数据集Tb上的误差et:
[0131]
[0132] 其中,Xl表示数据集Tb中的数据,c(Xl)表示生产系统的系统容量数据。
[0133] 步骤h:重新计算调权参数
[0134] pt=et/(l-et)b
[0135] 步骤i:利用步骤h计算得到的新的调权参数,重新计算权重向量Wf+1:
[0136]
[0137] 步骤j:利用重新计算出的权重向量wf+1重新计算权重分布,然后,利用SVM算法 对合
并数据集1和数据集Tb后得到的数据集、未标注数据集S和重新计算出的权重分布pt, 重新进行机器学习,生成新的分类模型。如此反复迭代计算,直到迭代次数t达到指定的迭 代次数N时停止迭代计算,然后输出最新生成的分类模型,作为本发明实施例所需要的分类 模型。
[0138] 根据上面的迭代过程可以看出,每一次迭代都会降低测试环境对应的数据集中错 误率较高的数据的权重,从而可以在测试环境对应的数据集中找到符合生产环境对应的数 据集中的数据,从而得到更好的、更适用于生产环境的分类模型,提高了生产环境的系统容 量数据的预估准确性。
[0139] 实施例二
[0140] 本发明实施例给出一种系统容量的预估方法,请参考图5,其为本发明实施例所提 供的系统容量的预估方法的流程示意图,如图所示,该方法包括以下步骤:
[0141] S501,采集测试环境的系统数据。
[0142] 具体的,本发明实施例中,为了利用分类模型获得生产环境的系统容量级别,需要 使用测试环境的系统数据,因此在对生产环境的系统容量数据进行预估时,需要先采集测 试环境的系统数据,然后将采集到的测试环境的系统数据存入数据库,需要进行生产环境 的系统容量数据的预估时,从数据库中读取。
[0143] 本发明实施例中,所述测试环境的系统数据可以包括但不限于:测试环境的系统 运行性能数据、测试环境的系统部署数据和测试环境的系统配置数据中至少一个。
[0144] 其中,测试环境的系统运行性能数据指的是测试环境中所有相关的子系统在一段 时间内的QPS、端到端的响应时间和并发数据。本发明实施例中,可以周期的从测试环境中 的实时流式文件传输系统采集测试环境的系统运行性能数据。可以将采集的测试环境的系 统运行性能数据存入数据库。
[0145] 其中,测试环境的系统部署数据指的是测试环境中各子系统中机房数目、各机房 中机器数目。本发明实施例中,可以从测试环境中的运营平台采集测试环境的系统部署数 据。
[0146] 其中,测试环境的系统配置数据指的是测试环境中各机器中的CPU、内存大小和网 卡大小等。本发明实施例中,可以利用shell脚本进行ssh登录测试环境中的各机器,进行测 试环境的系统配置数据的采集。
[0147] S502,根据所述测试环境的系统数据,并利用分类模型,获得生产环境的系统容量 级别;其中,所述分类模型为利用实施例一中所述的分类模型的生成方法获得的。
[0148] 具体的,举例说明,根据所述测试环境的系统数据,并利用分类模型,获得生产环 境的系统容量级别的方法可以包括但不限于:
[0149] 请参考图6,其为本发明实施例所提供的系统容量的预估的示例图,如图所示,首 先,对所述系统数据进行数据格式的标准化处理。然后,对经过标准化处理的所述系统数据 进行去噪处理。接着,利用降维算法,对经过去噪处理的所述系统数据进行降维处理,获得 所特征向量。最后,根据从所述系统数据提取出的特征向量,并利用分类模型,获得生产环 境的系统容量级别。
[0150] 需要说明的是,对系统数据进行数据格式的标准化处理、去噪处理和降维处理的 实现方法可以参考实施例一中的描述,这里不再赘述。
[0151] 在一个具体的实现过程中,可以将从所述测试环境的系统数据中提取出的特征向 量输入生成的分类模型,以使得分类模型根据输入的特征向量,获得并输出生产环境的系 统容量数据,如生产环境的系统容量数据可以是生产环境的系统容量级别,从而可以实现 对生产环境的系统容量级别的预估。
[0152] 本发明实施例进一步给出实现上述方法实施例中各步骤及方法的装置实施例。
[0153] 请参考图7,其为本发明实施例所提供的分类模型的生成装置的功能方块图。如图 所示,该装置包括:
[0154] 数据采集模块71,用于采集生产环境的系统数据和测试环境的系统数据;
[0155] 特征提取模块72,用于分别从所述生产环境的系统数据和所述测试环境的系统数 据中提取特征向量;
[0156]级别处理模块7 3,用于生成系统容量与系统容量级别的对应关系;
[0157] 模型生成模块74,用于对提取出的特征向量、生产环境的系统容量数据、测试环境 的系统容量数据和所述对应关系进行机器学习,以生成分类模型。
[0158] 在一个具体的实现过程中,所述生产环境的系统数据包括:生产环境的系统运行 性能数据、生产环境的系统部署数据和生产环境的系统配置数据中至少一个。
[0159] 在一个具体的实现过程中,所述测试环境的系统数据包括:测试环境的系统运行 性能数据、测试环境的系统部署数据和测试环境的系统配置数据中至少一个。
[0160] 在一个具体的实现过程中,所述特征提取模块72,具体用于:
[0161] 对所述系统数据进行数据格式的标准化处理,所述系统数据为所述生产环境的系 统数据或者所述测试环境的系统数据;
[0162] 对经过标准化处理的所述系统数据进行去噪处理;
[0163] 利用降维算法,对经过去噪处理的所述系统数据进行降维处理,获得所述系统数 据的特征向量。
[0164] 在一个具体的实现过程中,所述模型生成模块74,具体用于:
[0165] 根据从测试环境的系统数据中提取出的特征向量、从实际环境的系统数据中提取 出的特征向量、各系统容量数据,生成第一数据集和第二数据集;
[0166] 获得未标定数据集和第一权重向量;
[0167] 利用分类算法对所述第一数据集、所述第二数据集、所述未标定数据集和所述第 一权重向量进行机器学习,以生成分类模型;
[0168] 利用所述分类模型在第二数据集上误差,并根据所述误差重新计算权重向量,以 获得第二权重向量;
[0169] 利用所述第二权重向量重新生成分类模型,直到达到指定的迭代次数达时停止;
[0170] 输出所述分类模型。
[0171] 由于本实施例中的各单元能够执行图2所示的方法,本实施例未详细描述的部分, 可参考对图2的相关说明。
[0172]请参考图8,其为本发明实施例所提供的系统容量的预估装置的功能方块图。如图 所示,该装置包括:
[0173]数据采集模块81,用于采集测试环境的系统数据;
[0174] 容量预估模块82,用于根据所述测试环境的系统数据,并利用分类模型,获得生产 环境的系统容量级别;其中,所述分类模型为利用权利要求8至12中任一项所述的分类模型 的生成装置获得的。
[0175] 在一个具体的实现过程中,所述装置还包括:特征提取模块83,用于对所述系统数 据进行数据格式的标准化处理;以及,对经过标准化处理的所述系统数据进行去噪处理;以 及,利用降维算法,对经过去噪处理的所述系统数据进行降维处理,获得所特征向量;
[0176] 所述容量预估模块82,具体用于:根据从所述系统数据提取出的特征向量,并利用 分类模型,获得生产环境的系统容量级别。
[0177] 由于本实施例中的各单元能够执行图5所示的方法,本实施例未详细描述的部分, 可参考对图5的相关说明。
[0178] 本发明实施例的技术方案具有以下有益效果:
[0179] 本发明实施例所提供的技术方案中,利用生产环境的系统数据和测试环境的系统 数据以及压力测试后的系统容量数据,生成用于估算生产环境的系统容量等级的分类模 型。与现有技术中,对实际的生产环境进行压力测试来获取系统容量的方式相比,本发明实 施例由于避免使用测试环境的压力测试数据对生产环境的系统容量进行预估,因此能够减 少生产环境的压力测试的故障风险,降低了成本,提高的效率,所以解决了现有技术中对生 产环境进行压力测试导致的故障风险较高、成本较大且效率较低的问题。
[0180]另外,本发明实施例所提供的技术方案中基于迀移学习的机器学习算法,来生成 分类模型,解决了现有技术汇总由于生产环境的数据量较少导致的预估结果不准确的问 题,提高了对生产环境的系统容量级别的预估准确性。
[0181] 而且,本发明实施例建立了完整的数据自动采集、处理和生成模型的预估体系,可 以自动完成数据处理和系统容量级别的预估,因此能够高效的完成系统容量级别的预估。
[0182] 所属领域的技术人员可以清楚地了解到,为描述的方
便和简洁,上述描述的系统, 装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
[0183] 在本发明所提供的几个实施例中,应该理解到,所揭露的系统,装置和方法,可以 通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的 划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如,多个单元或组 件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示 或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接 耦合或通信连接,可以是电性,机械或其它的形式。
[0184]所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显 示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个 网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目 的。
[0185]另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以 是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单 元既可以采用硬件的形式实现,也可以采用硬件加软件功能单元的形式实现。
[0186] 上述以软件功能单元的形式实现的集成的单元,可以存储在一个计算机可读取存 储介质中。上述软件功能单元存储在一个存储介质中,包括若干指令用以使得一台计算机 装置(可以是个人计算机,服务器,或者网络装置等)或处理器(Processor)执行本发明各个 实施例所述方法的部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(Read-Only Memory ,R0M)、随机存取存储器 (Random Access Memory ,RAM)、磁碟或者光盘等各种 可以存储程序代码的介质。
[0187] 以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精 神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明保护的范围之内。
【主权项】
1. 一种分类模型的生成方法,其特征在于,所述方法包括: 采集生产环境的系统数据和测试环境的系统数据; 分别从所述生产环境的系统数据和所述测试环境的系统数据中提取特征向量; 生成系统容量与系统容量级别的对应关系; 对提取出的特征向量、生产环境的系统容量数据、测试环境的系统容量数据和所述对 应关系进行机器学习,以生成分类模型。2. 根据权利要求1所述的方法,其特征在于,所述生产环境的系统数据包括:生产环境 的系统运行性能数据、生产环境的系统部署数据和生产环境的系统配置数据中至少一个。3. 根据权利要求1所述的方法,其特征在于,所述测试环境的系统数据包括:测试环境 的系统运行性能数据、测试环境的系统部署数据和测试环境的系统配置数据中至少一个。4. 根据权利要求1至3中任一项所述的方法,其特征在于,从系统数据中提取特征向量 的方法包括: 对所述系统数据进行数据格式的标准化处理,所述系统数据为所述生产环境的系统数 据或者所述测试环境的系统数据; 对经过标准化处理的所述系统数据进行去噪处理; 利用降维算法,对经过去噪处理的所述系统数据进行降维处理,获得所述系统数据的 特征向量。5. 根据权利要求1所述的方法,其特征在于,对提取出的特征向量、生产环境的系统容 量数据、测试环境的系统容量数据和所述对应关系进行机器学习,以生成分类模型,包括: 根据从测试环境的系统数据中提取出的特征向量、从实际环境的系统数据中提取出的 特征向量、各系统容量数据,生成第一数据集和第二数据集; 获得未标定数据集和第一权重向量; 利用分类算法对所述第一数据集、所述第二数据集、所述未标定数据集和所述第一权 重向量进行机器学习,以生成分类模型; 利用所述分类模型在第二数据集上误差,并根据所述误差重新计算权重向量,以获得 第二权重向量; 利用所述第二权重向量重新生成分类模型,直到达到指定的迭代次数达时停止; 输出所述分类模型。6. -种系统容量的预估方法,其特征在于,所述方法包括: 采集测试环境的系统数据; 根据所述测试环境的系统数据,并利用分类模型,获得生产环境的系统容量级别;其 中,所述分类模型为利用权利要求1至5中任一项所述的分类模型的生成方法获得的。7. 根据权利要求6所述的方法,其特征在于,根据所述测试环境的系统数据,并利用分 类模型,获得生产环境的系统容量级别,包括; 对所述系统数据进行数据格式的标准化处理; 对经过标准化处理的所述系统数据进行去噪处理; 利用降维算法,对经过去噪处理的所述系统数据进行降维处理,获得所特征向量; 根据从所述系统数据提取出的特征向量,并利用分类模型,获得生产环境的系统容量 级别。8. -种分类模型的生成装置,其特征在于,所述装置包括: 数据采集模块,用于采集生产环境的系统数据和测试环境的系统数据; 特征提取模块,用于分别从所述生产环境的系统数据和所述测试环境的系统数据中提 取特征向量; 级别处理模块,用于生成系统容量与系统容量级别的对应关系; 模型生成模块,用于对提取出的特征向量、生产环境的系统容量数据、测试环境的系统 容量数据和所述对应关系进行机器学习,以生成分类模型。9. 根据权利要求8所述的装置,其特征在于,所述生产环境的系统数据包括:生产环境 的系统运行性能数据、生产环境的系统部署数据和生产环境的系统配置数据中至少一个。10. 根据权利要求8所述的装置,其特征在于,所述测试环境的系统数据包括:测试环境 的系统运行性能数据、测试环境的系统部署数据和测试环境的系统配置数据中至少一个。11. 根据权利要求8至10中任一项所述的装置,其特征在于,所述特征提取模块,具体用 于: 对所述系统数据进行数据格式的标准化处理,所述系统数据为所述生产环境的系统数 据或者所述测试环境的系统数据; 对经过标准化处理的所述系统数据进行去噪处理; 利用降维算法,对经过去噪处理的所述系统数据进行降维处理,获得所述系统数据的 特征向量。12. 根据权利要求8所述的装置,其特征在于,所述模型生成模块,具体用于: 根据从测试环境的系统数据中提取出的特征向量、从实际环境的系统数据中提取出的 特征向量、各系统容量数据,生成第一数据集和第二数据集; 获得未标定数据集和第一权重向量; 利用分类算法对所述第一数据集、所述第二数据集、所述未标定数据集和所述第一权 重向量进行机器学习,以生成分类模型; 利用所述分类模型在第二数据集上误差,并根据所述误差重新计算权重向量,以获得 第二权重向量; 利用所述第二权重向量重新生成分类模型,直到达到指定的迭代次数达时停止; 输出所述分类模型。13. -种系统容量的预估装置,其特征在于,所述装置包括: 数据采集模块,用于采集测试环境的系统数据; 容量预估模块,用于根据所述测试环境的系统数据,并利用分类模型,获得生产环境的 系统容量级别;其中,所述分类模型为利用权利要求8至12中任一项所述的分类模型的生成 装置获得的。14. 根据权利要求13所述的装置,其特征在于, 所述装置还包括:特征提取模块,用于对所述系统数据进行数据格式的标准化处理;以 及,对经过标准化处理的所述系统数据进行去噪处理;以及,利用降维算法,对经过去噪处 理的所述系统数据进行降维处理,获得所特征向量; 所述容量预估模块,具体用于:根据从所述系统数据提取出的特征向量,并利用分类模 型,获得生产环境的系统容量级别。
【专利摘要】本发明实施例提供了一种分类模型的生成方法及装置、系统容量的预估方法及装置。一方面,本发明实施例所提供的分类模型的生成方法中,通过采集生产环境的系统数据和测试环境的系统数据;然后,分别从所述生产环境的系统数据和所述测试环境的系统数据中提取特征向量;从而,生成系统容量与系统容量级别的对应关系;进而,对提取出的特征向量、生产环境的系统容量数据、测试环境的系统容量数据和所述对应关系进行机器学习,以生成分类模型。因此,本发明实施例提供的技术方案能够解决现有技术中对生产环境进行压力测试导致的故障风险较高、成本较大且效率较低的问题。
【IPC分类】G06K9/62
【公开号】CN105488539
【申请号】CN201510941147
【发明人】唐华溢, 彭耀明, 马梦成, 周建龙
【申请人】百度在线网络技术(北京)有限公司
【公开日】2016年4月13日
【申请日】2015年12月16日