一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

负载均衡方法、装置及计算机可读存储介质与流程

2022-06-17 20:09:03 来源:中国专利 TAG:


1.本发明实施例涉及工业控制技术,尤其是涉及一种负载均衡方法、装置及计算机可读存储介质。


背景技术:

2.虚拟路由冗余协议(virtual router redundancy protocol,vrrp)是一种容错协议,可提高网络的可靠性。vrrp通过在多个配置了相同vrrp备份组的路由器网关中选择一个路由器作为主设备,其它设备为备份设备。主设备通过发送vrrp通知组播报文,备份设备根据收到的vrrp报文来判断是否需要进行主从状态切换等操作,比如主设备状态故障,或主设备上下行链路故障时才会进行切换。
3.而现有的负载均衡方式是通过平均的在各个vrrp节点配置各备份组主设备来实现的。比如网络中有3个vrrp节点进行容错协议,有6个备份组,配置每个vrrp节点分别成为每两个备份组的主设备,相同时刻,因每个备份组只有主设备负责数据业务的处理和转发,所以在vrrp节点设备性能一样,以及每个备份组需要处理的数据量一样的情况下,这种方式能实现负载的分担。
4.然而实际应用环境中,我们发现每个备份组在一定时间内,实际需要处理的数据量差异很大,如果设备性能差异也很大的话,会造成虽然配置了每个vrrp节点成为各个备份组的主设备数量一样,但是实际达不到负载分担的效果。


技术实现要素:

5.鉴于以上内容,有必要提供一种负载均衡方法、系统及计算机可读存储介质,根据vrrp节点的实际负载和设备性能,然后通过调整各vrrp节点的备份组的状态来实现能者多劳的负载均衡。
6.本发明实施例提供了一种负载均衡方法,所述方法包括:获取网络中的多个vrrp节点,在所述多个vrrp节点的各vrrp节点均设置监控线程,并定义预设时间间隔t;通过所述各vrrp节点的所述监控线程以所述预设时间间隔t为周期,周期性监控所述各vrrp节点上备份组的各个路由器的状态及数量,所述状态至少包括主状态及备份状态;接收由外部处理单元从所述各vrrp节点筛选出的主状态最多的第一vrrp节点和备份状态最多的第二vrrp节点;计算让所述第一vrrp节点和所述第二vrrp节点的cpu总使用率或内存总使用率相近时所述第一vrrp节点需要减少或者所述第二vrrp节点需要增加的数据差值;统计所述各vrrp节点上备份组在所述时间间隔t处理的平均数据量之和,并计算所述数据差值和所述时间间隔t处理的平均数据量之和的比例;当所述比例满足预设条件时,在对应的备份组生成vrrp节点状态切换标记;根据所述vrrp节点状态切换标记,调整所述对应的备份组在各vrrp节点的优先级。
7.优选地,所述方法还包括:通过所述监控线程监控所述备份组的主路由器在所述时间间隔t处理的平均数据量,所述备份组中每个主路由器的平均cpu使用率和平均内存使
用率,及各vrrp节点的cpu总使用率和内存总使用率;定义数据单位,将监控线程监控到的数据发送到所述外部处理单元,接收所述外部单元计算得到的各vrrp节点的主路由器处理数据单位所花费的cpu使用率及内存使用率。
8.优选地,所述计算让所述第一vrrp节点和所述第二vrrp节点的cpu总使用率或内存总使用率相近时所述第一vrrp节点需要减少或者所述第二vrrp节点需要增加的数据差值,包括:当处理数据单位所花费的cpu使用率大于内存使用率时,根据公式一计算所述数据差值,所述公式一为:
9.fx

z*dx/(cx/h)=fy z*dy/(cy/h),其中,fx表示为主状态最多的第一vrrp节点的x个主状态的cpu总使用率,fy表示为备份状态最多的第一vrrp节点的y个备份状态的cpu总使用率;
10.当处理数据单位所花费的cpu使用率大于内存使用率时,根据公式二计算所述数据差值,所述公式二为:
11.fx

z*jx=fy z*jy,结合上述公式ix=dx/(cx/h),iy=dy/(cy/h),推知公式二为:fx

z*ex/(cx/h)=fy z*ey/(cy/h),其中,fx表示为主状态最多的第一vrrp节点的x个主状态的内存总使用率,fy表示为备份状态最多的第一vrrp节点的y个备份状态的内存总使用率。
12.优选地,所述根据所述vrrp节点状态切换标记,调整所述对应的备份组在各vrrp节点的优先级,包括:
13.如果根据所述vrrp节点状态切换标记要把所述对应的备份组从主状态改变成备份状态,则把所述对应的备份组优先级改成最低值。
14.优选地,所述根据所述vrrp节点状态切换标记,调整所述对应备份组在各个vrrp节点的优先级,包括:
15.如果根据所述vrrp节点状态切换标记表示要把所述对应的备份组从备份状态改变成主状态,则把所述对应的备份组优先级改成最高值。
16.本发明实施例还提供了一种负载均衡装置,其特征在于,所述负载均衡装置还包括存储器、处理器及存储在所述存储器上并可在所述处理器上运行的负载均衡程序,所述负载均衡程序被所述处理器执行时实现上述的负载均衡方法的步骤。
17.本发明实施例还提供了一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现上述的负载均衡方法的步骤。
18.相较于现有技术,所述负载均衡方法、装置及计算机可读存储介质,根据vrrp节点的备份组中各主路由器及备份路由器实际负载和设备性能,然后通过调整各vrrp节点的备份组的状态来实现负载均衡。
附图说明
19.图1是本发明较佳实施例之负载均衡装置的程序模块图
20.图2是本发明较佳实施例之负载均衡方法的流程图。
21.主要元件符号说明
22.负载均衡装置10存储器20
处理器30获取模块101监控模块102接收模块103计算模块104切换模块105调整模块106
具体实施方式
23.参阅图1所示,是本发明实施方式之负载均衡装置10较佳实施例的程序模块图。所述负载均衡装置10与外部处理单元(图中未示出)通过网络进行通信连接,该网络可以为有线网络或者无线网络。本实施例中,所述外部处理单元可以是server、处理器等处理单元。负载均衡装置10包括存储器20和处理器30等。其中,所述存储器20至少包括一种类型的可读存储介质,所述可读存储介质包括闪存、硬盘、多媒体卡、卡型存储器(例如,sd或dx存储器等)、随机访问存储器(ram)、静态随机访问存储器(sram)、只读存储器(rom)、电可擦除可编程只读存储器(eeprom)、可编程只读存储器(prom)、磁性存储器、磁盘、光盘等。所述处理器30可以是中央处理器(central processing unit,cpu)、控制器、微控制器、微处理器、或其他数据处理芯片等。
24.所述负载均衡装置10还包括获取模块101、监控模块102、接收模块103、计算模块104、切换模块105及调整模块106。所述模块被配置成由一个或多个处理器(本实施例为一个处理器30)执行,以完成本发明。本发明所称的模块是完成一特定指令的计算机程序段。存储器20用于存储负载均衡装置10的程序代码等资料。所述处理器30用于执行所述存储器20中存储的程序代码。
25.获取模块101,用于获取网络中的多个虚拟路由冗余协议(virtual router redundancy protocol,vrrp)节点,在所述多个vrrp节点的各vrrp节点均设置监控线程,并定义预设时间间隔t。
26.时间间隔t根据需要进行设置,为了防止备份组状态频繁切换,这个时间段t可以设置得长一点,比如600秒/1200秒/1800秒为单位。
27.监控模块102,用于通过各vrrp节点的所述监控线程以所述预设时间间隔t为周期,周期性监控每个vrrp节点上备份组的各个路由器的状态及数量。其中,所述状态至少包括主状态及备份状态。例如,主状态a(例如,a1,a2,a3),备份状态b(例如,b1,b2,b3)。
28.现有技术中,vrrp节点上各个路由器一共有三种状态,主状态(master),备份状态(backup)及初始状态(initialize)。本实施例中,vrrp节点上每个备份组包括多个路由器,每个备份组中只有一个路由器是主路由器,处于主状态,其他路由器是备份路由器,处于备份状态。本实施例中,a1,a2,a3表示的是不同备份组的主状态,例如,a1表示第一备份组的主状态,a2表示第二备份组的主状态,a3表示第三备份组的主状态。
29.接收模块103,用于接收由所述外部处理单元筛选出的主状态最多的第一vrrp节点和备份状态最多的第二vrrp节点。
30.主状态最多的vrrp节点,意味着该vrrp节点的路由器负载较多,备份状态最多的
vrrp节点,意味着该vrrp节点的路由器负载较少。
31.本实施例中,外部处理单元筛选出的主状态ax最多的第一vrrp节点和备份状态ay最多的第二vrrp节点。ax表示主状态的数量,例如,第一vrrp节点含有的主状态最多,有ax个主状态。例如,第二vrrp节点含有的备份状态最多,有ay个备份状态。
32.本实施例中,所述监控模块102还用于,通过所述监控线程监控每个备份组的主路由器在时间间隔t处理的平均数据量,各个备份组中每个主路由器的平均cpu使用率和平均内存使用率,及各个vrrp节点的cpu总使用率和内存总使用率。其中,每个备份组主路由器的平均cpu使用率和平均内存使用率,及各个vrrp节点的cpu总使用率和内存总使用率都可以通过监控vrrp节点直接获取。
33.本实施例中以三个备份组为例进行说明,包括备份组1,备份组2,备份组3,监控线程监控每个备份组的主路由器在时间间隔t处理的平均数据量c(例如,c1,c2,c3),每个备份组主路由器的平均cpu使用率d(例如,d1,d2,d3)和平均内存使用率e(例如,e1,e2,e3),及各个vrrp节点的cpu总使用率f(例如,f1,f2,f3)和内存总使用率g(例如,g1,g2,g3)。其中,平均数据量的单位可以为mbit/s或gbit/s或10gbit/s,本实施例并不具体限定。
34.所述接收模块103,还用于定义数据单位,将监控线程监控到的数据发送到外部处理单元,接收外部处理单元计算得到的每个vrrp节点的主路由器处理数据单位所花费的cpu使用率及内存使用率。
35.本实施例中,定义数据单位为h,可以为mbit/s或gbit/s或10gbit/s。外部处理单元计算得到的每个vrrp节点的主路由器处理数据单位h所花费的cpu使用率i(例如,i1,i2,i3)及内存使用率j(例如,j1,j2,j3)。具体地,i=d/(c/h),j=e/(c/h)。
36.本实施例中由外部处理单元计算得到的每个vrrp节点的主路由器处理数据单位所花费的cpu使用率及内存使用率,这样能够减少数据处理时造成的cpu使用率及内存使用率计算过程中造成的误差,同时能够减少负载。
37.所述计算模块104,用于计算让所述第一vrrp节点和所述第二vrrp节点的cpu总使用率或内存总使用率相近时所述第一vrrp节点需要减少或者所述第二vrrp节点需要增加的数据差值。
38.本实施例中,以过去时间间隔t的上述各数据为参考,计算出降低主状态最多的第一vrrp节点需要处理的数据量z和备份状态最多的所述第二vrrp节点需要增加处理相同的数据量z后,所述第一vrrp节点和所述第二vrrp节点的cpu总使用率或内存总使用率相近。
39.本实施例中,当处理数据单位h所花费的cpu使用率大于内存使用率时,根据公式一计算所述数据差值,所述公式一为:fx

z*ix=fy z*iy,结合上述公式ix=dx/(cx/h),iy=dy/(cy/h),推知公式一为:fx

z*dx/(cx/h)=fy z*dy/(cy/h),其中,fx表示为主状态最多的第一vrrp节点的x个主状态的cpu总使用率,fy表示为备份状态最多的第一vrrp节点的y个备份状态的cpu总使用率。
40.当处理数据单位所花费的cpu使用率大于内存使用率时,根据公式二计算所述数据差值,所述公式二为:fx

z*jx=fy z*jy,结合上述公式ix=dx/(cx/h),iy=dy/(cy/h),推知公式二为:fx

z*ex/(cx/h)=fy z*ey/(cy/h),其中,fx表示为主状态最多的第一vrrp节点的x个主状态的内存总使用率,fy表示为备份状态最多的第一vrrp节点的y个备份状态的内存总使用率。
41.所述计算模块104,还用于统计所述各vrrp节点上备份组在所述时间间隔t处理的平均数据量之和,并计算所述数据差值和所述时间间隔t处理的平均数据量之和的比例。
42.所述切换模块105,用于当所述比例满足预设条件时,在对应的所述至少一个备份组生成vrrp节点状态切换标记。
43.本实施例中,所述预设条件由开发人员进行设置,例如,当所述比例在预设的区间段范围内时,在对应的备份组生成vrrp节点状态切换标记。
44.所述调整模块106,用于根据所述vrrp节点状态切换标记,调整所述对应的备份组在各vrrp节点的优先级。
45.具体地,如果所述vrrp节点状态切换标记表示要把对应的vrrp节点上的备份组从主状态改变成备份状态,则把对应的vrrp节点的备份组优先级改成最低值。因备份组的优先级变成了最低值,所以无需等待别的vrrp节点相同备份组的确认信息,就立即变成备份状态。
46.如果所述vrrp节点状态切换标记表示要把对应的vrrp节点上的备份组从备份状态改变成主状态,则把对应的vrrp节点的备份组优先级改成最高值,因备份组的优先级变成了最高值,所以无需收到别的vrrp节点的相同备份组的确认信息,就立即变成主状态。
47.本实施例中,根据vrrp节点的备份组中各主路由器及备份路由器实际负载和设备性能,然后通过调整各vrrp节点的备份组的状态来实现能者多劳的负载均衡方法。
48.参阅图2所示,是本发明较佳实施例之负载均衡方法的流程图。所述负载均衡方法应用于负载均衡装置10,可通过所述处理器30执行图1所示的模块101~106而实现。
49.步骤s200,获取网络中的多个虚拟路由冗余协议(virtual router redundancy protocol,vrrp)节点,在所述多个vrrp节点的各vrrp节点均设置监控线程,并定义预设时间间隔t。
50.时间间隔t根据需要进行设置,为了防止备份组状态频繁切换,这个时间段t可以设置得长一点,比如600秒/1200秒/1800秒为单位。
51.步骤s202,通过各vrrp节点的所述监控线程以所述预设时间间隔t为周期,周期性监控每个vrrp节点上备份组的各个路由器的状态及数量。其中,所述状态至少包括主状态及备份状态。例如,主状态a(例如,a1,a2,a3),备份状态b(例如,b1,b2,b3)。本实施例中,a1,a2,a3表示的是不同备份组的主状态,例如,a1表示第一备份组的主状态,a2表示第二备份组的主状态,a3表示第三备份组的主状态。
52.现有技术中,vrrp节点上各个路由器一共有三种状态,主状态(master),备份状态(backup)及初始状态(initialize)。本实施例中,vrrp节点上每个备份组包括多个路由器,每个备份组中只有一个路由器是主路由器,处于主状态,其他路由器是备份路由器,处于备份状态。
53.步骤s204,接收由所述外部处理单元从所述各vrrp节点筛选出的主状态最多的第一vrrp节点和备份状态最多的第二vrrp节点。
54.主状态最多的vrrp节点,意味着该vrrp节点的路由器负载较多,备份状态最多的vrrp节点,意味着该vrrp节点的路由器负载较少。
55.本实施例中,外部处理单元筛选出的主状态ax最多的第一vrrp节点和备份状态ay最多的第二vrrp节点。ax表示主状态的数量,ay表示备份状态的数量。例如,第一vrrp节点
含有的主状态最多,有ax个主状态。例如,第二vrrp节点含有的备份状态最多,有ay个备份状态。
56.本实施例中,在步骤s204之前还包括:通过所述监控线程监控每个备份组的主路由器在时间间隔t处理的平均数据量,各个备份组中每个主路由器的平均cpu使用率和平均内存使用率,及各个vrrp节点的cpu总使用率和内存总使用率。其中,每个备份组主路由器的平均cpu使用率和平均内存使用率,及各个vrrp节点的cpu总使用率和内存总使用率都可以通过监控vrrp节点直接获取。
57.本实施例中以三个备份组为例进行说明,包括备份组1,备份组2,备份组3,监控线程监控每个备份组的主路由器在时间间隔t处理的平均数据量c(例如,c1,c2,c3),每个备份组主路由器的平均cpu使用率d(例如,d1,d2,d3)和平均内存使用率e(例如,e1,e2,e3),及各个vrrp节点的cpu总使用率f(例如,f1,f2,f3)和内存总使用率g(例如,g1,g2,g3)。其中,平均数据量的单位可以为mbit/s或gbit/s或10gbit/s,本实施例并不具体限定。
58.进一步地,在步骤s204之前还包括:定义数据单位,将监控线程监控到的数据发送到外部处理单元,接收外部处理单元计算得到的每个vrrp节点的主路由器处理数据单位所花费的cpu使用率及内存使用率。
59.本实施例中,定义数据单位为h,可以为mbit/s或gbit/s或10gbit/s。外部处理单元计算得到的每个vrrp节点的主路由器处理数据单位h所花费的cpu使用率i(例如,i1,i2,i3)及内存使用率j(例如,j1,j2,j3)。具体地,i=d/(c/h),j=e/(c/h)。
60.本实施例中由外部处理单元计算得到的每个vrrp节点的主路由器处理数据单位所花费的cpu使用率及内存使用率,这样能够减少数据处理时造成的cpu使用率及内存使用率计算过程中造成的误差,同时能够减少负载。
61.步骤s206,计算让所述第一vrrp节点和所述第二vrrp节点的cpu总使用率或内存总使用率相近时所述第一vrrp节点需要减少或者所述第二vrrp节点需要增加的数据差值。
62.本实施例中,以过去时间间隔t的上述各数据为参考,计算出降低主状态最多的第一vrrp节点需要处理的数据量z和备份状态最多的所述第二vrrp节点需要增加处理相同的数据量z后,所述第一vrrp节点和所述第二vrrp节点的cpu总使用率或内存总使用率相近。
63.本实施例中,当处理数据单位h所花费的cpu使用率大于内存使用率时,根据公式一计算所述数据差值,所述公式一为:fx

z*ix=fy z*iy,结合上述公式ix=dx/(cx/h),iy=dy/(cy/h),推知公式一为:fx

z*dx/(cx/h)=fy z*dy/(cy/h),其中,fx表示为主状态最多的第一vrrp节点的x个主状态的cpu总使用率,fy表示为备份状态最多的第一vrrp节点的y个备份状态的cpu总使用率。
64.当处理数据单位所花费的cpu使用率大于内存使用率时,根据公式二计算所述数据差值,所述公式二为:fx

z*jx=fy z*jy,结合上述公式ix=dx/(cx/h),iy=dy/(cy/h),推知公式二为:fx

z*ex/(cx/h)=fy z*ey/(cy/h),其中,fx表示为主状态最多的第一vrrp节点的x个主状态的内存总使用率,fy表示为备份状态最多的第一vrrp节点的y个备份状态的内存总使用率。
65.步骤s208,统计所述各vrrp节点上备份组在所述时间间隔t处理的平均数据量之和,并计算所述数据差值和所述时间间隔t处理的平均数据量之和的比例。
66.步骤s210,当所述比例满足预设条件时,在对应的备份组生成vrrp节点状态切换
标记。
67.本实施例中,所述预设条件由开发人员进行设置,例如,当所述比例在预设的区间段范围内时,在对应的所述至少一个备份组生成vrrp节点状态切换标记。
68.步骤s212,根据所述vrrp节点状态切换标记,调整所述对应的备份组在各vrrp节点的优先级。
69.具体地,如果所述vrrp节点状态切换标记表示要把对应的vrrp节点上的备份组从主状态改变成备份状态,则把对应的vrrp节点的备份组优先级改成最低值。因备份组的优先级变成了最低值,所以无需等待别的vrrp节点相同备份组的确认信息,就立即变成备份状态。
70.如果所述vrrp节点状态切换标记表示要把对应的vrrp节点上的备份组从备份状态改变成主状态,则把对应的vrrp节点的备份组优先级改成最高值,因备份组的优先级变成了最高值,所以无需收到别的vrrp节点的相同备份组的确认信息,就立即变成主状态。
71.通过将上述方法应用于上述装置,实现了根据vrrp节点的备份组中各主路由器及备份路由器实际负载和设备性能,然后通过调整各vrrp节点的备份组的状态来实现能者多劳的负载均衡方法。
72.值得注意的是,以上实施例仅用以说明本发明的技术方案而非限制,尽管参照较佳实施例对本发明进行了详细说明,本领域的普通技术人员应当理解,可以对本发明的技术方案进行修改或等同替换,而不脱离本发明技术方案的精神和范围。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献