气象集约化资源池计算资源容量估计方法研究
2016-10-24梁中军何文春韩同欣
梁中军,何文春,韩同欣,曾 乐
(国家气象信息中心 系统工程室,北京 100081)
工程与应用
气象集约化资源池计算资源容量估计方法研究
梁中军*,何文春,韩同欣,曾乐
(国家气象信息中心 系统工程室,北京100081)
精确估计计算资源的规模是气象集约化资源池合理设计的关键,但是由于应用对计算资源需求可能突发增长,应用部署方案种类繁多等因素的存在,致使计算资源规模估计困难。为解决该问题,本文对计算资源容量规划问题进行建模,并在分析问题求解难度的基础上,根据问题的特点设计了一种基于离散差分进化算法的计算容量估计方法。在问题建模上,本文采用资源预留策略来保证应用能获取足够的计算资源。在方法设计上,方法首先建立了应用的部署顺序与计算资源容量规模的映射关系,并以所需参考服务器的规模和资源利用水平来综合评估应用部署顺序的适应度;然后,通过随机方式生成初始方案,并以适应度为评价标准,利用变异、交叉、局部搜索等操作改变应用的部署顺序;最后,通过迭代搜索估计计算资源所需的规模。实验结果表明该方法能有效估计计算资源容量的规模。
气象集约化资源池;离散差分进化算法;容量规划;计算资源容量估计;NP完全问题
0 引 言
随着信息技术的不断发展,云计算技术[1]已成为各企事业单位提升部门信息化水平的重要技术。目前,气象部门正在利用云计算技术来构建气象集约化资源池,以提高基础设施资源的利用水平,实现资源的集约化管理。在集约化资源池的设计过程中,合理进行容量规划是有效利用基础设施资源的关键。
在容量规划时,气象集约化资源池的计算资源容量规模不仅要满足多个气象业务系统的需求,还要尽量避免资源浪费。然而,由于应用对计算资源需求可能突发增长,应用部署方案种类繁多等因素的存在,气象集约化资源池计算容量估计面临下列挑战。
(1)气象集约化资源池所需的计算容量应该满足气象业务系统对计算资源的需求,以保证业务稳定运行。由于气象应用系统的运行状态具有一定不确定性(例如:系统处理的气象数据规模量突发增加,并发访问突然增大等情况),所以应用对计算资源的需求可能会发生突发增长的情况。这可能会导致计算资源使用率过高,从而影响业务的运行。如何在不确定的条件下对计算容量进行合理估计是一个挑战。
(2)在气象集约化资源池中,各个气象业务系统主要由虚拟机来承载,承载应用组件的虚拟机的部署方案(简称为应用组件的部署方案)与参考服务器的配置共同决定了资源的利用水平,以及资源池的计算能力是否能满足业务的需要。由于部署方案是根据虚拟机和物理服务器的组合来确定,所以其种类较多,计算资源容量估计困难。经本文证明该问题是一个NP完全问题,计算容量规划问题求解难度较大。
(3)虽然已有学者提出一些虚拟机部署算法[2-6]或调度算法[7-10]用于计算虚拟机的放置方案,但是这些算法没有考虑应用对资源需求突发增长的情况,难以被直接用于估算气象集约化资源池中计算资源的容量。与虚拟机调度问题和虚拟机部署问题不同,虚拟机部署或调度问题的已知条件是物理服务器的信息是确定的,而求解本问题需要在多个参考物理服务器中选择合适的型号,并估计所需物理服务器的数量。
为解决上述问题,本文对计算资源容量规划问题进行建模,并在分析问题求解难度的基础上,根据问题的特点设计了一种基于离散差分进化算法的计算容量估计方法。在问题建模上,本文采用资源预留策略来应对系统对计算资源的需求可能会突发增长的情况,保证应用能获取足够的计算资源。在方法设计上,方法首先建立了应用部署顺序与计算资源容量规模的映射关系,并根据所需参考服务器的规模和资源利用水平来综合评估应用部署顺序的适应度;然后,通过随机方式生成初始方案,并以适应度为评价标准,利用变异、交叉、局部搜索等操作改变应用的部署顺序;最后,通过迭代搜索估计计算资源所需的规模。实验结果表明本方法能有效估计计算资源的规模。
1 气象集约化资源池设计
气象集约化资源池的设计目的就是根据气象信息化的发展要求,满足业务系统发展、业务迁移整合对基础设施资源的需要,实现基础设施资源的集约化管理。气象集约化资源池主要包含计算、存储和网络三类资源。 设计步骤主要包括:系统需求调研、资源池硬件软件选型和容量规划,具体描述如下。
(1)系统需求调研就是要对气象集约化资源池承载的应用系统的需求进行调研,收集整理内容包括业务系统的硬件资源现状和其未来的新增需求,具体信息包括:CPU、内存、存储和网络。
(2)资源池硬件软件选型就是按照气象集约化资源池对硬件和软件的技术指标,平衡价格、产品稳定及易用性等因素初步选择参考软硬件的型号。其中,在服务器的初步选择上优先选择整体容量大、可扩展性强的物理服务器,存储需要满足业务系统的存储容量需求及I/O带宽的需求,网络要满足应用及管理的性能要求,虚拟化软件要满足对硬件支持的技术指标。通过上述选型步骤可获得若干个参考服务器,它们将在容量规划阶段进一步被选择。
(3)容量规划就是在调研选型的基础上对硬件资源的规模进行估计,规划内容主要是气象集约化资源池的计算资源与存储资源。其中,计算资源的容量是所有物理服务器的CPU和内存的总和,存储的总容量是所有存储容量的总和。
2 计算资源容量规划问题描述
本文重点关注设计过程中的容量规划步骤,主要研究计算容量规划问题。在估计计算资源的容量时,通常需要考虑以下因素。
①气象集约化资源池主要承载各类气象业务应用,为此,容量规划需要确保气象业务系统拥有足够的计算能力,以保证业务能够稳定运行。
②气象集约化资源池的建设目的就是要提高资源的利用水平,为此,容量规划要考虑气象业务应用部署在资源池后的资源利用率达到一定水平。
③在气象集约化资源池中,气象业务系统主要由虚拟机来承载,承载应用组件的虚拟机的部署方案(简称为应用组件的部署方案)和参考服务器的配置共同决定了资源的利用水平和资源池的计算能力是否能满足业务的需要。为此,容量规划时需要综合考虑承载气象业务应用虚拟机的部署与参考服务器的选择。
④考虑到部分业务应用的计算需求可能会突发增长,计算资源使用率过高将影响性能等因素的存在,容量规划要考虑预留一定的计算能力来保证承载业务运行稳定性。
根据上述因素,气象集约化资源池的计算资源容量规划问题的描述如下。
计算资源容量规划问题:已知气象业务应用系统的计算能力需求(即:业务系统应用组件对虚拟机的计算能力需求)和k种待选的参考服务器信息(包括服务器提供的计算能力信息),假设每个应用组件在集约化资源池只部署一次,计算资源容量规划问题就是根据每个业务应用对虚拟机配置需求,估算至少需要几台物理服务器才能满足所有应用的需求,同时保证每台物理机预留足够资源保证业务稳定运行,并使得资源利用率达到某一水平。
为求解上述问题,本文对计算资源容量规划问题进行建模,并利用下列数学符号来表示模型中的物理含义。
根据上述数学符号表达,计算资源容量规划问题可被表示成如下模型:
计算资源容量规划问题的目标:
其中,M(Hk)是第k类参考服务器的最小规模,其取值由应用部署所需物理服务器的个数决定,具体由公式(1)计算。
(1)
在公式(1)中,wh表示第k类参考服务器h是否有部署应用,若部署则其值为1,否则为0,具体表
表1 问题建模的数学符号及物理意义
达如公式(2)所示。
(2)
资源能力约束:在应用组件部署后,参考服务器仍具有一定的资源能力来保证应用稳定运行。即:
(3)
(4)
其中,j∈[1,k],dih是应用组件与第j类参考服务器h的放置关系。
资源利用水平约束:气象集约化资源池的资源利用率要达到一定水平。即:
(5)
(6)
部署约束条件:每个应用组件只能部署在一台服务器上,且只能部署一次。即:
(7)
通过以上描述可以看出,计算容量规划问题等价于在不同参考服务器下寻找一种应用放置策略,使得参考服务器的数目最小。
3 问题分析
为求解上述问题,本节对问题的求解难度进行分析,通过理论证明该问题是NP完全问题,因此无法在多项式时间内进行求解,具体证明见定理1。
定理1:计算容量规划问题是NP完全问题。
证明:假设计算容量规划问题可以在多项式时间内完成求解。根据文献[11]可知装箱问题是一个NP完全问题,该问题就是要寻求一种放置方式将n个物品放入若干个容量大小为C的箱子,使得箱子的占用数最少。
考虑本问题的特殊场景:有n个应用组件需要部署,且当前只有一种参考服务器,其计算能力为C;资源池的利用水平约束为零,估算至少需要几台物理服务器才能满足需求。上述特殊情况的问题的求解等价于求解装箱问题。
由于装箱问题无法在多项式时间内完成求解,所以本问题的特殊场景也无法在同样的时间内完成求解。因此,该结论与上述假设条件矛盾,假设条件不成立,即证明计算容量规划问题无法在多项式时间内完成求解,该问题是NP完全问题。
由于本问题属于NP完全问题,所以难以设计精确的算法来对问题进行求解。为此,结合问题的特点,本文设计下列近似算法来估计计算资源的容量。
4 基于离散差分进化算法的计算容量估计方法
由于计算资源容量规划问题无法在多项式时间内精确求解,所以本文设计了一种基于离散差分进化算法的计算容量估计方法(A Differential Evolution Algorithm For Estimating The Computing Resource Scale,简称为DEAECRS)。该方法的基本思想是根据应用组件的部署方案来计算参考服务器的规模,通过离散差分进化算法动态改变应用组件的部署方案,从而迭代搜索参考服务器的最小规模。其中,应用组件在参考服务器上的部署方案按照依次部署的方式生成,离散差分进化算法利用变异、交叉和局部搜索等步骤来改变应用组件的顺序,从而生成不同的部署方案。
4.1部署方案的生成与容量规模计算
在气象集约化资源池中,计算资源所需的规模是由应用组件的部署方案和搭建资源池的服务器的配置所共同决定。为了评估其规模,本文首先生成应用组件的部署方案,然后,根据方案估计其所需服务器的数量。为保证部署方案满足资源能力约束条件,每类参考服务器上的部署方案将采用顺序部署的方式生成。假设已知应用组件的部署顺序为P,则其在第j类参考服务器的部署方案可通过下列步骤获得:
步骤1:对于当前待部署应用组件i而言,首先需要判断应用组件i是否为第一个待部署的应用,或者当前已部署应用组件的物理服务器中是否有服务器满足公式(3)和公式(4)的要求,若其是第一个待部署的应用或不满足公式(3)和公式(4)的要求,则方案需要新增物理服务器来对应用组件i进行部署,否则执行步骤2。
步骤2:采用贪婪策略从满足资源能力约束的服务器中选择综合资源利用率最高的物理服务器进行部署。即,首先根据公式(8)评估每一个备选物理服务器在部署应用组件i后的资源综合利用率U(Ai,Sj),然后,选择综合利用率最高的物理服务器对应用组件i进行部署。
(8)
(9)
在公式(9)中,uc,um分别是资源池在建设时CPU和内存预计达到的利用水平。
于是基于固定的部署顺序,针对不同类参考服务器,采用上述步骤分别可获得各类参考服务器所需的数量。
由于资源池建设需要满足资源利用水平约束,所以并非所有的顺序都能满足问题的约束要求。为此,本文利用离散差分进化算法通过改变应用的部署顺序来迭代估计计算资源的规模。
4.2问题映射
通过分析上述计算资源容量规模估计算法可以看出,输入不同的部署顺序将会获得不同部署方案,继而获得不同的计算资源规模。为此,本文通过改变应用的部署顺序来迭代搜索计算资源所需的最小规模。于是根据上述思想,本问题采用排列的方式来表示应用组件的部署顺序,于是计算资源规模估计问题将被映射成根据n个应用组件的部署排列求解参考服务器的最小规模问题。其中,部署排列表示为P={p1,p2,...,pn},{p1,p2,...,pn}是应用1至n的一个排列。
4.3适应度函数
为指导算法有效估计计算资源的规模,本文采用适应度函数公式(10)来评估每一种部署顺序的优劣。部署顺序获得的适应度取值是由每类参考服务器的数量以及方案满足资源利用水平约束的情况所共同确定。
(10)
在公式(10)中,f(P,Sj)是部署顺序P在第j类参考服务器上部署获得的适应度,其取值分两种情况来计算,当应用按照部署顺序P在第j类参考服务器上部署后满足资源利用水平约束时,f(P,Sj)的取值为物理服务器数量的倒数,当其不满足资源利用水平约束时,f(P,Sj)的取值为惩罚函数PF(P,Sj),具体描述如公式(11)所示。
(11)
在公式(11)中,W(P,Sj)是应用按照部署顺序P采用4.1节中的部署方法,在第j类参考服务器上部署所需物理服务器的数量,惩罚函数PF(P,Sj)的取值分三种情况(即,仅满足内存利用水平约束、仅满足CPU利用水平约束和都不满足)计算。
①当部署方案仅满足内存利用水平时,惩罚函数PF(P,Sj)的取值可由公式(12)计算获得。
(12)
② 当部署方案仅满足CPU利用水平时,惩罚函数PF(P,Sj)的取值由公式(13)计算获得
(13)
③当部署方案对资源利用水平约束都不满足时,惩罚函数PF(P,Sj)的取值由公式(14)计算获得。
(14)
在公式(12)-(14)中,θ是内存利用率的重要程度,Um(P,Sj)和Uc(P,Sj)分别是应用按照顺序P在第j类参考服务器部署后的内存利用水平以及CPU利用水平,其取值可由公式(15)和公式(16)计算。
(15)
(16)
4.4部署顺序的变更
为有效求解计算容量规划问题,本文借鉴文献[12]中的操作步骤来改变应用的部署顺序,以此来迭代搜索参考服务器所需的最小规模。这些操作包括:变异操作、交叉操作和局部搜索,具体描述如下所示。
变异操作:根据其他两种应用部署顺序的差异,改变当前方案的部署顺序。具体步骤就是首先计算其他两种部署顺序的差异(即,每个应用在不同部署顺序中的位置偏移),然后根据差异改变当前部署顺序生成新的方案。假设当前部署顺序为P1,其他两种部署顺序为P2和P3,则当前的部署顺序P1可以通过P1⊕(P2⊗P3)而改变。其中,⊗操作可用于计算顺序之间的差异,⊕操作可根据部署顺序之间的差异信息将应用的部署顺序转换成新的排列。例如:应用的三个部署顺序分别为P1=(4,3,2,1,5),P2=(1,2,3,4,5),P3=(2,1,4,3,5),则对于应用组件1而言,它在P2中是第1个部署,在P3中是第2个部署,部署顺序的差异为1,于是在本例子中,部署顺序P2与P3的差异为P2⊗P3={1,-1,1,-1,0},P1的新部署顺序为(3,4,1,2,5)。
交叉操作:根据两个应用部署的顺序的信息交叉生成四个新的部署顺序。具体步骤就是首先选择交叉操作的位置,然后,将一个方案的部署顺序的片段复制到新方案中,并从另一方案中选择不重复的应用依次复制到新方案空缺的位置里。其中,交叉操作的位置采用随机生成,它将方案划分成2个部分,复制部分和填充部分。例如:应用的部署顺序为P4=(1,2,3,4,5)和P5=(5,1,3,2,4),交叉位置为第2个位置和第4个位置,则从P4中复制由P5中填充交叉生成的新部署顺序为P6=(5,2,3,4,1)和P7=(1,3,2,4,5),从P5中复制由P4中填充交叉生成的新部署顺序为P8=(4,1,3,2,5)和P9=(5,1,2,3,4)。其中,在新生成的部署顺序中,下划线部分为复制部分,其他为填充部分。
局部搜索操作:局部搜索就是按照一定概率采用删除再插入的方式对方案的部署顺序进行优化。具体步骤是按照一定概率β从方案中依次删除一个应用,重新分配其部署的顺序,并选择适应度值最高的部署顺序作为下次迭代搜索的初始顺序。
4.5算法描述
根据上述操作,基于离散差分进化算法的计算容量估计方法可通过下列步骤获得参考服务器的最小规模。
步骤1:初始信息设置。首先,设置离散差分进化算法的种群规模、最大迭代次数、局部搜索执行的概率,参考服务器的CPU与内存信息,应用对CPU和内存的需求,资源利用率(即:CPU利用率,内存的利用率)的期望水平,然后,按照种群规模随机生成若干组部署顺序,按照公式(10)来计算部署顺序的适应度,形成部署顺序种群,并找出种群中的最优部署顺序。
步骤2:对种群中每种部署顺序进行变异操作生成新的部署顺序。具体操作就是从种群中选择其他两种部署顺序,根据其差异改变当前方案的部署顺序,并评估其适应度。
步骤3:对种群中的每种部署顺序及其变异个体进行交叉操作生成四个新的部署顺序,计算新顺序的适应度,从中选择适应度最高的新部署顺序进行下一步操作。
步骤4:按照局部搜索概率对交叉生成且适应度最高的新部署顺序进行局部搜索。当执行局部搜索时,依次删除该顺序中一个应用,并重新分配其部署的顺序,计算其适应度,选择适应度最高的顺序作为该类部署顺序的变更方案;否则将步骤3中适应度最高的部署顺序作为变更方案执行步骤5。
步骤5:分析种群中每类部署顺序的变更方案和原部署顺序的适应度大小,若变更方案的适应度更高,则用变更顺序替代原部署顺序进行下一次迭代。
步骤6:更新种群中的最优个体,并判断算法是否满足终止条件,若满足则输出所需参考服务器的最小规模。否则,转步骤2继续执行。
5 实验分析
为了分析本文所提方法的有效性,实验以资源池所选参考服务器的数量、资源池的计算资源利用水平为综合评价指标,对比下列算法来分析方法的估计效果。
基于最佳适应算法的计算资源容量估计(ABestFitAlgorithmForEstimatingTheComputingResourceScale,简称为BFECRS):该方法针对每类参考服务器,首先,按顺序依次部署各个应用生成部署方案,然后,根据部署方案估计所需参考服务器的数量,并选择数量最少的参考服务器数量作为本问题的解。在部署方案生成上,算法针对每类参考服务器来分别部署,优先把应用部署在已经被使用的物理服务器上,只有当已使用物理服务器无法满足应用需求时,才新增物理服务器。当有多个物理服务器可以部署时,算法将首先评估每个候选物理服务器在部署应用后的综合资源利用率,然后,选择其值最高的物理服务器进行部署。
基于最坏适应算法的计算资源容量估计(AWorstFitAlgorithmForEstimatingTheComputingResourceScale,简称为WFECRS):该算法的评估步骤与BFECRS的步骤相同,唯一的区别在于当有多个物理服务器可以部署时,算法将首先评估每个候选物理服务器在部署应用后的综合资源利用率,然后,选择其值最低的物理服务器进行部署。
在实验中,四组应用集合对计算资源的需求采用随机模拟生成,需求内容包括CPU的核数与内存的大小。承载四组应用集合所需虚拟机的规模分别为30,50,70,90,参考服务器的型号为搭建资源池的四种主流配置,其CPU和内存的能力情况如下表所示,每类参考服务器的CPU和内存的资源预留比例均为5%,资源池建设预计达到的CPU利用水平和内存利用水平均为50%。
表2 实验中参考服务器的配置
为满足上述四组应用集合对计算资源的需求,本文利用WFECRS算法、BFECRS算法和DEAECRS算法来分别估计资源池中计算资源的规模,具体结果如图1所示。
图1 三种算法估计计算资源的规模
从图1中可以看出,DEAECRS算法估计的计算资源的规模在四组应用中均为最小。WFECRS算法估计的计算资源规模略高于BFECRS算法所估计的规模。
为了全面分析算法的效果,本文根据WFECRS算法、BFECRS算法和DEAECRS算法所选择的参考服务器类型和其规模来分别计算资源池中CPU的利用水平和内存的利用水平。具体如图2、图3所示。
图2 不同算法构建资源池的CPU利用率
图3 不同算法构建资源池的内存利用率
从图2和图3可以看出上述三种算法均可以达到资源池建设的资源利用水平要求。其中,利用DEAECRS算法构建的资源池在CPU利用率和内存利用率上均高于WFECRS算法和BFECRS算法的结果。
综上所述,本文所提的DEAECRS算法能够有效求解计算资源容量规划问题。
6 结 语
本文主要解决气象集约化资源池的计算资源容量规划问题。在问题建模和理论分析的基础上,提出了一种基于离散差分进化算法的计算容量估计方法,并通过实验对比证明该方法能够有效估计计算资源的规模。虽然,本文给出了计算资源容量的估计方法,但是在容量规划时还要考虑存储资源的规划问题。为此,下一步的研究,将根据气象应用对存储的I/O要求和应用数据的规模,着重解决存储的容量规划问题。
[1]王栋, 芮平亮. 云雾环绕的数据中心全景剖析[J]. 中国电子科学研究院学报, 2011, 06(3):324-327.
[2]LI, B, et al. EnaCloud: An Energy-Saving Application Live Placement Approach for Cloud Computing Environments[C]. //Proceedings of the 2009 IEEE International Conference on Cloud Computing IEEE Computer Society, 2009:17-24.
[3]刘志飘, 王尚广, 孙其博,等. 一种能量感知的虚拟机放置智能优化算法[J]. 华中科技大学学报:自然科学版, 2012(S1):398-402.
[4]李强, 郝沁汾, 肖利民,等. 云计算中虚拟机放置的自适应管理与多目标优化[J]. 计算机学报, 2011,34(12):2253-2264.
[5]杨靖, 张宏军, 赵水宁,等. 基于粒子群优化算法的虚拟机部署策略[J]. 计算机应用, 2016, 36(1):117-121.
[6]张笑燕, 王敏讷, 杜晓峰. 云计算虚拟机部署方案的研究[J]. 通信学报, 2015(3):241-248.
[7]SUN, X, et al. Multi-dimensional Resource Integrated Scheduling in a Shared Data Center[C]. //Distributed Computing Systems Workshops (ICDCSW), 2011 31st International Conference on IEEE, 2011:7-13.
[8]MENG, X, et al. Efficient resource provisioning in compute clouds via VM multiplexing[C]. //Proceedings of the 7th International Conference on Autonomic Computing, 2010:11-20.
[9]肖鹏, 刘洞波, 屈喜龙. 云计算中基于能耗比例模型的虚拟机调度算法[J]. 电子学报, 2015(2):305-311.[10]袁爱平, 万灿军. 云环境下基于改进遗传算法的虚拟机调度策略[J]. 计算机应用, 2014, 34(2):357-359.
[11]GAREY M R, JOHNSON D S. Computers and Intractability: A Guide to the Theory of NP-Completeness[M]. New York: W. H. Freeman and Company, 1979:221-226.
[12]董明刚. 基于差分进化的优化算法及应用研究[D]. 浙江大学, 2012:13-20.
梁中军(1983—),男,新疆人,博士,主要研究方向为云计算与大数据;E-mail:liangzj@cma.gov.cn
何文春(1982—)男,湖北人, 高级工程师,主要研究方向为云计算和气象数据存储;
韩同欣(1982—),男,山东人,高级工程师,主要研究方向为云计算;
曾乐(1977—),女,湖南人,高级工程师,博士,主要研究方向为云计算和分布式数据处理。
Research on Computing Resource Scale Estimating Method for Intensive Meteorological Resource Pool
LIANG Zhong-jun*, HE Wen-chun, HAN Tong-xing, ZENG Le
(Engineering system Division, National Meteorological Information Center, Beijing 100081, China)
Estimating the scale of computing resource accurately is crucial for designing the intensive meteorological resource pool. However,it is difficult to estimate the scale, due to the growth of emergency demand for computing resource and a large number of schemes for deploying the meteorological application in different servers. In this paper, a model was built to describe the problem of estimating the scale of computing resource, and a differential evolution algorithm for estimating the computing resource scale was proposed to solve it by analyzing the difficulty of problem solving. To ensure the application of sufficient resources, reserving computing resource strategy was used in this model. To solve the problem,this algorithm firstly built a mapping relationship between application deployment order and computing resource scale, and a fitness function was proposed to evaluate the application deployment order by taking account of the number of servers and the resource utilization. Then, the initial application deployment orders were generated randomly, and they changed by mutation operation, crossover operation and local search operation according to their fitness. At last, the scale of computing resource was estimated after the iterative search. The experiment result shows that this algorithm can estimate the computing resource scale effectively.
Intensive Meteorological Resource Pool; Differential Evolution; Capacity Planning; estimating the computing resource scale; NP-complete problem
10.3969/j.issn.1673-5692.2016.04.017
2016-06-26
2016-07-28
TP393
A
1673-5692(2016)04-429-08