本发明实施例涉及计算机技术领域,尤其涉及一种带宽平滑方法及装置。
背景技术:
cdn(contentdeliverynetwork,内容分发网络)是一种在服务提供方和消费方之间,通过架设节点或者服务器,让用户就近获取所需的内容,从而达到缓解网络拥塞,提高用户访问网站响应速度的目的。在cdn网络服务过程中,调度系统需要根据节点/节点组的实时带宽情况,决定是否引入其他节点/节点组的带宽或者将节点/节点组的带宽过载出去,从而达到精准控制节点/节点组的负载情况,实现保障高质量服务的目的。但是节点/节点组下机器负载或者传输网络本身的波动性,导致从节点/节点组采集到的带宽数据存在不平稳的现象,因此调度系统需要对带宽进行平滑后才能使用。
目前,不论节点/组带宽是否平稳,一律进行平滑,这样容易造成较大的延迟,导致调度系统需要延后数分钟后才能获取到近似的带宽。
技术实现要素:
针对全局平滑带来的带宽延迟的问题,本申请实施例提供了一种带宽平滑方法及装置。
一方面,本申请实施例提供了一种带宽平滑方法,该方法包括:
获取资源设备在第一时间窗内的带宽数据,所述第一时间窗是基于第一时刻确定的时段;
根据所述第一时间窗内的带宽数据,确定所述第一时刻的带宽波动增益;
根据所述第一时刻的带宽波动增益和第二时刻的带宽波动值确定所述第一时刻的带宽波动值,所述第二时刻为所述第一时刻之前的时刻;
在确定所述第一时刻的带宽波动值大于预设阈值时,对所述资源设备在第一时刻的带宽数据进行平滑处理,并将平滑处理后的所述第一时刻的带宽数据发送给调度系统。
由于先对第一时刻的带宽数据进行波动性检测,在确定第一时刻的带宽波动值大于预设阈值时,对第一时刻的带宽数据进行平滑处理,而不是对每个时刻的带宽数据均进行平滑处理,从而避免全局平滑带来的带宽延迟。
可选地,所述根据所述第一时间窗内的带宽数据,确定所述第一时刻的带宽波动增益,包括:
根据所述第一时间窗内的带宽数据,确定所述第一时间窗内的带宽峰值以及所述第一时间窗内的带宽差分值;
根据所述第一时间窗内的带宽峰值和所述第一时间窗内的带宽差分值确定所述第一时刻的带宽波动率;
根据所述第一时刻的带宽波动率确定所述第一时刻的带宽波动增益。
采用带宽峰值和带宽差分值确定带宽波动率,然后基于带宽波动率确定带宽波动增益,既考虑了带宽峰值,也考虑带宽波动,这样不仅能识别出正常情况下节点/组带宽的波动情况,而且能够对调度系统关注的突增/突降情况进行判断,避免由于丢失突增/突降信息带来的误调或错调问题。
可选地,所述第一时间窗内的带宽数据包括在所述第一时间窗内的各个采集时刻采集的带宽值;
所述根据所述第一时间窗内的带宽数据,确定所述第一时间窗内的带宽峰值以及所述第一时间窗内的带宽差分值,包括:
将在所述第一时间窗内的各个采集时刻采集的带宽值中,最大的带宽值作为带宽峰值;
确定所述第一时间窗内的相邻采集时刻的带宽值的一阶差分值。
可选地,所述根据所述第一时间窗内的带宽峰值和所述第一时间窗内的带宽差分值确定所述第一时刻的带宽波动率,包括:
从所述第一时间窗内的带宽差分值划分为正带宽差分值和负带宽差分值;
从各个正带宽差分值中确定出最大正带宽差分值;
将各个负带宽差分值取绝对值后,从各个负带宽差分值中确定最大负带宽差分值;
将所述第一时间窗内的带宽差分值求和,获得带宽差分和;
根据所述带宽峰值、所述最大正带宽差分值、所述最大负带宽差分值以及所述带宽差分和确定所述第一时刻的带宽波动率。
可选地,所述根据所述第一时刻的带宽波动增益和第二时刻的带宽波动值确定所述第一时刻的带宽波动值,包括:
将所述第一时刻的带宽波动增益和第二时刻的带宽波动值求和,获得所述第一时刻的原始带宽波动值;
将所述第一时刻的原始带宽波动值进行归一化处理,获得所述第一时刻的带宽波动值。
基于已有的第二时刻的带宽波动值确定第一时刻的带宽波动值,从而减少了计算量和资源消耗,能够很好的满足生产环境对于检测实时性的需求。
可选地,所述对所述资源设备在第一时刻的带宽数据进行平滑处理,并将平滑处理后的所述第一时刻的带宽数据发送给调度系统,包括:
根据所述第一时刻的带宽数据以及平滑处理后的所述第二时刻的带宽数据,确定所述第一时刻的初始平滑带宽数据;
采用带宽补偿值对所述第一时刻的初始平滑带宽数据进行补偿,将补偿后的所述第一时刻的初始平滑带宽数据发送给调度系统。
采用带宽补偿方式对波动性大的带宽数据进行平滑处理,能够有效避免平滑初期带来的带宽失真问题,同时可以向调度系统发送平滑的带宽数据,使得调度系统可以准确获知资源设备的负载情况,从而提高资源调度的准确性,提升客户的体验。
可选地,还包括:
在确定所述第一时刻的带宽波动值不大于预设阈值时,将所述资源设备在第一时刻的带宽数据发送给调度系统。
可选地,当所述第二时刻为带宽平滑的初始时刻时,采用以下方式确定所述第二时刻的带宽波动值:
获取所述资源设备在所述第二时刻对应的第二时间窗内的带宽数据;
根据所述第二时间窗内的带宽数据确定所述第二时间窗内的带宽差分值和带宽均值;
根据所述第二时间窗内的带宽差分值和带宽均值确定所述第二时刻的带宽波动值。
以初始时刻对应的历史带宽数据确定带宽差分值和带宽均值,之后再基于带宽差分值和带宽均值确定初始带宽波动值,为后续基于滑动时间窗口进行带宽波动性检测提供了初始波动值参考,从而提高后续带宽波动检测的准确性。
一方面,本申请实施例提供了一种带宽平滑装置,该装置包括:
获取模块,用于获取资源设备在第一时间窗内的带宽数据,所述第一时间窗是基于第一时刻确定的时段;
处理模块,用于根据所述第一时间窗内的带宽数据,确定所述第一时刻的带宽波动增益;
波动检测模块,用于根据所述第一时刻的带宽波动增益和第二时刻的带宽波动值确定所述第一时刻的带宽波动值,所述第二时刻为所述第一时刻之前的时刻;
平滑模块,用于在确定所述第一时刻的带宽波动值大于预设阈值时,对所述资源设备在第一时刻的带宽数据进行平滑处理,并将平滑处理后的所述第一时刻的带宽数据发送给调度系统。
可选地,所述处理模块具体用于:
根据所述第一时间窗内的带宽数据,确定所述第一时间窗内的带宽峰值以及所述第一时间窗内的带宽差分值;
根据所述第一时间窗内的带宽峰值和所述第一时间窗内的带宽差分值确定所述第一时刻的带宽波动率;
根据所述第一时刻的带宽波动率确定所述第一时刻的带宽波动增益。
可选地,所述第一时间窗内的带宽数据包括在所述第一时间窗内的各个采集时刻采集的带宽值;
所述处理模块具体用于:
将在所述第一时间窗内的各个采集时刻采集的带宽值中,最大的带宽值作为带宽峰值;
确定所述第一时间窗内的相邻采集时刻的带宽值的一阶差分值。
可选地,所述处理模块具体用于:
从所述第一时间窗内的带宽差分值划分为正带宽差分值和负带宽差分值;
从各个正带宽差分值中确定出最大正带宽差分值;
将各个负带宽差分值取绝对值后,从各个负带宽差分值中确定最大负带宽差分值;
将所述第一时间窗内的带宽差分值求和,获得带宽差分和;
根据所述带宽峰值、所述最大正带宽差分值、所述最大负带宽差分值以及所述带宽差分和确定所述第一时刻的带宽波动率。
可选地,所述波动检测模块具体用于:
将所述第一时刻的带宽波动增益和第二时刻的带宽波动值求和,获得所述第一时刻的原始带宽波动值;
将所述第一时刻的原始带宽波动值进行归一化处理,获得所述第一时刻的带宽波动值。
可选地,所述平滑模块具体用于:
根据所述第一时刻的带宽数据以及平滑处理后的所述第二时刻的带宽数据,确定所述第一时刻的初始平滑带宽数据;
采用带宽补偿值对所述第一时刻的初始平滑带宽数据进行补偿,将补偿后的所述第一时刻的初始平滑带宽数据发送给调度系统。
可选地,所述平滑模块还用于:
在确定所述第一时刻的带宽波动值不大于预设阈值时,将所述资源设备在第一时刻的带宽数据发送给调度系统。
可选地,所述波动检测模块还用于:
当所述第二时刻为带宽平滑的初始时刻时,获取所述资源设备在所述第二时刻对应的第二时间窗内的带宽数据;
根据所述第二时间窗内的带宽数据确定所述第二时间窗内的带宽差分值和带宽均值;
根据所述第二时间窗内的带宽差分值和带宽均值确定所述第二时刻的带宽波动值。
一方面,本申请实施例提供了一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现上述带宽平滑方法的步骤。
一方面,本申请实施例提供了一种计算机可读存储介质,其存储有可由计算机设备执行的计算机程序,当所述程序在计算机设备上运行时,使得所述计算机设备执行上述带宽平滑方法的步骤。
本申请实施例中,由于先对第一时刻的带宽数据进行波动性检测,在确定第一时刻的带宽波动值大于预设阈值时,对第一时刻的带宽数据进行平滑处理,而不是对每个时刻的带宽数据均进行平滑处理,从而避免全局平滑带来的带宽延迟,同时可以向调度系统发送平滑的带宽数据,使得调度系统可以准确获知资源设备的负载情况,进而提高资源调度的准确性,提升用户的体验。
附图说明
为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简要介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域的普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1为本申请实施例提供的一种系统架构的示意图;
图2为本申请实施例提供的一种带宽平滑方法的流程示意图;
图3为本申请实施例提供的一种确定带宽波动增益的方法的流程示意图;
图4为本申请实施例提供的一种带宽平滑方法的流程示意图;
图5为本申请实施例提供的一种带宽平滑装置的结构示意图;
图6为本申请实施例提供的一种计算机设备的结构示意图。
具体实施方式
为了使本发明的目的、技术方案及有益效果更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
为了方便理解,下面对本发明实施例中涉及的名词进行解释。
cdn(contentdeliverynetwork,内容分发网络):构建在现有网络基础之上的智能虚拟网络,依靠部署在各地的边缘服务器,通过中心平台的负载均衡、内容分发、调度等功能模块,使用户就近获取所需内容,降低网络拥塞,提高用户访问响应速度和命中率。
参考图1,其为本申请实施例适用的一种系统架构图,该系统架构至少包括资源设备101、带宽平滑设备102、调度系统103、用户终端104。
资源设备101为用户接入点,是面向最终用户的内容提供设备,可缓存静态web内容和流媒体内容,实现内容的边缘传播和存储,以便用户的就近访问,资源设备101可以是cdn网络中的一个节点或多个节点组成的节点组。
带宽平滑设备102实时采集资源设备101的带宽数据,并基于资源设备101的带宽数据判断是否对资源设备101的带宽数据进行平滑处理,具体过程为:首先获取资源设备在第一时间窗内的带宽数据,其中,第一时间窗是基于第一时刻确定的时段。然后根据第一时间窗内的带宽数据,确定第一时刻的带宽波动增益,再根据第一时刻的带宽波动增益和第二时刻的带宽波动值确定第一时刻的带宽波动值,其中,第二时刻为第一时刻之前的时刻。在确定第一时刻的带宽波动值大于预设阈值时,对资源设备在第一时刻的带宽数据进行平滑处理,并将平滑处理后的第一时刻的带宽数据发送给调度系统,否则直接将第一时刻的带宽数据发送给调度系统。带宽平滑设备102以是独立的物理服务器,也可以是多个物理服务器构成的服务器集群或者分布式系统,还可以是提供云服务、云数据库、云计算、云函数、云存储、网络服务、云通信、中间件服务、域名服务、安全服务、cdn、以及大数据和人工智能平台等基础云计算服务的云服务器。带宽平滑设备102与采集资源设备101可以通过有线或无线通信方式进行直接或间接地连接,本申请在此不做限制。
调度系统103处于用户接入集中点,用于均衡多个资源设备101的负载,实现负载平衡及访问控制。具体实施中,调度系统103基于带宽平滑设备102发送的带宽数据均衡各个资源设备101的负载,将用户终端104的用户请求调度到适当的资源设备101上。调度系统103以是独立的物理服务器,也可以是多个物理服务器构成的服务器集群或者分布式系统,还可以是提供云服务、云数据库、云计算、云函数、云存储、网络服务、云通信、中间件服务、域名服务、安全服务、cdn、以及大数据和人工智能平台等基础云计算服务的云服务器。采集资源设备101、带宽平滑设备102以及调度系统103可以通过有线或无线通信方式进行直接或间接地连接,本申请在此不做限制。
用户终端104中预先安装应用,该应用可以是购物应用、直播应用、视频应用、即时通讯应用等。以购物应用举例来说,在活动促销期间,用户在购物应用中输入购买商品的相关操作,购物应用响应用户操作,通过用户终端104发送用户请求给调度系统103,调度系统103根据各个资源设备101的负载情况,选取一个目标资源设备,然后将用户请求调度到目标资源设备上。目标资源设备响应用户请求,将响应数据发送给用户终端104。用户终端104可以是智能手机、平板电脑、笔记本电脑、台式计算机、智能音箱、智能手表等,但并不局限于此。
基于图1所示的系统架构图,本申请实施例提供了一种带宽平滑方法的流程,如图2所示,该方法的流程由带宽平滑设备执行,包括以下步骤:
步骤s201,获取资源设备在第一时间窗内的带宽数据。
具体地,资源设备中的采集程序从定期生产环境的交换机/机器采集带宽数据并发送给带宽平滑设备,带宽平滑设备对带宽数据进行收集和备份。由于采集问题或机器异常等原因,需要对原始带宽数据进行清洗,本申请中采用过滤的方式去除异常的带宽数据,比如去除负数值。为了不影响后续带宽波动的分析,在去除异常的带宽数据后,采用线性插值(或者其他插值算法)对带宽数据进行补充。
本申请中,第一时刻可以是真实时间点,比如10:00,也可以是带宽平滑设备进行带宽平滑的第i个时刻,i为正整数,比如第一时刻可以是进行带宽平滑的初始时刻,即第1个时刻,也可以是进行带宽平滑的第2个时刻等。第一时间窗是基于第一时刻确定的时段,该时段的时长预先设定,不同时间窗的时长可以设置为相同的数值,也可以设置为不同的数值。
示例性地,设定第一时刻为10:00,预先设定第一时间窗的时长为10分钟,则第一时间窗对应的时段为9:50~10:00。
步骤s202,根据第一时间窗内的带宽数据,确定第一时刻的带宽波动增益。
具体地,第一时间窗内的带宽数据为资源设备在第一时间窗内发送给带宽平滑设备的带宽数据。比如,第一时间窗对应的时段为9:50~10:00,则第一时间窗内的带宽数据为资源设备在9:50~10:00采集并发送给带宽平滑设备的带框数据。
步骤s203,根据第一时刻的带宽波动增益和第二时刻的带宽波动值确定第一时刻的带宽波动值。
具体地,第二时刻为第一时刻之前的时刻,第一时刻与第二时刻之间的时间间隔根据带宽平滑的时效性预先设定,第二时刻的带宽波动值是根据第二时刻对应的第二时间窗内的带宽数据确定的。比如,第一时刻为10:00,第一时间窗对应的时段为9:50~10:00,第一时刻与第二时刻之间的时间间隔为1分钟,则第二时刻为10:09,第二时间窗对应的时段为9:49~10:09,第二时刻的带宽波动值是根据资源设备在9:49~10:09采集并发送给带宽平滑设备的带宽数据确定的。
步骤s204,在确定第一时刻的带宽波动值大于预设阈值时,对资源设备在第一时刻的带宽数据进行平滑处理,并将平滑处理后的第一时刻的带宽数据发送给调度系统。
具体地,当第一时刻的带宽波动值大于预设阈值,说明第一时刻的带宽存在不平稳的情况,若直接将带宽数据发送给调度系统,将导致调度系统无法准确掌握资源设备的负载情况,从而导致调度不准确的问题,因此,对于带宽波动值大于预设阈值的带宽数据,需要进行平滑处理后再发送给调度系统。
在确定第一时刻的带宽波动值不大于预设阈值时,将资源设备在第一时刻的带宽数据发送给调度系统。具体实施中,当第一时刻的带宽波动值不大于预设阈值,说明第一时刻的带宽平稳,故可以直接将带宽数据发送给调度系统。
本申请实施例中,由于先对第一时刻的带宽数据进行波动性检测,在确定第一时刻的带宽波动值大于预设阈值时,对第一时刻的带宽数据进行平滑处理,而不是对每个时刻的带宽数据均进行平滑处理,从而避免全局平滑带来的带宽延迟,同时可以向调度系统发送平滑的带宽数据,使得调度系统可以准确获知资源设备的负载情况,进而提高资源调度的准确性,提升用户的体验。
可选地,在上述步骤s203中,当第二时刻为带宽平滑的初始时刻时,采用以下方式确定第二时刻的带宽波动值:
首先获取资源设备在第二时刻对应的第二时间窗内的带宽数据,然后根据第二时间窗内的带宽数据确定第二时间窗内的带宽差分值和带宽均值,之后再根据第二时间窗内的带宽差分值和带宽均值确定第二时刻的带宽波动值。
具体地,带宽差分值可以是一阶差分值、二阶差分值等。以带宽差分值为一阶差分值举例来说,根据第二时间窗内的带宽数据确定第二时间窗内的带宽差分值,具体满足下述公式(1):
diff2=bwi2t-bwi2t-1……………(1)
其中,diff2为第二时间窗内的一阶差分值,bwi2t为第二时间窗内第t个时刻的带宽值,bwi2t-1为第二时间窗内第t-1个时刻的带宽值,t∈(2,3,…,t),具体实施中,第二时间窗内第t个时刻的带宽值可以为第二时刻的带宽值。
根据第二时间窗内的带宽数据确定第二时间窗内的带宽均值,具体满足下述公式(2):
其中,bwimean为第二时间窗内的带宽均值。
进一步地,可以根据第二时间窗内的带宽差分值,确定第二时间窗内的带宽标准差σ(diff)或带宽方差σ(diff)2,然后再根据第二时间窗内的带宽标准差或带宽方差和带宽均值确定第二时刻的带宽波动值。
具体地,根据第二时间窗内的带宽标准差和带宽均值确定第二时刻的带宽波动值,具体满足下述公式(3):
其中,bwimean为第二时间窗内的带宽均值,σ(diff)为第二时间窗内的带宽标准差,wavecoe为第二时刻的带宽波动值。
根据第二时间窗内的带宽标准差和带宽均值确定第二时刻的带宽波动值,具体满足下述公式(4):
其中,bwimean为第二时间窗内的带宽均值,σ(diff)2为第二时间窗内的带宽方差,wavecoe为第二时刻的带宽波动值。
进一步地,预先设置anormalypoint数组保存带宽波动值,获得初始带宽波动值之后,将anormalypoint数组中第一个值anormalypoint0置为初始带宽波动值。
本申请实施例中,以初始时刻对应的历史带宽数据确定带宽差分值和带宽均值,之后再基于带宽差分值和带宽均值确定初始带宽波动值,为后续基于滑动时间窗口进行带宽波动性检测提供了初始波动值参考,从而提高后续带宽波动检测的准确性。
可选地,在上述步骤s202中,采用以下方式确定第一时刻的带宽波动增益,如图3所示,具体包括以下步骤:
步骤s301,根据第一时间窗内的带宽数据,确定第一时间窗内的带宽峰值以及第一时间窗内的带宽差分值。
第一时间窗内的带宽数据包括在第一时间窗内的各个采集时刻采集的带宽值,带宽差分值可以是一阶差分值、二阶差分值等。
具体实施中,将在第一时间窗内的各个采集时刻采集的带宽值中,最大的带宽值作为带宽峰值。
采用以下公式(5)确定第一时间窗内的相邻采集时刻的带宽值的一阶差分值:
diff1=bwi1t-bwi1t-1……………(5)
其中,diff1为第一时间窗内的一阶差分值,bwi1t为第一时间窗内第t个时刻的带宽值,bwi1t-1为第一时间窗内第t-1个时刻的带宽值,t∈(2,3,…,t),具体实施中,第一时间窗内第t个时刻的带宽值可以为第一时刻的带宽值。
步骤s302,根据第一时间窗内的带宽峰值和第一时间窗内的带宽差分值确定第一时刻的带宽波动率。
具体地,从第一时间窗内的带宽差分值划分为正带宽差分值和负带宽差分值,然后从各个正带宽差分值中确定出最大正带宽差分值,将各个负带宽差分值取绝对值后,从各个负带宽差分值中确定最大负带宽差分值。再将第一时间窗内的带宽差分值求和,获得带宽差分和,之后再根据带宽峰值、最大正带宽差分值、最大负带宽差分值以及带宽差分和确定第一时刻的带宽波动率。
具体实施中,预先设置正差分值集合diffpositive和负差分值集合diffnegative,计算第一时间窗内的带宽差分值后,将正带宽差分值划分到正差分值集合diffpositive,将负带宽差分值划分到负差分值集合diffnegative。
采用以下公式(6)确定最大正带宽差分值:
diffposmax=max(diffpositive)……………(6)
其中,diffposmax为最大正带宽差分值。
采用以下公式(7)确定最大负带宽差分值:
diffnegmax=max(abs(diffnegative))……………(7)
其中,diffnegmax为最大负带宽差分值。
之后再采用以下公式(8)确定第一时刻的带宽波动率:
其中,anormalyrate为第一时刻的带宽波动率,bwipeak为第一时间窗内的带宽峰值,α为带宽峰值控制系数,diffsum为第一时间窗内的带宽差分和,可以对第一时间窗内的带宽差分值直接求和,获得带宽差分和,也可以对第一时间窗内的带宽差分值取绝对值后求和,获得带宽差分和。
步骤s303,根据第一时刻的带宽波动率确定第一时刻的带宽波动增益。
具体采用以下公式(9)获得第一时刻的带宽波动增益。
其中,anormalygain为第一时刻的带宽波动增益,anormalyrate为第一时刻的带宽波动率,β为带宽平稳时的比例控制系数,γ为带宽波动时的比例控制系数。
本申请实施例中,采用带宽峰值和带宽差分值确定带宽波动率,然后基于带宽波动率确定带宽波动增益,既考虑了带宽峰值,也考虑带宽波动,这样不仅能识别出正常情况下节点/组带宽的波动情况,而且能够对调度系统关注的突增/突降情况进行判断,避免由于丢失突增/突降信息带来的误调或错调问题。
可选地,在上述步骤s203中,本申请实施例至少提供以下两种实施方式获得第一时刻的带宽波动值:
一种可能的实施方式,将第一时刻的带宽波动增益和第二时刻的带宽波动值求和,获得第一时刻的原始带宽波动值,然后将第一时刻的原始带宽波动值进行归一化处理,获得第一时刻的带宽波动值。
具体实施中,当第二时刻为初始时刻时,采用前文介绍的公式(1)至公式(3)确定第二时刻的带宽波动值。当第二时刻不是初始时刻时,基于第二时刻的带宽波动增益和第三时刻的带宽波动值确定第二时刻的带宽波动值,第三时刻为第二时刻之前的时刻。
将第一时刻的带宽波动增益和第二时刻的带宽波动值求和,获得第一时刻的原始带宽波动值,具体满足下述公式(10):
curanormaly=anormalypoingi-1+anormalygain………(10)
其中,anormalygain为第一时刻的带宽波动增益,anormalypoingi-1为第二时刻的带宽波动值,第二时刻为进行带宽平滑的第i-1个时刻,curanormaly为第一时刻的原始带宽波动值。
将第一时刻的原始带宽波动值进行归一化处理,获得第一时刻的带宽波动值,具体满足下述公式(11):
其中,anormalypointi为第一时刻的带宽波动值,curanormaly为第一时刻的原始带宽波动值,第一时刻为进行带宽平滑的第i个时刻。
一种可能的实施方式,将第一时刻的带宽波动增益和第二时刻的带宽波动值求和,获得第一时刻的带宽波动值。
具体实施中,可以直接将第一时刻的带宽波动增益与第二时刻的带宽波动值的和,作为第一时刻的带宽波动值。
本申请实施例中,基于已有的第二时刻的带宽波动值确定第一时刻的带宽波动值,从而减少了计算量和资源消耗,能够很好的满足生产环境对于检测实时性的需求。
可选地,在上述步骤s204中,本申请实施例至少提供以下两种实施方式,对资源设备在第一时刻的带宽数据进行平滑处理:
一种可能的实施方式,根据第一时刻的带宽数据以及平滑处理后的第二时刻的带宽数据,确定第一时刻的初始平滑带宽数据,具体满足下述公式(12):
bwi1’i=βsmoothbwi2i-1+(1-β)curbwi1i………(12)
其中,bwi1’i为第一时刻的初始平滑带宽数据,第一时刻为进行带宽平滑的第i个时刻,smoothbwi2i-1为平滑处理后的第二时刻的带宽数据,第二时刻为进行带宽平滑的第i-1个时刻,curbwi1i为第一时刻的带宽数据,β为带宽平稳时的比例控制系数。
采用带宽补偿值对第一时刻的初始平滑带宽数据进行补偿,将补偿后的第一时刻的带宽数据发送给调度系统,对第一时刻的初始平滑带宽数据进行补偿具体满足下述公式(13):
其中,第一时刻为进行带宽平滑的第i个时刻,smoothbwi1i为补偿后的第一时刻的带宽数据,
一种可能的实施方式,采用带宽补偿值对第一时刻的带宽数据进行补偿,将补偿后的第一时刻的带宽数据发送给调度系统。
具体实施中,在检测到第一时刻的带宽波动值大于预设阈值时,对资源设备在第一时刻的带宽数据直接进行平滑补偿,获得平滑后的带宽数据,之后再将平滑后的带宽数据发送给调度系统,具体采用以下公式(14)对资源设备在第一时刻的带宽数据进行平滑补偿:
其中,第一时刻为进行带宽平滑的第i个时刻,smoothbwi1i为补偿后的第一时刻的带宽数据,
本申请实施例中,采用带宽补偿方式对波动性大的带宽数据进行平滑处理,能够有效避免平滑初期带来的带宽失真问题,同时可以向调度系统发送平滑的带宽数据,使得调度系统可以准确获知资源设备的负载情况,从而提高资源调度的准确性,提升客户的体验。
进一步地,在向调度系统发送带宽数据时,以预设阈值δ为判定条件,当第一时刻的带宽波动值大于预设阈值时,对资源设备在第一时刻的带宽数据进行平滑处理,并将平滑处理后的第一时刻的带宽数据发送给调度系统。当第一时刻的带宽波动值不大于预设阈值时,直接将第一时刻的带宽数据发送给调度系统,具体满足下述公式(15):
其中,smoothbwi1i为补偿后的第一时刻的带宽数据,correctbwii为带宽平滑设备发送给调度系统的第一时刻的带宽数据,curbwi1i为第一时刻的带宽数据。
由于先对第一时刻的带宽数据进行波动性检测,在确定第一时刻的带宽波动值大于预设阈值时,对第一时刻的带宽数据进行平滑处理,并将平滑后的带宽数据发送给调度系统,否则直接发送第一时刻的带宽数据给调度系统,而不是对每个时刻的带宽数据均进行平滑处理,从而避免全局平滑带来的带宽延迟,同时可以向调度系统发送平滑的带宽数据,使得调度系统可以准确获知资源设备的负载情况,从而提高资源调度的准确性,提升用户的体验。
为了更好地解释本申请实施例,下面分阶段介绍本申请实施例提供的一种带宽平滑方法,该方法由带宽平滑设备执行,如图4所示,该方法包括三个阶段,分别为数据处理阶段、波动性检测阶段、数据输出阶段。
数据预处理阶段包括数据采集、数据清洗和数据预处理。
数据采集具体为:资源设备中的采集程序从定期生产环境的交换机/机器采集带宽数据并发送给带宽平滑设备,带宽平滑设备对带宽数据进行收集和备份。
数据清洗具体为:采用过滤的方式去除异常的带宽数据,比如去除负数值。
数据预处理具体为:在去除异常的带宽数据后,采用线性插值(或者其他插值算法)对带宽数据进行补充。
波动性检测阶段包括初始波动性检测和实时波动性检测。
初始波动性检测具体为:设定时刻1为带宽平滑的初始时刻,首先获取资源设备在时刻1对应的时间窗1内的带宽数据,然后根据时间窗1内的带宽数据确定时间窗1内的带宽差分值和带宽均值,之后再根据时间窗1内的带宽差分值和带宽均值确定时刻1的带宽波动值。
实时波动性检测具体为:获取资源设备在时间窗n内的带宽数据,时间窗n是基于时刻n确定的时段,时间窗n内的带宽数据包括在时间窗n内的各个采集时刻采集的带宽值。将在时间窗n内的各个采集时刻采集的带宽值中,最大的带宽值作为带宽峰,计算时间窗n内的相邻采集时刻的带宽值的一阶差分值。然后从时间窗n内的带宽差分值划分为正带宽差分值和负带宽差分值,从各个正带宽差分值中确定出最大正带宽差分值,将各个负带宽差分值取绝对值后,从各个负带宽差分值中确定最大负带宽差分值,将时间窗n内的带宽差分值求和,获得带宽差分和。根据带宽峰值、最大正带宽差分值、最大负带宽差分值以及带宽差分和确定时刻n的带宽波动率。
根据时刻n的带宽波动率确定时刻n的带宽波动增益。将时刻n的带宽波动增益和时刻n-1的带宽波动值求和,获得时刻n的原始带宽波动值,然后将时刻n的原始带宽波动值进行归一化处理,获得时刻n的带宽波动值。
数据输出阶段:以预设阈值δ为判定条件,当时刻n的带宽波动值大于预设阈值δ时,对资源设备在时刻n的带宽数据进行平滑处理,并将平滑处理后的时刻n的带宽数据发送给调度系统,其中,平滑处理过程具体为:根据时刻n的带宽数据以及平滑处理后的时刻n-1的带宽数据,确定时刻n的初始平滑带宽数据。采用带宽补偿值对时刻n的初始平滑带宽数据进行补偿,获得平滑处理后的时刻n的带宽数据。当时刻n的带宽波动值不大于预设阈值δ时,直接将时刻n的带宽数据发送给调度系统。
本申请实施例中,由于先对第一时刻的带宽数据进行波动性检测,在确定第一时刻的带宽波动值大于预设阈值时,对第一时刻的带宽数据进行平滑处理,而不是对每个时刻的带宽数据均进行平滑处理,从而避免全局平滑带来的带宽延迟,同时可以向调度系统发送平滑的带宽数据,使得调度系统可以准确获知资源设备的负载情况,进而提高资源调度的准确性,提升用户的体验。
基于相同的技术构思,本申请实施例提供了一种带宽平滑装置,如图5所示,该装置500包括:
获取模块501,用于获取资源设备在第一时间窗内的带宽数据,第一时间窗是基于第一时刻确定的时段;
处理模块502,用于根据第一时间窗内的带宽数据,确定第一时刻的带宽波动增益;
波动检测模块503,用于根据第一时刻的带宽波动增益和第二时刻的带宽波动值确定第一时刻的带宽波动值,第二时刻为第一时刻之前的时刻;
平滑模块504,用于在确定第一时刻的带宽波动值大于预设阈值时,对资源设备在第一时刻的带宽数据进行平滑处理,并将平滑处理后的第一时刻的带宽数据发送给调度系统。
可选地,处理模块502具体用于:
根据第一时间窗内的带宽数据,确定第一时间窗内的带宽峰值以及第一时间窗内的带宽差分值;
根据第一时间窗内的带宽峰值和第一时间窗内的带宽差分值确定第一时刻的带宽波动率;
根据第一时刻的带宽波动率确定第一时刻的带宽波动增益。
可选地,第一时间窗内的带宽数据包括在第一时间窗内的各个采集时刻采集的带宽值;
处理模块502具体用于:
将在第一时间窗内的各个采集时刻采集的带宽值中,最大的带宽值作为带宽峰值;
确定第一时间窗内的相邻采集时刻的带宽值的一阶差分值。
可选地,处理模块502具体用于:
从第一时间窗内的带宽差分值划分为正带宽差分值和负带宽差分值;
从各个正带宽差分值中确定出最大正带宽差分值;
将各个负带宽差分值取绝对值后,从各个负带宽差分值中确定最大负带宽差分值;
将第一时间窗内的带宽差分值求和,获得带宽差分和;
根据带宽峰值、最大正带宽差分值、最大负带宽差分值以及带宽差分和确定第一时刻的带宽波动率。
可选地,波动检测模块503具体用于:
将第一时刻的带宽波动增益和第二时刻的带宽波动值求和,获得第一时刻的原始带宽波动值;
将第一时刻的原始带宽波动值进行归一化处理,获得第一时刻的带宽波动值。
可选地,平滑模块504具体用于:
根据第一时刻的带宽数据以及平滑处理后的第二时刻的带宽数据,确定第一时刻的初始平滑带宽数据;
采用带宽补偿值对第一时刻的初始平滑带宽数据进行补偿,将补偿后的第一时刻的初始平滑带宽数据发送给调度系统。
可选地,平滑模块504还用于:
在确定第一时刻的带宽波动值不大于预设阈值时,将资源设备在第一时刻的带宽数据发送给调度系统。
可选地,波动检测模块503还用于:
当第二时刻为带宽平滑的初始时刻时,获取资源设备在第二时刻对应的第二时间窗内的带宽数据;
根据第二时间窗内的带宽数据确定第二时间窗内的带宽差分值和带宽均值;
根据第二时间窗内的带宽差分值和带宽均值确定第二时刻的带宽波动值。
基于相同的技术构思,本申请实施例提供了一种计算机设备,如图6所示,包括至少一个处理器601,以及与至少一个处理器连接的存储器602,本申请实施例中不限定处理器601与存储器602之间的具体连接介质,图6中处理器601和存储器602之间通过总线连接为例。总线可以分为地址总线、数据总线、控制总线等。
在本申请实施例中,存储器602存储有可被至少一个处理器601执行的指令,至少一个处理器601通过执行存储器602存储的指令,可以执行前述带宽平滑方法中所包括的步骤。
其中,处理器601是计算机设备的控制中心,可以利用各种接口和线路连接计算机设备的各个部分,通过运行或执行存储在存储器602内的指令以及调用存储在存储器602内的数据,从而进行带宽平滑。可选的,处理器601可包括一个或多个处理单元,处理器601可集成应用处理器和调制解调处理器,其中,应用处理器主要处理操作系统、用户界面和应用程序等,调制解调处理器主要处理无线通信。可以理解的是,上述调制解调处理器也可以不集成到处理器601中。在一些实施例中,处理器601和存储器602可以在同一芯片上实现,在一些实施例中,它们也可以在独立的芯片上分别实现。
处理器601可以是通用处理器,例如中央处理器(cpu)、数字信号处理器、专用集成电路(applicationspecificintegratedcircuit,asic)、现场可编程门阵列或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件,可以实现或者执行本申请实施例中公开的各方法、步骤及逻辑框图。通用处理器可以是微处理器或者任何常规的处理器等。结合本申请实施例所公开的方法的步骤可以直接体现为硬件处理器执行完成,或者用处理器中的硬件及软件模块组合执行完成。
存储器602作为一种非易失性计算机可读存储介质,可用于存储非易失性软件程序、非易失性计算机可执行程序以及模块。存储器602可以包括至少一种类型的存储介质,例如可以包括闪存、硬盘、多媒体卡、卡型存储器、随机访问存储器(randomaccessmemory,ram)、静态随机访问存储器(staticrandomaccessmemory,sram)、可编程只读存储器(programmablereadonlymemory,prom)、只读存储器(readonlymemory,rom)、带电可擦除可编程只读存储器(electricallyerasableprogrammableread-onlymemory,eeprom)、磁性存储器、磁盘、光盘等等。存储器602是能够用于携带或存储具有指令或数据结构形式的期望的程序代码并能够由计算机存取的任何其他介质,但不限于此。本申请实施例中的存储器602还可以是电路或者其它任意能够实现存储功能的装置,用于存储程序指令和/或数据。
基于同一发明构思,本申请实施例提供了一种计算机可读存储介质,其存储有可由计算机设备执行的计算机程序,当程序在计算机设备上运行时,使得计算机设备执行上述带宽平滑方法的步骤。
本领域内的技术人员应明白,本发明的实施例可提供为方法、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、cd-rom、光学存储器等)上实施的计算机程序产品的形式。
本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
尽管已描述了本发明的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例作出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本发明范围的所有变更和修改。
显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。