发明内容
有鉴于此,本发明的目的在于提供一种云计算的扩容方法,该方法可以减小资源调度粒度,减少资源浪费。
为实现上述目的,本发明提供的技术方案为:
一种云计算的扩容方法,所述云计算的计算资源被分划到多个计算单元,每个计算单元的计算资源少于虚拟机占用的计算资源;该方法包括:
采样云计算所在云平台中每个应用在前N个时间点的计算资源使用率;
以时间为横坐标、计算资源使用率为纵坐标,计算由所述N个时间点和该应用在所述N个时间点的计算资源使用率构成的N个坐标点拟合的直线的斜率和截矩;
根据所述斜率和截距计算该应用在第N+1个时间点的计算资源使用率,如果该应用在第N+1时间点的计算资源使用率大于第一预设阈值,则根据所述第一预设阈值、该应用在第N+1个时间点的计算资源使用率确定需要扩容的计算单元数目;
根据需要扩容的计算单元数目对该应用进行扩容。
一种云计算的扩容装置,所述云计算的计算资源被分划到多个计算单元,每个计算单元的计算资源少于虚拟机占用的计算资源;该装置包括:采样单元、拟合单元、计算单元、扩容单元;
所述采样单元,用于采样所述云计算所在云平台中每个应用在前N个时间点的计算资源使用率;
所述拟合单元,用于以时间为横坐标、计算资源使用率为纵坐标,计算由所述N个时间点和该应用在所述N个时间点的计算资源使用率构成的N个坐标点拟合的直线的斜率和截矩;
所述计算单元,用于根据所述斜率和截距计算该应用在第N+1个时间点的计算资源使用率,如果该应用在第N+1时间点的计算资源使用率大于第一预设阈值,则根据所述第一预设阈值、该应用在第N+1个时间点的计算资源使用率确定需要扩容的计算单元数目;
所述扩容单元,用于根据需要扩容的计算单元数目对该应用进行扩容。
综上所述,本发明通过将云计算的计算资源分划到多个计算单元,并根据采样得到的某一应用在前N个时间点的计算资源使用率确定该应用在第N+1个时间点的计算资源使用率,当该应用在第N+1个时间点的计算资源使用率过高需要扩容时,以计算单元为基本扩容单位进行扩容。由于计算单元具有的计算资源较小,因而可以减小资源调度粒度,减少资源浪费。
具体实施方式
为使本发明的目的、技术方案及优点更加清楚明白,以下参照附图并举实施例,对本发明所述方案作进一步地详细说明。
本发明实施例中,为了减小资源调度粒度,减少资源浪费,将云计算的计算资源分划到多个计算单元,每个计算单元具有的计算资源少于虚拟机占用的计算资源(虚拟机占用的计算资源为:为虚拟机配置的用于虚拟机中所有应用的计算资源和虚拟机自身运行所需的计算资源的总和)。当运计算所在云平台上的某一应用需要扩容时,以计算单元为基本扩容单位进行扩容,相对于现有技术中的以虚拟机为基本扩容单位的亚马逊自动扩容技术相比,因计算单元的资源调用粒度较小,因而可以减少资源浪费。
上述计算单元具有的计算资源的多少可以预先设定,例如少于虚拟机自身运行需要占用的计算资源,当设定了一个计算单元具有的计算资源多少之后,就可以确定可以确定可以划分多少计算单元,例如,假设云计算的计算资源为10,每个计算单元具有的计算资源设定为2,则可以将云计算的计算资源分划到5个计算单元中(计算单元个数=云计算的计算资源/每个计算单元具有的计算资源)。
参见图1,图1是本发明实施例云计算的扩容方法流程图,其中,云计算的计算资源被分划到多个计算单元,每个计算单元具有的计算资源少于虚拟机的计算资源,如图1所示,该方法主要包括以下步骤:
步骤101、采样云计算所在云平台中每个应用在前N个时间点的计算资源使用率。
每隔一段预设时间对该应用的计算资源使用率采样一次,最终可以得到该应用在第1个时间点、第2个时间点、......、以及第N个时间点的计算资源使用率。
步骤102、以时间为横坐标、计算资源使用率为纵坐标,计算由所述N个时间点和该应用在所述N个时间点的计算资源使用率构成的N个坐标点拟合的直线的斜率和截矩。
本实施例中,当以时间为横坐标、计算资源使用率为纵坐标时,可以根据采样到的该应用在前N个时间点的计算资源使用率,得到(T1,C1)、(T2,C2)、......、(Ti,Ci)、……、(TN,CN)共N个坐标点,其中,Ti表示前N个时间点中的第i个时间点,Ci表示该应用在时间点Ti的计算资源使用率。
采样得到该应用在前N个时间点的计算资源使用率后,为了预测该第N+1个时间的计算资源使用率,可以根据上述N个坐标点拟合出一条直线,并计算该直线的斜率和截距,依据该直线的斜率和截距预测该应用在第N+1个时间点的计算资源使用率。
其中,计算由前N个时间点和该应用在前N个时间点的计算资源使用率构成的N个坐标点拟合的直线的斜率和截矩的方法如下:
先计算出前N个时间点的平均值Tavg,以及该应用在前N个时间点的计算资源使用率的平均值Cavg;
然后采用以下公式计算所述斜率k:
其中,i=1、2、......、N;
最后采用以下公式计算所述截距b:
b=Cavg-k×Tavg。
步骤103、根据所述斜率和截距计算该应用在第N+1个时间点的计算资源使用率,如果该应用在第N+1时间点的计算资源使用率大于第一预设阈值,则根据所述第一预设阈值、该应用在第N个时间点及第N+1个时间点的计算资源使用率确定需要扩容的计算单元数目。
计算由前N个时间点和该应用在前N个时间点的计算资源使用率构成的N个坐标点拟合的直线的斜率和截矩后,可以根据所述斜率和截距计算该应用在第N+1个时间点的计算资源使用率,具体方法为采用以下公式:
CN+1=k×TN+1+b,其中,TN+1表示第N+1个时间点,CN+1表示该应用在第N+1个时间点的计算资源使用率,k为步骤102中所述直线的斜率,b为步骤102中所述直线的截距。
在实际应用中,当该应用的计算资源使用率过高时,才需要进行扩容,为此,可以预先设定一个阈值(假设为第一预设阈值Co),则只有到第N+1个时间点的计算资源使用率高于该第一预设阈值时,才需要计算需要扩容的计算单元数目。
可以根据所述第一预设阈值、该应用在第N个时间点及第N+1个时间点的计算资源使用率确定需要扩容的计算单元数目,具体方法为采用以下公式:
其中,U为需要扩容的计算单元数目;Cb为第二预设阈值,表示该应用的最佳计算资源使用率,可以根据经验预先设定;Num表示该应用当前已占用的计算单元数目。
步骤104、根据需要扩容的计算单元数目对该应用进行扩容。
当计算出该应用需要扩容的计算单元数目后,就可以根据计算出的计算单元数据执行对该应用的扩容,使得该应用能够正常运行。
图1所示本发明实施例中,所述计算资源为:CPU、和/或存储资源。
以上对本发明实施例云计算的扩容方法进行了详细说明,本发明还提供了一种云计算的扩容装置,下面结合图2进行说明。
参见图2,图2是本发明实施例云计算的扩容装置的结构示意图,其中,所述云计算的计算资源被分划到多个计算单元,每个计算单元具有的计算资源少于虚拟机的计算资源;如图2所示,该装置包括:采样单元201、拟合单元202、计算单元203、扩容单元204;其中,
采样单元201,用于采样所述云计算所在云平台中每个应用在前N个时间点的计算资源使用率;
拟合单元202,用于以时间为横坐标、计算资源使用率为纵坐标,计算由所述N个时间点和该应用在所述N个时间点的计算资源使用率构成的N个坐标点拟合的直线的斜率和截矩;
计算单元203,用于根据所述斜率和截距计算该应用在第N+1个时间点的计算资源使用率,如果该应用在第N+1时间点的计算资源使用率大于第一预设阈值,则根据所述第一预设阈值、该应用在第N+1个时间点的计算资源使用率确定需要扩容的计算单元数目;
扩容单元204,用于根据需要扩容的计算单元数目对该应用进行扩容。
图2所示装置中,所述拟合单元202在计算由所述N个时间点和该应用在所述N个时间点的计算资源使用率构成的N个坐标点拟合的直线的斜率和截距时,用于:
计算所述N个时间点的平均值Tavg,以及该应用在所述N个时间点的计算资源使用率的平均值Cavg;
采用以下公式计算所述斜率k:
其中,i=1、2、......、N,Ti表示第i个时间点的计算资源使用率;Ci表示该应用在第i个时间点的计算资源使用率;
采用以下公式计算所述截距b:
b=Cavg-k×Tavg。
图2所示装置中,所述计算单元203在根据所述斜率和截距计算该应用在第N+1个时间点的计算资源使用率CN+1时,采用以下公式计算:
CN+1=k×TN+1+b。
图2所示装置中,所述计算单元203在根据所述第一预设阈值、该应用在第N+1个时间点的计算资源使用率确定需要扩容的计算单元数目U时,采用以下公式计算:
其中,Cb为第二预设阈值,Cb小于第一预设阈值;Num为该应用当前占用的计算单元数目。
图2所示装置中,所述计算资源为:CPU、和/或存储资源。
以上所述,仅为本发明的较佳实施例而已,并非用于限定本发明的保护范围。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。