CN105959399B - 一种负载分配的方法和装置 - Google Patents
一种负载分配的方法和装置 Download PDFInfo
- Publication number
- CN105959399B CN105959399B CN201610437724.1A CN201610437724A CN105959399B CN 105959399 B CN105959399 B CN 105959399B CN 201610437724 A CN201610437724 A CN 201610437724A CN 105959399 B CN105959399 B CN 105959399B
- Authority
- CN
- China
- Prior art keywords
- virtual server
- server group
- encoding
- group
- decoding
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/1001—Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
- H04L67/1004—Server selection for load balancing
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/1001—Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
- H04L67/1004—Server selection for load balancing
- H04L67/1012—Server selection for load balancing based on compliance of requirements or conditions with available server resources
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/1001—Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
- H04L67/1004—Server selection for load balancing
- H04L67/1014—Server selection for load balancing based on the content of a request
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/50—Network services
- H04L67/56—Provisioning of proxy services
- H04L67/565—Conversion or adaptation of application format or content
Abstract
本发明公开了一种负载分配的方法和装置,属于计算机技术领域。所述方法包括:在目标会话建立后,所述编解码服务器接收预设时长内所述目标会话对应的报文,对接收到的报文进行编解码处理;所述编解码服务器确定所述预设时长内所述目标会话的第一平均报文处理时长;所述编解码服务器根据预先存储的平均报文处理时长与虚拟服务器组的对应关系,确定所述第一平均报文处理时长对应的所述目标虚拟服务器组;当接收到所述目标会话的后续报文时,所述编解码服务器将所述目标会话的后续报文分配给所述目标虚拟服务器组进行编解码处理。采用本发明,可以避免出现编解码算法复杂度较低的会话无法正常进行的情况。
Description
技术领域
本发明涉及互联网技术领域,特别涉及一种负载分配的方法和装置。
背景技术
随着NFV(Network Function Virtualization,网络功能虚拟化)技术的发展,NFV的应用越来越广泛,功能也越来越强大,其中,编解码功能是重要的功能之一。在用户通过终端进行通信的过程中,通信双方采用的编码算法通常不同,所以,发送方向NFV系统发送通信数据(如语音数据或视频数据)后,NFV系统需要对通信数据(如语音数据或视频数据)进行编解码处理,将通信数据转换为接收方可以识别的通信数据。
NFV系统中可以安装有多个应用程序,如用于进行编解码处理的虚拟服务器的应用程序,以及用于进行负载分配的呼叫控制器的应用程序。当两个终端建立通信连接(可称为会话)后,发送方可以将通信数据(如语音数据或视频数据)发送给呼叫控制器,该通信数据通常以报文的形式进行发送。呼叫控制器可以根据当前各虚拟服务器的利用率(如CPU占用率和各虚拟服务器对应的任务队列的长度),按照负载均衡的策略,将该会话的报文分配给当前利用率较低的虚拟服务器,该虚拟服务器则会对该会话的报文进行编解码处理。该虚拟服务器进行编解码处理后,可以将编解码处理后的通信数据发送给对应的接收方,以实现两个终端之间的数据通信。
在实现本发明的过程中,发明人发现现有技术至少存在以下问题:
在实际中,不同会话采用的编解码算法不同,编解码算法复杂度较高的会话(如视频会话),报文处理时长较长,编解码算法复杂度较低的会话(如语音会话),报文处理时长较短,因此,基于上述处理,虚拟服务器在逐个处理报文的过程中,会出现编解码算法复杂度较高的会话的报文,占用编解码算法复杂度较低的会话的报文的处理资源,导致编解码算法复杂度较低的会话无法正常进行的情况,例如,虚拟服务器当前处理视频会话的报文,由于处理时长较长,会导致任务队列中语音会话的报文延时过长,语音会话中断的情况。
发明内容
为了解决现有技术的问题,本发明实施例提供了一种负载分配的方法和装置。所述技术方案如下:
第一方面,提供了一种负载分配的方法,所述方法应用于编解码服务器,所述编解码服务器至少包括目标虚拟服务器组,所述方法包括:
在目标会话建立后,所述编解码服务器接收预设时长内所述目标会话对应的报文,对接收到的报文进行编解码处理;
所述编解码服务器确定所述预设时长内所述目标会话的第一平均报文处理时长;
所述编解码服务器根据预先存储的平均报文处理时长与虚拟服务器组的对应关系,确定所述第一平均报文处理时长对应的所述目标虚拟服务器组;
当接收到所述目标会话的后续报文时,所述编解码服务器将所述目标会话的后续报文分配给所述目标虚拟服务器组进行编解码处理。
编解码服务器中可以包括多个具有编解码功能的虚拟服务器组,技术人员可以预先在其中某一虚拟服务器组包含的虚拟服务器中,存储具有统计功能的代码,以使该虚拟服务器组具有统计功能,该虚拟服务器组可以称为统计虚拟服务器组。对于编解码服务器中的各虚拟服务器组,编解码服务器可以存储各虚拟服务器对应的组号,如1、2、3……N。其中,统计虚拟服务器组可以设置组号,或者,也可以不设置组号,由其他标识来唯一表示。对于统计虚拟服务器组设置组号的情况,为了便于处理,可以将最大的组号(比如N)作为统计虚拟服务器组的组号。呼叫控制器可以将统计虚拟服务器组作为对目标会话的报文进行初始编解码处理的虚拟服务组,将目标会话的报文分配给统计虚拟服务器组进行编解码处理。统计虚拟服务器组在对报文进行编解码处理的过程中,可以统计每个报文的处理时长,当达到预设时长时,统计虚拟服务器组可以根据预设时长内目标会话的每个报文的处理时长,计算平均报文处理时长(即第一平均报文处理时长)。其中,目标会话可以是任意会话。
统计虚拟服务器组计算出目标会话的第一平均报文处理时长之后,可以将第一平均报文处理时长发送给呼叫控制器,呼叫控制器中可以预先存储平均报文处理时长与虚拟服务器组的对应关系,然后可以查找第一平均报文处理时长对应的目标虚拟服务器组。需要说明的是,上述平均报文处理时长与虚拟服务器组的对应关系中,可以不包括统计虚拟服务器组。
呼叫控制器确定目标虚拟服务器组之后,将目标会话的报文分配给目标虚拟服务器组进行编解码处理,目标虚拟服务器组则可以接收到目标会话的报文,然后可以对报文进行编解码处理,将编解码处理后的报文发送给第二输入输出控制器,第二输入输出控制器则可以将编解码处理后的报文转发给接收方。
结合第一方面,在第一方面的第一种实现方式中,所述编解码服务器根据预先存储的平均报文处理时长与虚拟服务器组的对应关系,确定所述第一平均报文处理时长对应的目标虚拟服务器组,包括:
所述编解码服务器根据所述目标会话的第一平均报文处理时长,确定所述目标会话的报文处理时长的第一均方差;
所述编解码服务器根据预先存储的平均报文处理时长和虚拟服务器组的对应关系,确定所述第一平均报文处理时长对应的第一虚拟服务器组,根据预先存储的报文处理时长的均方差和虚拟服务器组的对应关系,确定所述第一均方差的对应的第二虚拟服务器组;
所述编解码服务器在所述第一虚拟服务器组和所述第二虚拟服务器组中,确定目标虚拟服务器组。
统计虚拟服务器组除了可以计算预设时长内目标会话的第一平均报文处理时长以外,还可以根据第一平均报文处理时长,计算目标会话的报文处理时长的均方差(即第一均方差)。统计虚拟服务器组计算出预设时长内目标会话的第一平均报文处理时长和第一均方差后,可以将第一平均报文处理时长和第一均方差发送给呼叫控制器,呼叫控制器可以根据预先存储的平均报文处理时长和虚拟服务器组的对应关系,确定第一平均报文处理时长对应的第一虚拟服务器组,还可以根据预先存储报文处理时长的均方差和虚拟服务器组的对应关系,确定第一均方差对应的第二虚拟服务器组。需要说明的是,上述报文处理时长的均方差和虚拟服务器组的对应关系中,可以不包括统计虚拟服务器组。
呼叫控制器确定第一虚拟服务器组和第二虚拟服务器组后,可以在第一虚拟服务器组和第二虚拟服务器组中,确定目标虚拟服务器组。呼叫控制器可以随机选取一个,作为目标虚拟服务器组,或者,也可以获取第一虚拟服务器组的组号,以及第二虚拟服务器组的组号,将组号较大的虚拟服务器组,作为目标虚拟服务器组。
结合第一方面的第一种实现方式,在第一方面的第二种实现方式中,所述编解码服务器根据预先存储的平均报文处理时长和虚拟服务器组的对应关系,确定所述第一平均报文处理时长对应的第一虚拟服务器组,根据预先存储的报文处理时长的均方差和虚拟服务器组的对应关系,确定所述第一均方差的对应的第二虚拟服务器组,包括:
所述编解码服务器确定预设统计周期内接收到的各会话的平均报文处理时长和报文处理时长的均方差,在所述各会话的平均报文处理时长中,确定最大的第二平均报文处理时长和最小的第三平均报文处理时长,在所述各会话的均方差中,确定最大的第二均方差,以及最小的第三均方差;
所述编解码服务器根据所述第一平均报文处理时长、所述第二平均报文处理时长、所述第三平均报文处理时长和预设的虚拟服务器组的数目,计算所述第一平均报文处理时长对应的第一虚拟服务器组的组号;
所述编解码服务器根据所述第一均方差、所述第二均方差、所述第三均方差和预设的虚拟服务器组的数目,计算所述第一均方差对应的第二虚拟服务器组的组号。
统计虚拟服务器组可以同时对多个会话的报文进行编解码处理,对于预设统计周期内接收到的任一会话的报文,统计服务器可以确定预设统计周期内该会话的每个报文的处理时长,并进行存储,进而计算预设统计周期内该会话的平均报文处理时长和报文处理时长的均方差。这样,统计虚拟服务器组可以计算出预设统计周期内接收到的每个会话对应的平均报文处理时长和均方差,然后将计算出的各会话的平均报文处理时长和均方差发送给呼叫控制器。呼叫控制器可以在各会话的平均报文处理时长中,确定最大的平均报文处理时长(可称为第二平均报文处理时长)和最小的平均报文处理时长(可称为第三平均报文处理时长),并且可以在各会话的均方差中,确定最大的均方差(可称为第二均方差),以及最小的均方差(可称为第三均方差)。呼叫控制器确定目标虚拟服务器组的具体算法可以如下:
记预设统计周期内,最小的平均报文处理时长为Tmin,最大的平均报文处理时长为Tmax,目标会话的平均报文处理时长为T,预设的虚拟服务器组的数目(包含统计虚拟服务器组)为N;
Xt=INT[((T-Tmin)/(Tmax-Tmin))*N-0.5]
其中,INT表示向下取整,Xt表示目标会话的平均报文处理时长对应的虚拟服务器组的组号。
记预设统计周期内,最小的均方差为Amin,最大的均方差为Amax,目标会话的均方差为A,预设的虚拟服务器组的数目(包含统计虚拟服务器组)为N;
Xa=INT[((A-Amin)/(Amax-Amin))*N-0.5]
其中,INT表示向下取整,Xa表示目标会话的均方差对应的虚拟服务器组的组号。
X=MAX(Xt,Xa)
其中,MAX表示取最大值,X表示计算出的虚拟服务器组的组号。
基于本算法,可以将算法复杂度较小(即平均报文处理时长较短且均方差较小)的报文,分配到组号较小的虚拟服务器组中,将算法复杂度较大(即平均报文处理时长较长或均方差较大)的报文,分配到组号较大的虚拟服务器组中。
结合第一方面的第一种实现方式,在第一方面的第三种实现方式中,所述编解码服务器在所述第一虚拟服务器组和所述第二虚拟服务器组中,确定目标虚拟服务器组,包括:
如果所述第一虚拟服务器组和所述第二虚拟服务器组中,最大的组号在预设的虚拟服务器组的组号范围内,则所述编解码服务器将所述第一虚拟服务器组和所述第二虚拟服务器组中,组号最大的虚拟服务器组,作为目标虚拟服务器组;
所述方法还包括:
如果所述第一虚拟服务器组和所述第二虚拟服务器组中,最大的组号小于所述组号范围内的最小组号,则所述编解码服务器将所述最小组号对应的虚拟服务器组,作为目标虚拟服务器组;
如果所述第一虚拟服务器组和所述第二虚拟服务器组中,最大的组号大于所述组号范围内的最大组号,则将所述最大组号对应的虚拟服务器组,作为目标虚拟服务器组。
其中,预设的虚拟服务器组的组号范围中,可以不包括统计虚拟服务器组的组号。例如,预设的虚拟服务器组的数目(包含统计虚拟服务器组)为N,其中,统计虚拟服务器组的组号为N,预设的虚拟服务器组的组号范围为1~N-1,相应的,组号范围内的最大的组号为N-1,组号范围内的最小的组号为1。
结合第一方面,在第一方面的第四种实现方式中,所述编解码服务器确定所述第一平均报文处理时长对应的目标虚拟服务器组之后,所述方法还包括:
所述编解码服务器获取所述目标虚拟服务器组的利用率,如果所述目标虚拟服务器组的利用率大于预设阈值,则获取与所述目标虚拟服务器组的组号相邻的虚拟服务器组的利用率,将利用率最低的虚拟服务器组重新确定为目标虚拟服务器组。
呼叫控制器计算出目标虚拟服务器组之后,可以获取目标虚拟服务器组的利用率,该利用率可以是目标虚拟服务器组中的虚拟服务器的平均利用率,具体可以包括CPU利用率、内存利用率等。呼叫控制器可以判断目标虚拟服务器组的利用率是否大于预设阈值,如果目标虚拟服务器组的利用率小于预设阈值,则可以向第一输入输出控制器和第二输入输出控制器发送对应目标会话的重新分配指令,进行后续处理。如果目标虚拟服务器组的利用率大于预设阈值,则呼叫控制器可以重新确定目标虚拟服务器组。呼叫控制器可以在虚拟服务器组中(不包括统计虚拟服务器组),获取与目标虚拟服务器组的组号相邻的虚拟服务器组的利用率,如果获取到的两个虚拟服务器组的利用率小于预设阈值,则可以在获取到的两个虚拟服务器组中,确定利用率最低的虚拟服务器组,将该虚拟服务器组作为目标虚拟服务器组,来对目标会话的后续报文进行编解码处理。如果获取到的两个虚拟服务器组中,存在某一虚拟服务器组的利用率不小于预设阈值,则可以获取与该虚拟服务器组组号相邻的虚拟服务器组进行判断。
第二方面,提供了一种负载分配的装置,所述装置包括处理器、收发器和存储器,其中:
所述收发器,用于在目标会话建立后,接收预设时长内所述目标会话对应的报文;
所述处理器,用于对接收到的报文进行编解码处理;
所述处理器,还用于确定所述预设时长内所述目标会话的第一平均报文处理时长;
所述处理器,还用于根据所述存储器预先存储的平均报文处理时长与虚拟服务器组的对应关系,确定所述第一平均报文处理时长对应的所述目标虚拟服务器组;
所述处理器,还用于当所述收发器接收到所述目标会话的后续报文时,将所述目标会话的后续报文分配给所述目标虚拟服务器组进行编解码处理。
结合第二方面,在第二方面的第一种实现方式中,所述处理器,还用于:
根据所述目标会话的第一平均报文处理时长,确定所述目标会话的报文处理时长的第一均方差;
根据预先存储的平均报文处理时长和虚拟服务器组的对应关系,确定所述第一平均报文处理时长对应的第一虚拟服务器组,根据预先存储的报文处理时长的均方差和虚拟服务器组的对应关系,确定所述第一均方差的对应的第二虚拟服务器组;
在所述第一虚拟服务器组和所述第二虚拟服务器组中,确定目标虚拟服务器组。
结合第二方面的第一种实现方式,在第二方面的第二种实现方式中,所述处理器,还用于:
确定预设统计周期内接收到的各会话的平均报文处理时长和报文处理时长的均方差,在所述各会话的平均报文处理时长中,确定最大的第二平均报文处理时长和最小的第三平均报文处理时长,在所述各会话的均方差中,确定最大的第二均方差,以及最小的第三均方差;
根据所述第一平均报文处理时长、所述第二平均报文处理时长、所述第三平均报文处理时长和预设的虚拟服务器组的数目,计算所述第一平均报文处理时长对应的第一虚拟服务器组的组号;
根据所述第一均方差、所述第二均方差、所述第三均方差和预设的虚拟服务器组的数目,计算所述第一均方差对应的第二虚拟服务器组的组号。
结合第二方面的第一种实现方式,在第二方面的第三种实现方式中,所述处理器,还用于:
如果所述第一虚拟服务器组和所述第二虚拟服务器组中,最大的组号在预设的虚拟服务器组的组号范围内,则将所述第一虚拟服务器组和所述第二虚拟服务器组中,组号最大的虚拟服务器组,作为目标虚拟服务器组;
所述处理器,还用于:
如果所述第一虚拟服务器组和所述第二虚拟服务器组中,最大的组号小于所述组号范围内的最小组号,则将所述最小组号对应的虚拟服务器组,作为目标虚拟服务器组;
如果所述第一虚拟服务器组和所述第二虚拟服务器组中,最大的组号大于所述组号范围内的最大组号,则将所述最大组号对应的虚拟服务器组,作为目标虚拟服务器组。
结合第二方面,在第二方面的第四种实现方式中,所述处理器,还用于:
获取所述目标虚拟服务器组的利用率,如果所述目标虚拟服务器组的利用率大于预设阈值,则获取与所述目标虚拟服务器组的组号相邻的虚拟服务器组的利用率,将利用率最低的虚拟服务器组重新确定为目标虚拟服务器组。
第三方面,提供了一种负载分配的装置,所述装置包括:
编解码模块,用于在目标会话建立后,接收预设时长内所述目标会话对应的报文,对接收到的报文进行编解码处理;
确定模块,用于确定所述预设时长内所述目标会话的第一平均报文处理时长;
所述确定模块,还用于根据预先存储的平均报文处理时长与虚拟服务器组的对应关系,确定所述第一平均报文处理时长对应的所述目标虚拟服务器组;
分配模块,用于当所述收发器接收到所述目标会话的后续报文时,将所述目标会话的后续报文分配给所述目标虚拟服务器组进行编解码处理。
结合第三方面,在第三方面的第一种实现方式中,所述确定模块,用于:
根据所述目标会话的第一平均报文处理时长,确定所述目标会话的报文处理时长的第一均方差;
根据预先存储的平均报文处理时长和虚拟服务器组的对应关系,确定所述第一平均报文处理时长对应的第一虚拟服务器组,根据预先存储的报文处理时长的均方差和虚拟服务器组的对应关系,确定所述第一均方差的对应的第二虚拟服务器组;
在所述第一虚拟服务器组和所述第二虚拟服务器组中,确定目标虚拟服务器组。
结合第三方面的第一种实现方式,在第三方面的第二种实现方式中,所述确定模块,用于:
确定预设统计周期内接收到的各会话的平均报文处理时长和报文处理时长的均方差,在所述各会话的平均报文处理时长中,确定最大的第二平均报文处理时长和最小的第三平均报文处理时长,在所述各会话的均方差中,确定最大的第二均方差,以及最小的第三均方差;
根据所述第一平均报文处理时长、所述第二平均报文处理时长、所述第三平均报文处理时长和预设的虚拟服务器组的数目,计算所述第一平均报文处理时长对应的第一虚拟服务器组的组号;
根据所述第一均方差、所述第二均方差、所述第三均方差和预设的虚拟服务器组的数目,计算所述第一均方差对应的第二虚拟服务器组的组号。
结合第三方面的第一种实现方式,在第三方面的第三种实现方式中,所述确定模块,用于:
如果所述第一虚拟服务器组和所述第二虚拟服务器组中,最大的组号在预设的虚拟服务器组的组号范围内,则将所述第一虚拟服务器组和所述第二虚拟服务器组中,组号最大的虚拟服务器组,作为目标虚拟服务器组;
所述确定模块,还用于:
如果所述第一虚拟服务器组和所述第二虚拟服务器组中,最大的组号小于所述组号范围内的最小组号,则将所述最小组号对应的虚拟服务器组,作为目标虚拟服务器组;
如果所述第一虚拟服务器组和所述第二虚拟服务器组中,最大的组号大于所述组号范围内的最大组号,则将所述最大组号对应的虚拟服务器组,作为目标虚拟服务器组。
结合第三方面,在第三方面的第四种实现方式中,所述确定模块,还用于:
获取所述目标虚拟服务器组的利用率,如果所述目标虚拟服务器组的利用率大于预设阈值,则获取与所述目标虚拟服务器组的组号相邻的虚拟服务器组的利用率,将利用率最低的虚拟服务器组重新确定为目标虚拟服务器组。
第四方面,提供了一种负载分配的方法,所述方法应用于编解码服务器,所述编解码服务器至少包括目标虚拟服务器组,所述方法包括:
在目标会话建立后,所述编解码服务器确定所述目标会话对应的编解码类型;
所述编解码服务器根据预先存储的编解码类型与虚拟服务器组的对应关系,确定所述目标会话的编解码类型对应的目标虚拟服务器组;
所述编解码服务器将所述目标会话的报文分配给所述目标虚拟服务器组进行编解码处理。
进行通信的两个终端在进行通信之前,可以向Proxy server(即代理服务器)发送会话描述协议,会话描述协议中可以包括终端使用的编解码类型。Proxy server可以将该会话描述协议转发给呼叫控制器,呼叫控制器则可以根据发送方对应的编解码类型,以及接收方对应的编解码类型,确定目标会话对应的编解码类型。呼叫控制器可以将发送方对应的编解码类型,作为目标会话对应的编解码类型,或者,可以将接收方对应的编解码类型,作为目标会话对应的编解码类型。
呼叫控制器可以预先存储编解码类型与虚拟服务器组的对应关系,呼叫控制器确定目标会话对应的编解码类型之后,可以在该对应关系中,查找目标会话的编解码类型对应的虚拟服务器组,即目标虚拟服务器组。呼叫控制器可以将目标会话的报文分配给目标虚拟服务器组进行编解码处理,目标虚拟服务器组则可以接收到目标会话的报文,然后可以对报文进行编解码处理,将编解码处理后的报文发送给第二输入输出控制器,第二输入输出控制器则可以将编解码处理后的报文转发给接收方。
结合第四方面,在第四方面的第一种实现方式中,所述编解码服务器根据预先存储的编解码类型与虚拟服务器组的对应关系,确定所述目标会话的编解码类型对应的目标虚拟服务器组,包括:
所述编解码服务器根据所述目标会话对应的编解码类型,确定所述目标会话对应的第一编解码复杂度;
所述编解码服务器根据预先存储的编解码复杂度与虚拟服务器组的对应关系,确定所述第一编解码复杂度对应的目标虚拟服务器组。
在实际中,可以对编解码类型的复杂程度进行量化,得到编解码类型的复杂度,具体的量化方式可以采用现有技术中的量化方式。呼叫控制器确定目标会话的编解码类型后,可以获取该编解码类型的复杂度,然后可以将该编解码类型的复杂度,作为目标会话对应的第一编解码复杂度。
结合第四方面的第一种实现方式,在第四方面的第二种实现方式中,所述编解码服务器根据所述目标会话对应的编解码类型,确定所述目标会话对应的第一编解码复杂度,包括:
所述编解码服务器获取预先存储的所述目标会话的编解码类型的复杂度,并确定所述目标会话对应的分辨率,以及预先存储的所述分辨率对应的复杂度;
所述编解码服务器确定所述目标会话的编解码类型的复杂度,与所述目标会话的分辨率对应的复杂度的乘积,得到所述目标会话对应的第一编解码复杂度。
上述会话描述协议中除了可以包括终端使用的编解码类型以外,还可以包括终端的分辨率。Proxy server可以将该会话描述协议转发给呼叫控制器,呼叫控制器则可以获取其中的分辨率,进而可以根据发送方对应的分辨率,以及接收方对应的分辨率,确定目标会话对应的分辨率。呼叫控制器可以将发送方对应的分辨率,作为目标会话对应的分辨率,或者,可以将接收方对应的分辨率,作为目标会话对应的分辨率。相应的,可以对分辨率的复杂程度进行量化,得到各分辨率的复杂度,具体的量化方式也可以采用现有技术中的量化方式。
呼叫控制器中可以预先存储各编解码类型对应的复杂度,以及各分辨率对应的复杂度。呼叫控制器获取目标会话的编解码类型和分辨率后,可以确定目标会话的编解码类型的复杂度,以及目标会话的分辨率的复杂度,进而可以计算二者的乘积,得到目标会话对应的第一编解码复杂度。
结合第四方面的第一种实现方式,在第四方面的第三种实现方式中,所述编解码服务器根据预先存储的编解码复杂度与虚拟服务器组的对应关系,确定所述第一编解码复杂度对应的目标虚拟服务器组,包括:
所述编解码服务器根据预设统计周期内接收到的各会话的编解码类型,确定所述各会话对应的编解码复杂度,在所述各会话对应的编解码复杂度中,确定最大的第二编解码复杂度和最小的第三编解码复杂度;
所述编解码服务器根据所述第一编解码复杂度、所述第二编解码复杂度、所述第三编解码复杂度和预设的虚拟服务器组的数目,确定所述第一编解码复杂度对应的目标虚拟服务器组。
呼叫控制器可以根据预设统计周期内,接收到的各会话对应的会话描述协议,确定预设统计周期内每个会话的对应的编解码复杂度,并进行存储。呼叫控制器可以在各会话对应的编解码复杂度中,确定最大的第二编解码复杂度和最小的第三编解码复杂度,呼叫控制器确定目标虚拟服务器组的具体算法可以如下:
记预设统计周期内,最小的编解码复杂度为Mmin,最大的编解码复杂度为Mmax,目标会话的编解码复杂度为M,预设的虚拟服务器组的数目为N,其中,虚拟服务器组的组号为1~N;
X=INT[((M-Mmin)/(Mmax-Mmin))*N-0.5]
其中,INT表示向下取整,X表示计算出的虚拟服务器组的组号。
如果计算出的组号在预设的虚拟服务器组的组号范围(即1~N)内,则将计算出的组号对应的虚拟服务器组,作为目标虚拟服务器组;如果计算出的组号小于组号范围内的最小组号,则将最小组号对应的虚拟服务器组,作为目标虚拟服务器组;如果计算出的组号大于组号范围内的最大组号,则将最大组号对应的虚拟服务器组,作为目标虚拟服务器组。
第五方面,提供了一种负载分配的装置,其特征在于,所述装置包括处理器、收发器和存储器,其中:
所述处理器,用于在目标会话建立后,确定所述目标会话对应的编解码类型;
所述处理器,还用于根据所述存储器预先存储的编解码类型与虚拟服务器组的对应关系,确定所述目标会话的编解码类型对应的目标虚拟服务器组;
所述处理器,还用于将所述收发器接收到的目标会话的报文分配给所述目标虚拟服务器组进行编解码处理。
结合第五方面,在第五方面的第一种实现方式中,所述处理器,还用于:
根据所述目标会话对应的编解码类型,确定所述目标会话对应的第一编解码复杂度;
根据预先存储的编解码复杂度与虚拟服务器组的对应关系,确定所述第一编解码复杂度对应的目标虚拟服务器组。
结合第五方面的第一种实现方式,在第五方面的第二种实现方式中,所述处理器,还用于:
获取预先存储的所述目标会话的编解码类型的复杂度,并确定所述目标会话对应的分辨率,以及预先存储的所述分辨率对应的复杂度;
确定所述目标会话的编解码类型的复杂度,与所述目标会话的分辨率对应的复杂度的乘积,得到所述目标会话对应的第一编解码复杂度。
结合第五方面的第一种实现方式,在第五方面的第三种实现方式中,所述处理器,还用于:
根据预设统计周期内接收到的各会话的编解码类型,确定所述各会话对应的编解码复杂度,在所述各会话对应的编解码复杂度中,确定最大的第二编解码复杂度和最小的第三编解码复杂度;
根据所述第一编解码复杂度、所述第二编解码复杂度、所述第三编解码复杂度和预设的虚拟服务器组的数目,确定所述第一编解码复杂度对应的目标虚拟服务器组。
第六方面,提供了一种负载分配的装置,所述装置包括:
确定模块,用于在目标会话建立后,确定所述目标会话对应的编解码类型;
所述确定模块,还用于根据预先存储的编解码类型与虚拟服务器组的对应关系,确定所述目标会话的编解码类型对应的目标虚拟服务器组;
分配模块,用于将接收到的目标会话的报文分配给所述目标虚拟服务器组进行编解码处理。
结合第六方面,在第六方面的第一种实现方式中,所述确定模块,用于:
根据所述目标会话对应的编解码类型,确定所述目标会话对应的第一编解码复杂度;
根据预先存储的编解码复杂度与虚拟服务器组的对应关系,确定所述第一编解码复杂度对应的目标虚拟服务器组。
结合第六方面的第一种实现方式,在第六方面的第二种实现方式中,所述确定模块,用于:
获取预先存储的所述目标会话的编解码类型的复杂度,并确定所述目标会话对应的分辨率,以及预先存储的所述分辨率对应的复杂度;
确定所述目标会话的编解码类型的复杂度,与所述目标会话的分辨率对应的复杂度的乘积,得到所述目标会话对应的第一编解码复杂度。
结合第六方面的第一种实现方式,在第六方面的第三种实现方式中,所述确定模块,用于:
根据预设统计周期内接收到的各会话的编解码类型,确定所述各会话对应的编解码复杂度,在所述各会话对应的编解码复杂度中,确定最大的第二编解码复杂度和最小的第三编解码复杂度;
根据所述第一编解码复杂度、所述第二编解码复杂度、所述第三编解码复杂度和预设的虚拟服务器组的数目,确定所述第一编解码复杂度对应的目标虚拟服务器组。
本发明实施例提供的技术方案带来的有益效果是:
本发明实施例中,在目标会话建立后,可以计算预设时长内目标会话的第一平均报文处理时长,根据预先存储的平均报文处理时长与虚拟服务器组的对应关系,确定第一平均报文处理时长对应的目标虚拟服务器组,进而可以在接收到目标会话的后续报文时,将目标会话的后续报文分配给目标虚拟服务器组,由目标虚拟服务器组对目标会话的后续报文进行编解码处理,这样,可以将平均报文处理时长比较接近的会话,分配到一个虚拟服务器组中进行处理,因此,在虚拟服务器在处理报文的过程中,可以避免出现编解码算法复杂度较高的会话的报文,占用编解码算法复杂度较低的会话的报文的处理资源,导致编解码算法复杂度较低的会话无法正常进行的情况。
附图说明
为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本发明实施例提供的一种系统框架图;
图2是本发明实施例提供的一种编解码服务器的结构示意图;
图3是本发明实施例提供的一种负载分配的方法流程图;
图4是本发明实施例提供的一种系统框架图;
图5是本发明实施例提供的一种负载分配的方法流程图;
图6是本发明实施例提供的一种负载分配的装置结构示意图;
图7是本发明实施例提供的一种负载分配的方法流程图;
图8是本发明实施例提供的一种系统框架图;
图9是本发明实施例提供的一种负载分配的装置结构示意图。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明实施方式作进一步地详细描述。
本发明实施例提供了一种负载分配的方法,该方法的执行主体为具有编解码功能的编解码服务器。该编解码服务器可以是一个服务器,也可以是由多个服器组成的服务器群。其中,多个服务器中的每个服务器可以由NFV系统中的应用程序来实现。NFV系统中可以安装有多个应用程序,如用于进行编解码处理的虚拟服务器的应用程序、用于进行负载分配的呼叫控制器的应用程序,以及用于进行报文收发的输入输出控制器等,在实际中,通常会将NFV系统中的多个虚拟服务器划分成若干虚拟服务器组,来进行编解码处理。其中,各虚拟服务器组包含的虚拟服务器的数目可以由技术人员来进行设定,每个虚拟服务器组的包含的虚拟服务器的数目可以是相同的,也可以是不同的,本实施例不做限定。本实施例以编解码服务器包括呼叫控制器、输入输出控制器和至少一个虚拟服务器组为例进行说明,其他情况与之类似,不再赘述。如图1所示,为本发明实施例的系统框架图,其中包括发送方、接收方、呼叫控制器、至少一个VM(Virtual Manufacturing,虚拟服务器)和至少一个输入输出控制器。
在实际中,两个终端之间可以通过Proxy server(即代理服务器)建立通信连接(可称为会话)。在建立通信连接的过程中,主叫终端可以向Proxy server发送通信请求,该通信请求中可以携带有主叫终端的标识,以及被叫终端的标识,该标识可以包括IP(Internet Protocol,网协议)地址和端口信息等。Proxy server可以将该通信请求转发给被叫终端,被叫终端接受该通信请求(如接通视频聊天)后,会向Proxy server发送确认消息,以使Proxy serve完成建立主叫终端和被叫终端之间的会话。
Proxy server还可以将接收到的主叫终端的标识、被叫终端的标识发送给呼叫控制器,呼叫控制器可以为该会话分配进行编解码处理的虚拟服务器组,以及接收该会话的通信消息(即报文)的输入输出控制器。另外,呼叫控制器可以分别将主叫终端对应的报文的目标发送地址,以及被叫终端对应的报文的目标发送地址,修改为该对应的输入输出控制器的IP地址,并通知主叫终端和被叫终端。这样,这两个终端后续进行通信的过程中,可以将报文发送给对应的输入输出控制器。需要说明的是,主叫终端对应的输入输出控制器(可称为第一输入输出控制器),与被叫终端对应的输入输出控制器(可称为第二输入输出控制器)可以是相同的,也可以是不同的,本实施例以二者不同为例进行说明,二者相同的情况与之类似,不再赘述。另外,呼叫控制器还可以将该会话对应的虚拟服务器组的IP地址和端口信息,以及主叫终端的IP地址和端口信息,发送给第一输入输出控制器进行存储,将该会话对应的虚拟服务器组的IP地址和端口信息,以及被叫终端的IP地址和端口信息,发送给第二输入输出控制器进行存储。
在进行通信的过程中,主叫终端和被叫终端之间可以互相发送报文。其中,发送报文的终端可以称为发送方,接收报文的终端可以称为接收方。本实施例以呼叫终端为发送方、被叫终端为接收方为例进行说明。发送方可以根据第一输入输出控制器的IP地址和端口信息,将需要传输的通信消息发送给第一输入输出控制器,第一输入输出控制器接收到报文后,可以将该报文发送给对应的虚拟服务器组,以使该虚拟服务器组对该报文进行编解码处理,然后,虚拟服务器组将编码后的报文发送给第二输入输出控制器,第二输入输出控制器可以根据预先存储的接收方的IP地址和端口信息,将编解码处理后的报文转发给接收方。
本发明主要关注于为会话分配虚拟服务器组的方式,通过本发明,可以实现将平均报文处理时长比较接近的会话,分配到一个虚拟服务器组中进行处理,从而可以在虚拟服务器在处理报文的过程中,避免出现编解码算法复杂度较高的会话的报文,占用编解码算法复杂度较低的会话的报文的处理资源,导致编解码算法复杂度较低的会话无法正常进行的情况。
编解码服务器可以通过图2中的计算设备实现,该计算设备的组织结构示意图如图2所示,该计算设备可以包括处理器210、收发器220、存储器230,收发器220和存储器230可以分别与处理器210连接,如图2所示。收发器220可以用于接收消息或数据,收发器220可以包括但不限于天线、至少一个放大器、调谐器、一个或多个振荡器、耦合器、LNA(LowNoise Amplifier,低噪声放大器)、双工器等。收发器220可以收发模拟信号,或数字信号,并可以将接收到的数字信号发送给处理器210,以使处理器210可以对接收到的数据进行处理。处理器210可以是该计算设备的控制中心,利用各种接口和线路连接整个该计算设备的各个部分,如收发器220和存储器230等。可选的,处理器210可以包括一个或多个处理单元;优选的,处理器210可集成应用处理器和调制解调处理器,其中,应用处理器主要处理操作系统,调制解调处理器主要处理无线通信。处理器210还可以是数字信号处理器、专用集成电路、现场可编程门阵列或者其他可编程逻辑器件等。该计算设备还可以包括存储器230,存储器230可以包括易失性存储器(英文:volatile memory),例如随机存取存储器(英文:random-access memory,缩写:RAM);存储器也可以包括非易失性存储器(英文:non-volatile memory),例如只读存储器(英文:read-only memory,缩写:ROM),快闪存储器(英文:flash memory),硬盘(英文:hard disk drive,缩写:HDD)或固态硬盘(英文:solidstate drive,缩写:SSD);存储器230还可以包括上述种类的存储器的组合。在通过软件来实现本申请提供的技术方案时,用于实现本申请图3提供的负载分配的程序代码保存在存储器230中,并由处理器210和收发器220来执行。
如图3所示,该方法的处理流程可以包括如下的步骤:
步骤301,在目标会话建立后,编解码服务器接收预设时长内目标会话对应的报文,对接收到的报文进行编解码处理。
在实施中,编解码服务器中可以包括多个具有编解码功能的虚拟服务器组,技术人员可以预先在其中某一虚拟服务器组包含的虚拟服务器中,存储具有统计功能的代码,以使该虚拟服务器组具有统计功能,为了便于描述,该虚拟服务器组可以称为统计虚拟服务器组。呼叫控制器可以将统计虚拟服务器组作为对目标会话的报文进行初始编解码处理的虚拟服务组,将目标会话的报文分配给统计虚拟服务器组进行编解码处理。具体的处理过程可以如下:
呼叫控制器可以将统计虚拟服务器组的IP地址和端口信息,以及发送方的IP地址和端口信息,发送给第一输入输出控制器,将统计虚拟服务器组的IP地址和端口信息,以及接收方的IP地址和端口信息,发送给第二输入输出控制器。第一输入输出控制器可以在接收到目标会话的报文后,可以根据预先存储的统计虚拟服务器组的IP地址和端口信息,将该报文发送给统计虚拟服务器组,统计虚拟服务器组接收到目标会话的报文后,可以对报文进行编解码处理,将编解码处理后的报文发送给第二输入输出控制器,第二输入输出控制器可以根据预先存储的接收方的IP地址和端口信息,将编解码处理后的报文转发给接收方。另外,统计虚拟服务器组第一次接收到目标会话对应的报文时,可以开始计时,当达到预设时长后,可以执行步骤302。其中,目标会话可以是任意会话。
步骤302,编解码服务器确定预设时长内目标会话的第一平均报文处理时长。
在实施中,统计虚拟服务器组在对报文进行编解码处理的过程中,可以统计每个报文的处理时长,当达到预设时长时,统计虚拟服务器组可以根据目标会话的每个报文的处理时长,计算平均报文处理时长(即第一平均报文处理时长)。例如,预设时长为3S,统计虚拟服务器组在3S内共处理了目标会话的5个报文,各报文的处理时长依次为:0.6S、0.5S、0.5S、0.6S、0.7S,则第一平均报文处理时长为(0.6S+0.5S+0.5S+0.6S+0.7S)/5=0.58S。
步骤303,编解码服务器根据预先存储的平均报文处理时长与虚拟服务器组的对应关系,确定第一平均报文处理时长对应的目标虚拟服务器组。
在实施中,对于编解码服务器中的各虚拟服务器组,编解码服务器可以存储各虚拟服务器对应的组号,如1、2、3……。其中,统计虚拟服务器组可以设置组号,或者,也可以不设置组号,由其他标识来唯一表示。对于统计虚拟服务器组设置组号的情况,为了便于处理,可以将最大的组号作为统计虚拟服务器组的组号。例如,编解码服务器包括N个虚拟服务器组,可以将N作为统计虚拟服务器组的组号,其他虚拟服务器组的组号为1~N-1。如图4所示,为实施例提供的另一系统框架图,包括第一输入输出控制器、第二输入输出控制器、呼叫控制器、发送方、接收方和N个虚拟服务器组,即VM1~VM N,其中,VM N为统计虚拟服务器组。
统计虚拟服务器组计算出目标会话的第一平均报文处理时长之后,可以将第一平均报文处理时长发送给呼叫控制器,呼叫控制器中可以预先存储平均报文处理时长与虚拟服务器组的对应关系,然后可以查找第一平均报文处理时长对应的目标虚拟服务器组。例如,平均报文处理时长可以是一个时长范围,平均报文处理时长0.3S~0.4S,对应组号为1的虚拟服务器组;平均报文处理时长0.4S~0.5S,对应组号为2的虚拟服务器组;平均报文处理时长0.5S~0.6S,对应组号为3的虚拟服务器组;则呼叫控制器可以确定,0.58S对应组号为3的虚拟服务器组。需要说明的是,上述平均报文处理时长与虚拟服务器组的对应关系中,可以不包括统计虚拟服务器组。
可选的,可以根据目标会话对应的平均报文处理时长和均方差,来确定目标虚拟服务器组,相应的,步骤303的处理过程可以如下:编解码服务器根据目标会话的第一平均报文处理时长,确定目标会话的报文处理时长的第一均方差;编解码服务器根据预先存储的平均报文处理时长和虚拟服务器组的对应关系,确定第一平均报文处理时长对应的第一虚拟服务器组,根据预先存储的报文处理时长的均方差和虚拟服务器组的对应关系,确定第一均方差的对应的第二虚拟服务器组;编解码服务器在第一虚拟服务器组和第二虚拟服务器组中,确定目标虚拟服务器组。
在实施中,统计虚拟服务器组除了可以计算预设时长内目标会话的第一平均报文处理时长以外,还可以根据第一平均报文处理时长,计算目标会话的报文处理时长的均方差(即第一均方差),相应的计算公式可以如下:
A=[(x1-x)2+(x2-x)2+…+(xn-x)2]1/2
其中,A为第一均方差,x为第一平均报文处理时长,n为统计虚拟服务器组在预设时长内接收到的目标会话的报文数量,xn为第n个报文的处理时长。
统计虚拟服务器组计算出预设时长内目标会话的第一平均报文处理时长和第一均方差后,可以将第一平均报文处理时长和第一均方差发送给呼叫控制器,呼叫控制器可以根据预先存储的平均报文处理时长和虚拟服务器组的对应关系,确定第一平均报文处理时长对应的第一虚拟服务器组,具体的处理方式与上述处理过程类似,不再赘述,
呼叫控制器中还可以预先存储报文处理时长的均方差和虚拟服务器组的对应关系,呼叫控制器可以在该对应关系中,查找第一均方差对应的第二虚拟服务器组。例如,均方差可以是一个数值范围,均方差0~0.5,对应组号为1的虚拟服务器组;均方差0.5~~1,对应组号为2的虚拟服务器组;均方差1~1.5,对应组号为3的虚拟服务器组。需要说明的是,上述报文处理时长的均方差和虚拟服务器组的对应关系中,可以不包括统计虚拟服务器组。
呼叫控制器确定第一虚拟服务器组和第二虚拟服务器组后,可以在第一虚拟服务器组和第二虚拟服务器组中,确定目标虚拟服务器组。例如,可以随机选取一个,作为目标虚拟服务器组,或者,也可以获取第一虚拟服务器组的组号,以及第二虚拟服务器组的组号,将组号较大的虚拟服务器组,作为目标虚拟服务器组。例如,第一虚拟服务器组的组号为5,第二虚拟服务器组的组号为3,则可以将第一虚拟服务器组作为目标虚拟服务器组。
可选的,可以基于其他会话的报文处理时间,来确定目标会话对应的虚拟服务器组,相应的处理过程可以如下:编解码服务器确定预设统计周期内接收到的各会话的平均报文处理时长和报文处理时长的均方差,在各会话的平均报文处理时长中,确定最大的第二平均报文处理时长和最小的第三平均报文处理时长,在各会话的均方差中,确定最大的第二均方差,以及最小的第三均方差;编解码服务器根据第一平均报文处理时长、第二平均报文处理时长、第三平均报文处理时长和预设的虚拟服务器组的数目,计算第一平均报文处理时长对应的第一虚拟服务器组的组号;编解码服务器根据第一均方差、第二均方差、第三均方差和预设的虚拟服务器组的数目,计算第一均方差对应的第二虚拟服务器组的组号。
在实施中,统计虚拟服务器组可以同时对多个会话的报文进行编解码处理,对于预设统计周期内接收到的任一会话的报文,统计服务器可以确定预设统计周期内该会话的每个报文的处理时长,并进行存储,进而计算预设统计周期内该会话的平均报文处理时长和报文处理时长的均方差。这样,统计虚拟服务器组可以计算出预设统计周期内接收到的每个会话对应的平均报文处理时长和均方差,然后可以将计算出的各会话的平均报文处理时长和均方差发送给呼叫控制器。呼叫控制器可以在各会话的平均报文处理时长中,确定最大的平均报文处理时长(可称为第二平均报文处理时长)和最小的平均报文处理时长(可称为第三平均报文处理时长),并且可以在各会话的均方差中,确定最大的均方差(可称为第二均方差),以及最小的均方差(可称为第三均方差)。呼叫控制器可以根据第一平均报文处理时长、第二平均报文处理时长、第三平均报文处理时长和预设的虚拟服务器组的数目,计算第一平均报文处理时长对应的第一虚拟服务器组的组号,并且可以根据第一均方差、第二均方差、第三均方差和预设的虚拟服务器组的数目,计算第一均方差对应的第二虚拟服务器组的组号,进而在第一虚拟服务器组和第二虚拟服务器组中,确定目标虚拟服务器组。具体的算法可以如下:
记预设统计周期内,最小的平均报文处理时长为Tmin,最大的平均报文处理时长为Tmax,目标会话的平均报文处理时长为T,预设的虚拟服务器组的数目(包含统计虚拟服务器组)为N;
Xt=INT[((T-Tmin)/(Tmax-Tmin))*N-0.5]
其中,INT表示向下取整,Xt表示目标会话的平均报文处理时长对应的虚拟服务器组的组号。
记预设统计周期内,最小的均方差为Amin,最大的均方差为Amax,目标会话的均方差为A,预设的虚拟服务器组的数目(包含统计虚拟服务器组)为N;
Xa=INT[((A-Amin)/(Amax-Amin))*N-0.5]
其中,INT表示向下取整,Xa表示目标会话的均方差对应的虚拟服务器组的组号。
X=MAX(Xt,Xa)
其中,MAX表示取最大值,X表示计算出的虚拟服务器组的组号。
基于本算法,可以将算法复杂度较小(即平均报文处理时长较短且均方差较小)的报文,分配到组号较小的虚拟服务器组中,将算法复杂度较大(即平均报文处理时长较长或均方差较大)的报文,分配到组号较大的虚拟服务器组中。
可选的,对于计算出的组号大于或小于预设的虚拟服务器组的组号范围的情况,相应的处理过程可以如下:如果第一虚拟服务器组和第二虚拟服务器组中,最大的组号在预设的虚拟服务器组的组号范围内,则编解码服务器将第一虚拟服务器组和第二虚拟服务器组中,组号最大的虚拟服务器组,作为目标虚拟服务器组;如果第一虚拟服务器组和第二虚拟服务器组中,最大的组号小于组号范围内的最小组号,则编解码服务器将最小组号对应的虚拟服务器组,作为目标虚拟服务器组;如果第一虚拟服务器组和第二虚拟服务器组中,最大的组号大于组号范围内的最大组号,则将最大组号对应的虚拟服务器组,作为目标虚拟服务器组。
本实施例中,预设的虚拟服务器组的组号范围中,不包括统计虚拟服务器组的组号。例如,预设的虚拟服务器组的数目(包含统计虚拟服务器组)为N,其中,统计虚拟服务器组的组号为N,预设的虚拟服务器组的组号范围为1~N-1,相应的,组号范围内的最大的组号为N-1,组号范围内的最小的组号为1。
基于上述方法,计算结果可能会小于1,或者大于N-1,所以,呼叫控制器确定第一虚拟服务器组和第二虚拟服务器组中的最大的组号之后,可以先判断计算出的组号是否在预设的虚拟服务器组的组号范围内。如果该组号在预设的虚拟服务器组的组号范围内,则呼叫控制器将该组号对应的虚拟服务器组作为目标虚拟服务器组;如果计算出的组号小于组号范围内的最小组号,则呼叫控制器将组号范围内的最小组号对应的虚拟服务器组,作为目标虚拟服务器组;如果计算出的组号大于组号范围内的最大组号,则呼叫控制器将组号范围内的最大组号对应的虚拟服务器组,作为目标虚拟服务器组。
例如,预设的组号范围是1~6,如果计算出的组号为2,则将组号为2的虚拟服务器组,作为目标虚拟服务器组;如果计算出的组号为-2,则将组号为1的虚拟服务器组,作为目标虚拟服务器组;如果计算出的组号为9,则将组号为6的虚拟服务器组,作为目标虚拟服务器组。
步骤304,当接收到目标会话的后续报文时,编解码服务器将目标会话的后续报文分配给目标虚拟服务器组进行编解码处理。
在实施中,呼叫控制器确定目标虚拟服务器组之后,可以向第一输入输出控制器发送对应目标会话的重新分配指令,该重新分配指令中可以携带有目标虚拟服务器组的IP地址和端口信息,第一输入输出控制器可以建立目标虚拟服务器组与目标会话的对应关系。呼叫控制器还可以向第二输入输出控制器发送对应目标会话的重新分配指令,该重新分配指令中可以携带有目标虚拟服务器组的IP地址和端口信息,第二输入输出控制器也可以建立目标虚拟服务器组与目标会话的对应关系,以便进行后续处理。当第一输入输出控制器接收到目标会话的后续报文时,可以根据存储的目标虚拟服务器组与目标会话的对应关系,将该报文发送给目标虚拟服务器组,目标虚拟服务器组接收到目标会话的报文后,可以对报文进行编解码处理,将编解码处理后的报文发送给第二输入输出控制器,第二输入输出控制器则可以将编解码处理后的报文转发给接收方。
可选的,可以根据目标虚拟服务器组的利用率,来判定是否将目标会话分配给目标虚拟服务器组进行处理,相应的处理过程可以如下:编解码服务器获取目标虚拟服务器组的利用率,如果目标虚拟服务器组的利用率大于预设阈值,则获取与目标虚拟服务器组的组号相邻的虚拟服务器组的利用率,将利用率最低的虚拟服务器组重新确定为目标虚拟服务器组。
在实施中,呼叫控制器按照上述方式计算出目标虚拟服务器组之后,可以获取目标虚拟服务器组的利用率,该利用率可以是目标虚拟服务器组中的虚拟服务器的平均利用率,具体可以包括CPU利用率、内存利用率等。呼叫控制器可以判断目标虚拟服务器组的利用率是否大于预设阈值,如果目标虚拟服务器组的利用率小于预设阈值,则可以向第一输入输出控制器和第二输入输出控制器发送对应目标会话的重新分配指令,进行后续处理。如果目标虚拟服务器组的利用率大于预设阈值,则呼叫控制器可以重新确定目标虚拟服务器组。呼叫控制器可以在虚拟服务器组中(不包括统计虚拟服务器组),获取与目标虚拟服务器组的组号相邻的虚拟服务器组的利用率,如果获取到的两个虚拟服务器组的利用率小于预设阈值,则可以在获取到的两个虚拟服务器组中,确定利用率最低的虚拟服务器组,将该虚拟服务器组作为目标虚拟服务器组,来对目标会话的后续报文进行编解码处理。如果获取到的两个虚拟服务器组中,存在某一虚拟服务器组的利用率不小于预设阈值,则可以获取与该虚拟服务器组组号相邻的虚拟服务器组进行判断。
本实施例还提供了一种负载分配的方法,该方法的一种应用实例可以包括以下几个步骤,该处理过程中,以虚拟服务器划分为VM 1~VM N这N个虚拟服务器组为例进行说明,其中,VM N为上述统计虚拟服务器组,VM 2为确定出的目标虚拟服务器组。如图5所示,该方法的处理流程可以包括如下的步骤:
步骤501,建立目标会话。
建立目标会话的处理过程可以参照现有技术中建立会话的处理过程。
步骤502,呼叫控制器将目标会话的报文分配给VM N进行编解码处理。
具体的处理过程可以参照上述步骤301的处理过程。
步骤503,当达到预设时长后,VM N计算目标会话对应的平均报文处理时长和均方差,并上报给呼叫控制器。
具体的处理过程可以参照上述步骤302的处理过程。
步骤504,呼叫控制器根据目标会话的平均报文处理时长和均方差,确定目标虚拟服务器组VM 2。
具体的处理过程可以参照上述步骤303的处理过程。
步骤505,呼叫控制器获取VM 2的利用率,判断该利用率是否大于预设阈值,如果不是,则执行步骤506,如果是,则执行步骤507~508。
步骤506,呼叫控制器将目标会话的报文分配给VM 2进行编解码处理。
具体的处理过程可以参照上述步骤304的处理过程。
步骤507,呼叫控制器获取VM 1、VM3的利用率,将利用率较小的虚拟服务器组作为目标虚拟服务器组。
具体的处理过程可以参照上述步骤304的处理过程,本处理过程中,以利用率较小的虚拟服务器组为VM3为例进行说明。
步骤508,呼叫控制器将目标会话的报文分配给VM 3进行编解码处理。
具体的处理过程可以参照上述步骤304的处理过程。
需要说明的是,通常情况下,由于通信双方采用的编解码算法不同等原因,主叫终端向被叫终端发送报文时,计算出的报文的平均处理时长和均方差,与被叫终端向主叫终端发送报文时,计算出的报文的平均处理时长和均方差可能不相同,相应的,在不同情况下,确定出的目标虚拟服务器组,可以是不相同的。
本发明实施例中,在目标会话建立后,可以计算预设时长内目标会话的第一平均报文处理时长,根据预先存储的平均报文处理时长与虚拟服务器组的对应关系,确定第一平均报文处理时长对应的目标虚拟服务器组,进而可以在接收到目标会话的后续报文时,将目标会话的后续报文分配给目标虚拟服务器组,由目标虚拟服务器组对目标会话的后续报文进行编解码处理,这样,可以将平均报文处理时长比较接近的会话,分配到一个虚拟服务器组中进行处理,因此,在虚拟服务器在处理报文的过程中,可以避免出现编解码算法复杂度较高的会话的报文,占用编解码算法复杂度较低的会话的报文的处理资源,导致编解码算法复杂度较低的会话无法正常进行的情况。
基于相同的技术构思,本发明实施例还提供了一种负载分配的装置,如图2所示,该装置包括处理器210、收发器220和存储器230,其中:
所述收发器220,用于在目标会话建立后,接收预设时长内所述目标会话对应的报文;
所述处理器210,用于对接收到的报文进行编解码处理;
所述处理器210,还用于确定所述预设时长内所述目标会话的第一平均报文处理时长;
所述处理器210,还用于根据所述存储器230预先存储的平均报文处理时长与虚拟服务器组的对应关系,确定所述第一平均报文处理时长对应的所述目标虚拟服务器组;
所述处理器210,还用于当所述收发器220接收到所述目标会话的后续报文时,将所述目标会话的后续报文分配给所述目标虚拟服务器组进行编解码处理。
收发器220可以在目标会话建立后,接收预设时长内所述目标会话对应的报文,处理器210可以对接收到的报文进行编解码处理,处理器210在对报文进行编解码处理的过程中,可以统计每个报文的处理时长,当达到预设时长时,可以根据预设时长内目标会话的每个报文的处理时长,计算平均报文处理时长(即第一平均报文处理时长)。其中,目标会话可以是任意会话。
处理器210计算出目标会话的第一平均报文处理时长之后,可以根据存储器230存储的平均报文处理时长与虚拟服务器组的对应关系,查找第一平均报文处理时长对应的目标虚拟服务器组。处理器210确定目标虚拟服务器组之后,将目标会话的报文分配给目标虚拟服务器组进行编解码处理,目标虚拟服务器组则可以接收到目标会话的报文,然后可以对报文进行编解码处理,将编解码处理后的报文发送收发器220,收发器220则可以将编解码处理后的报文转发给接收方。
可选的,所述处理器210,还用于:
根据所述目标会话的第一平均报文处理时长,确定所述目标会话的报文处理时长的第一均方差;
根据预先存储的平均报文处理时长和虚拟服务器组的对应关系,确定所述第一平均报文处理时长对应的第一虚拟服务器组,根据预先存储的报文处理时长的均方差和虚拟服务器组的对应关系,确定所述第一均方差的对应的第二虚拟服务器组;
在所述第一虚拟服务器组和所述第二虚拟服务器组中,确定目标虚拟服务器组。
处理器210除了可以计算预设时长内目标会话的第一平均报文处理时长以外,还可以根据第一平均报文处理时长,计算目标会话的报文处理时长的均方差(即第一均方差)。处理器210计算出预设时长内目标会话的第一平均报文处理时长和第一均方差后,可以根据存储器230存储的平均报文处理时长和虚拟服务器组的对应关系,确定第一平均报文处理时长对应的第一虚拟服务器组,还可以根据预先存储报文处理时长的均方差和虚拟服务器组的对应关系,确定第一均方差对应的第二虚拟服务器组。处理器210确定第一虚拟服务器组和第二虚拟服务器组后,可以在第一虚拟服务器组和第二虚拟服务器组中,确定目标虚拟服务器组。处理器210可以随机选取一个,作为目标虚拟服务器组,或者,也可以获取第一虚拟服务器组的组号,以及第二虚拟服务器组的组号,将组号较大的虚拟服务器组,作为目标虚拟服务器组。
可选的,所述处理器210,还用于:
确定预设统计周期内接收到的各会话的平均报文处理时长和报文处理时长的均方差,在所述各会话的平均报文处理时长中,确定最大的第二平均报文处理时长和最小的第三平均报文处理时长,在所述各会话的均方差中,确定最大的第二均方差,以及最小的第三均方差;
根据所述第一平均报文处理时长、所述第二平均报文处理时长、所述第三平均报文处理时长和预设的虚拟服务器组的数目,计算所述第一平均报文处理时长对应的第一虚拟服务器组的组号;
根据所述第一均方差、所述第二均方差、所述第三均方差和预设的虚拟服务器组的数目,计算所述第一均方差对应的第二虚拟服务器组的组号。
处理器210可以同时对多个会话的报文进行编解码处理,对于预设统计周期内接收到的任一会话的报文,处理器210可以确定预设统计周期内该会话的每个报文的处理时长,并进行存储,进而计算预设统计周期内该会话的平均报文处理时长和报文处理时长的均方差。这样,处理器210可以计算出预设统计周期内接收到的每个会话对应的平均报文处理时长和均方差,然后可以确定最大的平均报文处理时长(可称为第二平均报文处理时长)和最小的平均报文处理时长(可称为第三平均报文处理时长),并且可以在各会话的均方差中,确定最大的均方差(可称为第二均方差),以及最小的均方差(可称为第三均方差),然后可以根据第一均方差、第二均方差、第三均方差和预设的虚拟服务器组的数目,计算第一均方差对应的第二虚拟服务器组的组号。
可选的,所述处理器210,还用于:
如果所述第一虚拟服务器组和所述第二虚拟服务器组中,最大的组号在预设的虚拟服务器组的组号范围内,则将所述第一虚拟服务器组和所述第二虚拟服务器组中,组号最大的虚拟服务器组,作为目标虚拟服务器组;
所述处理器210,还用于:
如果所述第一虚拟服务器组和所述第二虚拟服务器组中,最大的组号小于所述组号范围内的最小组号,则将所述最小组号对应的虚拟服务器组,作为目标虚拟服务器组;
如果所述第一虚拟服务器组和所述第二虚拟服务器组中,最大的组号大于所述组号范围内的最大组号,则将所述最大组号对应的虚拟服务器组,作为目标虚拟服务器组。
可选的,所述处理器210,还用于:
获取所述目标虚拟服务器组的利用率,如果所述目标虚拟服务器组的利用率大于预设阈值,则获取与所述目标虚拟服务器组的组号相邻的虚拟服务器组的利用率,将利用率最低的虚拟服务器组重新确定为目标虚拟服务器组。
处理器210计算出目标虚拟服务器组之后,可以获取目标虚拟服务器组的利用率,该利用率可以是目标虚拟服务器组中的虚拟服务器的平均利用率,具体可以包括CPU利用率、内存利用率等。处理器210可以判断目标虚拟服务器组的利用率是否大于预设阈值,如果目标虚拟服务器组的利用率小于预设阈值,则可以进行后续处理。如果目标虚拟服务器组的利用率大于预设阈值,则处理器210可以重新确定目标虚拟服务器组。处理器210可以在虚拟服务器组中,获取与目标虚拟服务器组的组号相邻的虚拟服务器组的利用率,如果获取到的两个虚拟服务器组的利用率小于预设阈值,则可以在获取到的两个虚拟服务器组中,确定利用率最低的虚拟服务器组,将该虚拟服务器组作为目标虚拟服务器组,来对目标会话的后续报文进行编解码处理。如果获取到的两个虚拟服务器组中,存在某一虚拟服务器组的利用率不小于预设阈值,则可以获取与该虚拟服务器组组号相邻的虚拟服务器组进行判断。
本发明实施例中,在目标会话建立后,可以计算预设时长内目标会话的第一平均报文处理时长,根据预先存储的平均报文处理时长与虚拟服务器组的对应关系,确定第一平均报文处理时长对应的目标虚拟服务器组,进而可以在接收到目标会话的后续报文时,将目标会话的后续报文分配给目标虚拟服务器组,由目标虚拟服务器组对目标会话的后续报文进行编解码处理,这样,可以将平均报文处理时长比较接近的会话,分配到一个虚拟服务器组中进行处理,因此,在虚拟服务器在处理报文的过程中,可以避免出现编解码算法复杂度较高的会话的报文,占用编解码算法复杂度较低的会话的报文的处理资源,导致编解码算法复杂度较低的会话无法正常进行的情况。
基于相同的技术构思,本发明实施例还提供了一种负载分配的装置,如图6所示,该装置包括:
编解码模块610,用于在目标会话建立后,接收预设时长内所述目标会话对应的报文,对接收到的报文进行编解码处理;
确定模块620,用于确定所述预设时长内所述目标会话的第一平均报文处理时长;
所述确定模块620,还用于根据预先存储的平均报文处理时长与虚拟服务器组的对应关系,确定所述第一平均报文处理时长对应的所述目标虚拟服务器组;
分配模块630,用于当所述收发器接收到所述目标会话的后续报文时,将所述目标会话的后续报文分配给所述目标虚拟服务器组进行编解码处理。
编解码模块610可以在目标会话建立后,接收预设时长内所述目标会话对应的报文,然后编解码模块610可以对接收到的报文进行编解码处理,在对报文进行编解码处理的过程中,确定模块620可以统计每个报文的处理时长,当达到预设时长时,可以根据预设时长内目标会话的每个报文的处理时长,计算平均报文处理时长(即第一平均报文处理时长)。其中,目标会话可以是任意会话。
确定模块620计算出目标会话的第一平均报文处理时长之后,可以根据预先存储的平均报文处理时长与虚拟服务器组的对应关系,查找第一平均报文处理时长对应的目标虚拟服务器组。确定模块620确定目标虚拟服务器组之后,分配模块630可以将目标会话的报文分配给目标虚拟服务器组进行编解码处理,目标虚拟服务器组则可以接收到目标会话的报文,然后可以对报文进行编解码处理。
可选的,所述确定模块620,用于:
根据所述目标会话的第一平均报文处理时长,确定所述目标会话的报文处理时长的第一均方差;
根据预先存储的平均报文处理时长和虚拟服务器组的对应关系,确定所述第一平均报文处理时长对应的第一虚拟服务器组,根据预先存储的报文处理时长的均方差和虚拟服务器组的对应关系,确定所述第一均方差的对应的第二虚拟服务器组;
在所述第一虚拟服务器组和所述第二虚拟服务器组中,确定目标虚拟服务器组。
确定模块620除了可以计算预设时长内目标会话的第一平均报文处理时长以外,还可以根据第一平均报文处理时长,计算目标会话的报文处理时长的均方差(即第一均方差)。确定模块620计算出预设时长内目标会话的第一平均报文处理时长和第一均方差后,可以根据预先存储的平均报文处理时长和虚拟服务器组的对应关系,确定第一平均报文处理时长对应的第一虚拟服务器组,还可以根据预先存储报文处理时长的均方差和虚拟服务器组的对应关系,确定第一均方差对应的第二虚拟服务器组。确定模块620确定第一虚拟服务器组和第二虚拟服务器组后,可以在第一虚拟服务器组和第二虚拟服务器组中,确定目标虚拟服务器组。确定模块620可以随机选取一个,作为目标虚拟服务器组,或者,也可以获取第一虚拟服务器组的组号,以及第二虚拟服务器组的组号,将组号较大的虚拟服务器组,作为目标虚拟服务器组。
可选的,所述确定模块620,用于:
确定预设统计周期内接收到的各会话的平均报文处理时长和报文处理时长的均方差,在所述各会话的平均报文处理时长中,确定最大的第二平均报文处理时长和最小的第三平均报文处理时长,在所述各会话的均方差中,确定最大的第二均方差,以及最小的第三均方差;
根据所述第一平均报文处理时长、所述第二平均报文处理时长、所述第三平均报文处理时长和预设的虚拟服务器组的数目,计算所述第一平均报文处理时长对应的第一虚拟服务器组的组号;
根据所述第一均方差、所述第二均方差、所述第三均方差和预设的虚拟服务器组的数目,计算所述第一均方差对应的第二虚拟服务器组的组号。
确定模块620可以同时对多个会话的报文进行编解码处理,对于预设统计周期内接收到的任一会话的报文,确定模块620可以确定预设统计周期内该会话的每个报文的处理时长,并进行存储,进而计算预设统计周期内该会话的平均报文处理时长和报文处理时长的均方差。这样,确定模块620可以计算出预设统计周期内接收到的每个会话对应的平均报文处理时长和均方差,然后可以确定最大的平均报文处理时长(可称为第二平均报文处理时长)和最小的平均报文处理时长(可称为第三平均报文处理时长),并且可以在各会话的均方差中,确定最大的均方差(可称为第二均方差),以及最小的均方差(可称为第三均方差),然后可以根据第一均方差、第二均方差、第三均方差和预设的虚拟服务器组的数目,计算第一均方差对应的第二虚拟服务器组的组号。
可选的,所述确定模块620,用于:
如果所述第一虚拟服务器组和所述第二虚拟服务器组中,最大的组号在预设的虚拟服务器组的组号范围内,则将所述第一虚拟服务器组和所述第二虚拟服务器组中,组号最大的虚拟服务器组,作为目标虚拟服务器组;
所述确定模块620,还用于:
如果所述第一虚拟服务器组和所述第二虚拟服务器组中,最大的组号小于所述组号范围内的最小组号,则将所述最小组号对应的虚拟服务器组,作为目标虚拟服务器组;
如果所述第一虚拟服务器组和所述第二虚拟服务器组中,最大的组号大于所述组号范围内的最大组号,则将所述最大组号对应的虚拟服务器组,作为目标虚拟服务器组。
可选的,所述确定模块620,还用于:
获取所述目标虚拟服务器组的利用率,如果所述目标虚拟服务器组的利用率大于预设阈值,则获取与所述目标虚拟服务器组的组号相邻的虚拟服务器组的利用率,将利用率最低的虚拟服务器组重新确定为目标虚拟服务器组。
确定模块620计算出目标虚拟服务器组之后,可以获取目标虚拟服务器组的利用率,该利用率可以是目标虚拟服务器组中的虚拟服务器的平均利用率,具体可以包括CPU利用率、内存利用率等。确定模块620可以判断目标虚拟服务器组的利用率是否大于预设阈值,如果目标虚拟服务器组的利用率小于预设阈值,则可以进行后续处理。如果目标虚拟服务器组的利用率大于预设阈值,则确定模块620可以重新确定目标虚拟服务器组。确定模块620可以在虚拟服务器组中,获取与目标虚拟服务器组的组号相邻的虚拟服务器组的利用率,如果获取到的两个虚拟服务器组的利用率小于预设阈值,则可以在获取到的两个虚拟服务器组中,确定利用率最低的虚拟服务器组,将该虚拟服务器组作为目标虚拟服务器组,来对目标会话的后续报文进行编解码处理。如果获取到的两个虚拟服务器组中,存在某一虚拟服务器组的利用率不小于预设阈值,则可以获取与该虚拟服务器组组号相邻的虚拟服务器组进行判断。
本发明实施例中,在目标会话建立后,可以计算预设时长内目标会话的第一平均报文处理时长,根据预先存储的平均报文处理时长与虚拟服务器组的对应关系,确定第一平均报文处理时长对应的目标虚拟服务器组,进而可以在接收到目标会话的后续报文时,将目标会话的后续报文分配给目标虚拟服务器组,由目标虚拟服务器组对目标会话的后续报文进行编解码处理,这样,可以将平均报文处理时长比较接近的会话,分配到一个虚拟服务器组中进行处理,因此,在虚拟服务器在处理报文的过程中,可以避免出现编解码算法复杂度较高的会话的报文,占用编解码算法复杂度较低的会话的报文的处理资源,导致编解码算法复杂度较低的会话无法正常进行的情况。
需要说明的是:上述实施例提供的负载分配的装置在分配负载时,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将设备的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。另外,上述实施例提供的负载分配的装置与负载分配的方法实施例属于同一构思,其具体实现过程详见方法实施例,这里不再赘述。
本发明实施例还提供了一种负载分配的方法,该方法的执行主体为具有编解码功能的编解码服务器。该编解码服务器可以是一个服务器,也可以是由多个服器组成的服务器群。其中,多个服务器中的每个服务器可以由NFV系统中的应用程序来实现。NFV系统中可以安装有多个应用程序,如用于进行编解码处理的虚拟服务器的应用程序、用于进行负载分配的呼叫控制器的应用程序,以及用于进行报文收发的输入控制器和输出控制器等,在实际中,通常会将NFV系统中的多个虚拟服务器划分成若干虚拟服务器组,来进行编解码处理。其中,各虚拟服务器组包含的虚拟服务器的数目可以由技术人员来进行设定,每个虚拟服务器组的包含的虚拟服务器的数目可以是相同的,也可以是不同的,本实施例不做限定。本实施例以编解码服务器包括至少一个虚拟服务器组、呼叫控制器、输入控制器和输出控制器为例进行说明,其他情况与之类似,不再赘述。如图1所示,为本发明实施例的系统框架图,其中包括至少一个虚拟服务器组、至少一个输入输出控制器、呼叫控制器、发送方和接收方。该系统中,各设备之间的通信过程可以参见上述说明,此处不再赘述。
该编解码服务器可以通过图2中的计算设备实现,该计算设备的组织结构示意图如图2所示,该计算设备可以包括处理器210、收发器220、存储器230,收发器220和存储器230可以分别与处理器210连接,如图2所示。具体的结构可以参见上述说明,此处不再赘述。
本发明主要关注于为会话分配虚拟服务器组的方式,通过本发明,可以将平均报文处理时长比较接近的会话,分配到一个虚拟服务器组中进行处理,从而可以在虚拟服务器在处理报文的过程中,避免出现编解码算法复杂度较高的会话的报文,占用编解码算法复杂度较低的会话的报文的处理资源,导致编解码算法复杂度较低的会话无法正常进行的情况。
如图7所示,该方法的处理流程可以包括如下的步骤:
步骤701,在目标会话建立后,编解码服务器确定目标会话对应的编解码类型。
在实施中,进行通信的两个终端在进行通信之前,可以向Proxy server发送会话描述协议,会话描述协议中可以包括终端使用的编解码类型。Proxy server可以将该会话描述协议转发给呼叫控制器,呼叫控制器则可以接收到目标会话的会话描述协议,对该会话描述协议进行解析,获取其中的编解码类型,进而可以根据发送方对应的编解码类型,以及接收方对应的编解码类型,确定目标会话对应的编解码类型。例如,可以将发送方对应的编解码类型,作为目标会话对应的编解码类型,或者,可以将接收方对应的编解码类型,作为目标会话对应的编解码类型。
步骤702,编解码服务器根据预先存储的编解码类型与虚拟服务器组的对应关系,确定目标会话的编解码类型对应的目标虚拟服务器组。
在实施中,呼叫控制器可以预先存储编解码类型与虚拟服务器组的对应关系,呼叫控制器确定目标会话对应的编解码类型之后,可以在该对应关系中,查找目标会话的编解码类型对应的虚拟服务器组,即目标虚拟服务器组。例如,目标会话为音频会话,编解码类型包括g.723、AMR-NB(Adaptive Multi-Rate narrow-band,自适应多速率窄带)、G.729、ARM-WB(Adaptive Multi-Rate Wideband,适应多速率宽带)和EVS(Enhanced VoiceServices,增强语音服务),可以设置g.723对应VM 1、AMR-NB和G.729对应VM 2、ARM-WB和EVS对应VM 3,目标会话对应的编解码类型为G.729,则可以确定VM 2为目标会话对应的虚拟服务器组。
可选的,可以根据目标会话对应的编解码复杂度,来确定对应的目标虚拟服务器组,相应的,步骤702的处理过程可以如下:编解码服务器根据目标会话对应的编解码类型,确定目标会话对应的第一编解码复杂度;编解码服务器根据预先存储的编解码复杂度与虚拟服务器组的对应关系,确定第一编解码复杂度对应的目标虚拟服务器组。
在实施中,呼叫控制器确定目标会话对应的编解码类型之后,根据该编解码类型,确定目标会话对应的第一编解码复杂度,进而根据预先存储的编解码复杂度与虚拟服务器组的对应关系,确定第一编解码复杂度对应的目标虚拟服务器组。呼叫控制器根据编解码类型,确定目标会话的编解码复杂度的方式可以是多种多样的,本实施例提供了两种可行的处理方式。
方式一、根据预先存储的各编解码类型对应的复杂度,确定目标会话的编解码类型的复杂度,将目标会话的编解码类型的复杂度,作为目标会话对应的第一编解码复杂度。
在实施中,可以对编解码类型的复杂程度进行量化,得到编解码类型的复杂度,具体的量化方式可以采用现有技术中的量化方式。呼叫控制器中可以存储各编解码类型对应的复杂度,例如,g.723对应的复杂度为1、AMR-NB和G.729对应的复杂度为3、ARM-WB和EVS对应的复杂度为5。呼叫控制器确定目标会话的编解码类型后,可以获取该编解码类型的复杂度,然后可以将该编解码类型的复杂度,作为目标会话对应的第一编解码复杂度。例如,目标会话的编解码类型为EVS,则可以确定EVS对应的复杂度为5,则可以确定目标会话对应的第一编解码复杂度为5。本处理方式可以适用于会话类型为音频会话的情况,相应的,本处理方式所涉及的编解码类型为音频数据的编解码类型。
方式二、获取预先存储的目标会话的编解码类型的复杂度,并确定目标会话对应的分辨率,以及预先存储的分辨率对应的复杂度,确定目标会话的编解码类型的复杂度,与目标会话的分辨率对应的复杂度的乘积,得到目标会话对应的第一编解码复杂度。
在实施中,上述会话描述协议中除了可以包括终端使用的编解码类型以外,还可以包括终端的分辨率。Proxy server可以将该会话描述协议转发给呼叫控制器,呼叫控制器则可以获取其中的分辨率,进而可以根据发送方对应的分辨率,以及接收方对应的分辨率,确定目标会话对应的分辨率。例如,可以将发送方对应的分辨率,作为目标会话对应的分辨率,或者,可以将接收方对应的分辨率,作为目标会话对应的分辨率。相应的,可以对分辨率的复杂程度进行量化,得到各分辨率的复杂度,具体的量化方式也可以采用现有技术中的量化方式。
呼叫控制器中可以预先存储各编解码类型对应的复杂度,以及各分辨率对应的复杂度。呼叫控制器获取目标会话的编解码类型和分辨率后,可以确定目标会话的编解码类型的复杂度,以及目标会话的分辨率的复杂度,进而可以计算二者的乘积,得到目标会话对应的第一编解码复杂度。
例如,比如720p的分辨率的复杂度为1,1080p的分辨率的复杂度为2,2k的分辨率的复杂度为8,4k的分辨率的复杂度为32;H.264的复杂度为4,H.265的复杂度为8。目标会话的分辨率为1080p,编解码类型为H.264,则可以确定目标会话对应的第一编解码复杂度为2*4=8。本处理方式可以适用于会话类型为视频会话的情况,相应的,本处理方式所涉及的编解码类型为视频数据的编解码类型。
可选的,可以基于其他会话的编解码类型,来确定目标会话对应的虚拟服务器组,相应的处理过程可以如下:编解码服务器根据预设统计周期内接收到的各会话的编解码类型,确定各会话对应的编解码复杂度,在各会话对应的编解码复杂度中,确定最大的第二编解码复杂度和最小的第三编解码复杂度;编解码服务器根据第一编解码复杂度、第二编解码复杂度、第三编解码复杂度和预设的虚拟服务器组的数目,确定第一编解码复杂度对应的目标虚拟服务器组。
在实施中,呼叫控制器可以根据预设统计周期内,接收到的各会话对应的会话描述协议,确定预设统计周期内每个会话的对应的编解码复杂度,并进行存储。对于音频会话,可以采用上述方式一来确定对应的编解码复杂度,对于视频会话,可以采用上述方式二来确定对应的编解码复杂度。呼叫控制器可以在各会话对应的编解码复杂度中,确定最大的第二编解码复杂度和最小的第三编解码复杂度,进而根据第一编解码复杂度、第二编解码复杂度、第三编解码复杂度和预设的虚拟服务器组的数目,确定第一编解码复杂度对应的目标虚拟服务器组。具体的算法可以如下:
记预设统计周期内,最小的编解码复杂度为Mmin,最大的编解码复杂度为Mmax,目标会话的编解码复杂度为M,预设的虚拟服务器组的数目为N,其中,虚拟服务器组的组号为1~N;
X=INT[((M-Mmin)/(Mmax-Mmin))*N-0.5]
其中,INT表示向下取整,X表示计算出的虚拟服务器组的组号。
如图8所示,为本实施例的一种系统框架图,其中,A和a之间的会话的报文由VM1处理,B和b之间的会话的报文由VM2处理,C和c之间的会话的报文由VM2处理,D和d之间的会话的报文由VMN处理,E和e之间的会话的报文由VMN处理。
如果计算出的组号在预设的虚拟服务器组的组号范围(即1~N)内,则将计算出的组号对应的虚拟服务器组,作为目标虚拟服务器组;如果计算出的组号小于组号范围内的最小组号,则将最小组号对应的虚拟服务器组,作为目标虚拟服务器组;如果计算出的组号大于组号范围内的最大组号,则将最大组号对应的虚拟服务器组,作为目标虚拟服务器组。
步骤703,编解码服务器将目标会话的报文分配给目标虚拟服务器组进行编解码处理。
在实施中,呼叫控制器可以将目标虚拟服务器组的IP地址和端口信息,以及发送方的IP地址和端口信息,发送给第一输入输出控制器,将目标虚拟服务器组的IP地址和端口信息,以及接收方的IP地址和端口信息,发送给第二输入输出控制器。第一输入输出控制器可以在接收到目标会话的报文后,可以根据预先存储的目标虚拟服务器组的IP地址和端口信息,将该报文发送给目标虚拟服务器组,目标虚拟服务器组接收到目标会话的报文后,可以对报文进行编解码处理,将编解码处理后的报文发送给第二输入输出控制器,第二输入输出控制器可以根据预先存储的接收方的IP地址和端口信息,将编解码处理后的报文转发给接收方。
需要说明的是,通常情况下,由于通信双方采用的编解码算法不同、分辨率不同等原因,主叫终端向被叫终端发送报文时,目标会话对应的编解码复杂度,与被叫终端向主叫终端发送报文时,目标会话对应的编解码复杂度可能不同,相应的,在不同情况下,确定出的目标虚拟服务器组可以是不相同的。
本发明实施例中,根据编解码类型对虚拟服务器组进行分类,在目标会话建立后,根据目标会话对应的编解码类型,将目标会话的报文分配给对应的目标虚拟服务器组进行编解码处理,这样,可以将平均报文处理时长比较接近的会话,分配到一个虚拟服务器组中进行处理,因此,在虚拟服务器在处理报文的过程中,可以避免出现编解码算法复杂度较高的会话的报文,占用编解码算法复杂度较低的会话的报文的处理资源,导致编解码算法复杂度较低的会话无法正常进行的情况。
基于相同的技术构思,本发明实施例还提供了一种负载分配的装置,如图2所示,该装置包括处理器210、收发器220和存储器230,其中:
所述处理器210,用于在目标会话建立后,确定所述目标会话对应的编解码类型;
所述处理器210,还用于根据所述存储器230预先存储的编解码类型与虚拟服务器组的对应关系,确定所述目标会话的编解码类型对应的目标虚拟服务器组;
所述处理器210,还用于将所述收发器220接收到的目标会话的报文分配给所述目标虚拟服务器组进行编解码处理。
进行通信的两个终端在进行通信之前,可以向Proxy server(即代理服务器)发送会话描述协议,会话描述协议中可以包括终端使用的编解码类型。Proxy server可以将该会话描述协议转发给收发器220,收发器220则可以接收到该会话描述协议,处理器210可以根据发送方对应的编解码类型,以及接收方对应的编解码类型,确定目标会话对应的编解码类型。处理器210可以将发送方对应的编解码类型,作为目标会话对应的编解码类型,或者,可以将接收方对应的编解码类型,作为目标会话对应的编解码类型。
存储器230可以存储编解码类型与虚拟服务器组的对应关系,处理器210确定目标会话对应的编解码类型之后,可以在该对应关系中,查找目标会话的编解码类型对应的虚拟服务器组,即目标虚拟服务器组。处理器210可以将目标会话的报文分配给目标虚拟服务器组进行编解码处理,目标虚拟服务器组则可以接收到目标会话的报文,然后可以对报文进行编解码处理,将编解码处理后的报文发送给收发器220,收发器220则可以将编解码处理后的报文转发给接收方。
可选的,所述处理器210,还用于:
根据所述目标会话对应的编解码类型,确定所述目标会话对应的第一编解码复杂度;
根据预先存储的编解码复杂度与虚拟服务器组的对应关系,确定所述第一编解码复杂度对应的目标虚拟服务器组。
在实际中,处理器210可以对编解码类型的复杂程度进行量化,得到编解码类型的复杂度,具体的量化方式可以采用现有技术中的量化方式。处理器210确定目标会话的编解码类型后,可以获取该编解码类型的复杂度,然后可以将该编解码类型的复杂度,作为目标会话对应的第一编解码复杂度。
可选的,所述处理器210,还用于:
获取预先存储的所述目标会话的编解码类型的复杂度,并确定所述目标会话对应的分辨率,以及预先存储的所述分辨率对应的复杂度;
确定所述目标会话的编解码类型的复杂度,与所述目标会话的分辨率对应的复杂度的乘积,得到所述目标会话对应的第一编解码复杂度。
上述会话描述协议中除了可以包括终端使用的编解码类型以外,还可以包括终端的分辨率。Proxy server可以将该会话描述协议转发给收发器220,收发器220则可以接收该会话描述协议,处理器210可以获取其中的分辨率,进而可以根据发送方对应的分辨率,以及接收方对应的分辨率,确定目标会话对应的分辨率。处理器210可以将发送方对应的分辨率,作为目标会话对应的分辨率,或者,可以将接收方对应的分辨率,作为目标会话对应的分辨率。相应的,处理器210可以对分辨率的复杂程度进行量化,得到各分辨率的复杂度,具体的量化方式也可以采用现有技术中的量化方式。
存储器230可以存储各编解码类型对应的复杂度,以及各分辨率对应的复杂度。处理器210获取目标会话的编解码类型和分辨率后,可以根据该对应关系确定目标会话的编解码类型的复杂度,以及目标会话的分辨率的复杂度,进而可以计算二者的乘积,得到目标会话对应的第一编解码复杂度。
可选的,所述处理器210,还用于:
根据预设统计周期内接收到的各会话的编解码类型,确定所述各会话对应的编解码复杂度,在所述各会话对应的编解码复杂度中,确定最大的第二编解码复杂度和最小的第三编解码复杂度;
根据所述第一编解码复杂度、所述第二编解码复杂度、所述第三编解码复杂度和预设的虚拟服务器组的数目,确定所述第一编解码复杂度对应的目标虚拟服务器组。
处理器210可以根据预设统计周期内,收发器220接收到的各会话对应的会话描述协议,确定预设统计周期内每个会话的对应的编解码复杂度,并进行存储。处理器210可以在各会话对应的编解码复杂度中,确定最大的第二编解码复杂度和最小的第三编解码复杂度。如果处理器210计算出的组号在预设的虚拟服务器组的组号范围(即1~N)内,则将计算出的组号对应的虚拟服务器组,作为目标虚拟服务器组;如果处理器210计算出的组号小于组号范围内的最小组号,则将最小组号对应的虚拟服务器组,作为目标虚拟服务器组;如果处理器210计算出的组号大于组号范围内的最大组号,则将最大组号对应的虚拟服务器组,作为目标虚拟服务器组。
本发明实施例中,根据编解码类型对虚拟服务器组进行分类,在目标会话建立后,根据目标会话对应的编解码类型,将目标会话的报文分配给对应的目标虚拟服务器组进行编解码处理,这样,可以将平均报文处理时长比较接近的会话,分配到一个虚拟服务器组中进行处理,因此,在虚拟服务器在处理报文的过程中,可以避免出现编解码算法复杂度较高的会话的报文,占用编解码算法复杂度较低的会话的报文的处理资源,导致编解码算法复杂度较低的会话无法正常进行的情况。
基于相同的技术构思,本发明实施例还提供了一种负载分配的装置,如图9所示,该装置包括:
确定模块910,用于在目标会话建立后,确定所述目标会话对应的编解码类型;
所述确定模块910,还用于根据预先存储的编解码类型与虚拟服务器组的对应关系,确定所述目标会话的编解码类型对应的目标虚拟服务器组;
分配模块920,用于将接收到的目标会话的报文分配给所述目标虚拟服务器组进行编解码处理。
进行通信的两个终端在进行通信之前,可以向Proxy server(即代理服务器)发送会话描述协议,会话描述协议中可以包括终端使用的编解码类型。Proxy server可以将该会话描述协议转发给确定模块910,确定模块910则可以接收到该会话描述协议,确定模块910可以根据发送方对应的编解码类型,以及接收方对应的编解码类型,确定目标会话对应的编解码类型。确定模块910可以将发送方对应的编解码类型,作为目标会话对应的编解码类型,或者,可以将接收方对应的编解码类型,作为目标会话对应的编解码类型。
确定模块910可以存储编解码类型与虚拟服务器组的对应关系,确定模块910确定目标会话对应的编解码类型之后,可以在该对应关系中,查找目标会话的编解码类型对应的虚拟服务器组,即目标虚拟服务器组。分配模块920可以将目标会话的报文分配给目标虚拟服务器组进行编解码处理,目标虚拟服务器组则可以接收到目标会话的报文,然后可以对报文进行编解码处理。
可选的,所述确定模块910,用于:
根据所述目标会话对应的编解码类型,确定所述目标会话对应的第一编解码复杂度;
根据预先存储的编解码复杂度与虚拟服务器组的对应关系,确定所述第一编解码复杂度对应的目标虚拟服务器组。
在实际中,确定模块910可以对编解码类型的复杂程度进行量化,得到编解码类型的复杂度,具体的量化方式可以采用现有技术中的量化方式。确定模块910确定目标会话的编解码类型后,可以获取该编解码类型的复杂度,然后可以将该编解码类型的复杂度,作为目标会话对应的第一编解码复杂度。
可选的,所述确定模块910,用于:
获取预先存储的所述目标会话的编解码类型的复杂度,并确定所述目标会话对应的分辨率,以及预先存储的所述分辨率对应的复杂度;
确定所述目标会话的编解码类型的复杂度,与所述目标会话的分辨率对应的复杂度的乘积,得到所述目标会话对应的第一编解码复杂度。
上述会话描述协议中除了可以包括终端使用的编解码类型以外,还可以包括终端的分辨率。Proxy server可以将该会话描述协议转发给确定模块910,确定模块910则可以接收该会话描述协议,获取其中的分辨率,进而可以根据发送方对应的分辨率,以及接收方对应的分辨率,确定目标会话对应的分辨率。确定模块910可以将发送方对应的分辨率,作为目标会话对应的分辨率,或者,可以将接收方对应的分辨率,作为目标会话对应的分辨率。相应的,确定模块910可以对分辨率的复杂程度进行量化,得到各分辨率的复杂度,具体的量化方式也可以采用现有技术中的量化方式。
确定模块910可以存储各编解码类型对应的复杂度,以及各分辨率对应的复杂度。确定模块910获取目标会话的编解码类型和分辨率后,可以根据该对应关系确定目标会话的编解码类型的复杂度,以及目标会话的分辨率的复杂度,进而可以计算二者的乘积,得到目标会话对应的第一编解码复杂度。
可选的,所述确定模块910,用于:
根据预设统计周期内接收到的各会话的编解码类型,确定所述各会话对应的编解码复杂度,在所述各会话对应的编解码复杂度中,确定最大的第二编解码复杂度和最小的第三编解码复杂度;
根据所述第一编解码复杂度、所述第二编解码复杂度、所述第三编解码复杂度和预设的虚拟服务器组的数目,确定所述第一编解码复杂度对应的目标虚拟服务器组。
确定模块910可以根据预设统计周期内,接收到的各会话对应的会话描述协议,确定预设统计周期内每个会话的对应的编解码复杂度,并进行存储。确定模块910可以在各会话对应的编解码复杂度中,确定最大的第二编解码复杂度和最小的第三编解码复杂度。如果确定模块910计算出的组号在预设的虚拟服务器组的组号范围(即1~N)内,则将计算出的组号对应的虚拟服务器组,作为目标虚拟服务器组;如果确定模块910计算出的组号小于组号范围内的最小组号,则将最小组号对应的虚拟服务器组,作为目标虚拟服务器组;如果确定模块910计算出的组号大于组号范围内的最大组号,则将最大组号对应的虚拟服务器组,作为目标虚拟服务器组。
本发明实施例中,根据编解码类型对虚拟服务器组进行分类,在目标会话建立后,根据目标会话对应的编解码类型,将目标会话的报文分配给对应的目标虚拟服务器组进行编解码处理,这样,可以将平均报文处理时长比较接近的会话,分配到一个虚拟服务器组中进行处理,因此,在虚拟服务器在处理报文的过程中,可以避免出现编解码算法复杂度较高的会话的报文,占用编解码算法复杂度较低的会话的报文的处理资源,导致编解码算法复杂度较低的会话无法正常进行的情况。
需要说明的是:上述实施例提供的负载分配的装置在分配负载时,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将设备的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。另外,上述实施例提供的负载分配的装置与负载分配的方法实施例属于同一构思,其具体实现过程详见方法实施例,这里不再赘述。
本领域普通技术人员可以理解实现上述实施例的全部或部分步骤可以通过硬件来完成,也可以通过程序来指令相关的硬件完成,所述的程序可以存储于一种计算机可读存储介质中,上述提到的存储介质可以是只读存储器,磁盘或光盘等。
以上所述仅为本发明的较佳实施例,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (24)
1.一种负载分配的方法,其特征在于,所述方法应用于编解码服务器,所述编解码服务器至少包括目标虚拟服务器组,所述方法包括:
在目标会话建立后,所述编解码服务器接收预设时长内所述目标会话对应的报文,对接收到的报文进行编解码处理;
所述编解码服务器确定所述预设时长内所述目标会话的第一平均报文处理时长;
所述编解码服务器根据预先存储的平均报文处理时长与虚拟服务器组的对应关系,确定所述第一平均报文处理时长对应的所述目标虚拟服务器组;
当接收到所述目标会话的后续报文时,所述编解码服务器将所述目标会话的后续报文分配给所述目标虚拟服务器组进行编解码处理。
2.根据权利要求1所述的方法,其特征在于,所述编解码服务器根据预先存储的平均报文处理时长与虚拟服务器组的对应关系,确定所述第一平均报文处理时长对应的目标虚拟服务器组,包括:
所述编解码服务器根据所述目标会话的第一平均报文处理时长,确定所述目标会话的报文处理时长的第一均方差;
所述编解码服务器根据预先存储的平均报文处理时长和虚拟服务器组的对应关系,确定所述第一平均报文处理时长对应的第一虚拟服务器组,根据预先存储的报文处理时长的均方差和虚拟服务器组的对应关系,确定所述第一均方差的对应的第二虚拟服务器组;
所述编解码服务器在所述第一虚拟服务器组和所述第二虚拟服务器组中,确定目标虚拟服务器组。
3.根据权利要求2所述的方法,其特征在于,所述编解码服务器根据预先存储的平均报文处理时长和虚拟服务器组的对应关系,确定所述第一平均报文处理时长对应的第一虚拟服务器组,根据预先存储的报文处理时长的均方差和虚拟服务器组的对应关系,确定所述第一均方差的对应的第二虚拟服务器组,包括:
所述编解码服务器确定预设统计周期内接收到的各会话的平均报文处理时长和报文处理时长的均方差,在所述各会话的平均报文处理时长中,确定最大的第二平均报文处理时长和最小的第三平均报文处理时长,在所述各会话的均方差中,确定最大的第二均方差,以及最小的第三均方差;
所述编解码服务器根据所述第一平均报文处理时长、所述第二平均报文处理时长、所述第三平均报文处理时长和预设的虚拟服务器组的数目,计算所述第一平均报文处理时长对应的第一虚拟服务器组的组号;
所述编解码服务器根据所述第一均方差、所述第二均方差、所述第三均方差和预设的虚拟服务器组的数目,计算所述第一均方差对应的第二虚拟服务器组的组号。
4.根据权利要求2所述的方法,其特征在于,所述编解码服务器在所述第一虚拟服务器组和所述第二虚拟服务器组中,确定目标虚拟服务器组,包括:
如果所述第一虚拟服务器组和所述第二虚拟服务器组中,最大的组号在预设的虚拟服务器组的组号范围内,则所述编解码服务器将所述第一虚拟服务器组和所述第二虚拟服务器组中,组号最大的虚拟服务器组,作为目标虚拟服务器组;
所述方法还包括:
如果所述第一虚拟服务器组和所述第二虚拟服务器组中,最大的组号小于所述组号范围内的最小组号,则所述编解码服务器将所述最小组号对应的虚拟服务器组,作为目标虚拟服务器组;
如果所述第一虚拟服务器组和所述第二虚拟服务器组中,最大的组号大于所述组号范围内的最大组号,则将所述最大组号对应的虚拟服务器组,作为目标虚拟服务器组。
5.根据权利要求1所述的方法,其特征在于,所述编解码服务器确定所述第一平均报文处理时长对应的目标虚拟服务器组之后,所述方法还包括:
所述编解码服务器获取所述目标虚拟服务器组的利用率,如果所述目标虚拟服务器组的利用率大于预设阈值,则获取与所述目标虚拟服务器组的组号相邻的虚拟服务器组的利用率,将利用率最低的虚拟服务器组重新确定为目标虚拟服务器组。
6.一种负载分配的装置,其特征在于,所述装置包括处理器、收发器和存储器,其中:
所述收发器,用于在目标会话建立后,接收预设时长内所述目标会话对应的报文;
所述处理器,用于对接收到的报文进行编解码处理;
所述处理器,还用于确定所述预设时长内所述目标会话的第一平均报文处理时长;
所述处理器,还用于根据所述存储器预先存储的平均报文处理时长与虚拟服务器组的对应关系,确定所述第一平均报文处理时长对应的所述目标虚拟服务器组;
所述处理器,还用于当所述收发器接收到所述目标会话的后续报文时,将所述目标会话的后续报文分配给所述目标虚拟服务器组进行编解码处理。
7.根据权利要求6所述的装置,其特征在于,所述处理器,还用于:
根据所述目标会话的第一平均报文处理时长,确定所述目标会话的报文处理时长的第一均方差;
根据预先存储的平均报文处理时长和虚拟服务器组的对应关系,确定所述第一平均报文处理时长对应的第一虚拟服务器组,根据预先存储的报文处理时长的均方差和虚拟服务器组的对应关系,确定所述第一均方差的对应的第二虚拟服务器组;
在所述第一虚拟服务器组和所述第二虚拟服务器组中,确定目标虚拟服务器组。
8.根据权利要求7所述的装置,其特征在于,所述处理器,还用于:
确定预设统计周期内接收到的各会话的平均报文处理时长和报文处理时长的均方差,在所述各会话的平均报文处理时长中,确定最大的第二平均报文处理时长和最小的第三平均报文处理时长,在所述各会话的均方差中,确定最大的第二均方差,以及最小的第三均方差;
根据所述第一平均报文处理时长、所述第二平均报文处理时长、所述第三平均报文处理时长和预设的虚拟服务器组的数目,计算所述第一平均报文处理时长对应的第一虚拟服务器组的组号;
根据所述第一均方差、所述第二均方差、所述第三均方差和预设的虚拟服务器组的数目,计算所述第一均方差对应的第二虚拟服务器组的组号。
9.根据权利要求7所述的装置,其特征在于,所述处理器,还用于:
如果所述第一虚拟服务器组和所述第二虚拟服务器组中,最大的组号在预设的虚拟服务器组的组号范围内,则将所述第一虚拟服务器组和所述第二虚拟服务器组中,组号最大的虚拟服务器组,作为目标虚拟服务器组;
所述处理器,还用于:
如果所述第一虚拟服务器组和所述第二虚拟服务器组中,最大的组号小于所述组号范围内的最小组号,则将所述最小组号对应的虚拟服务器组,作为目标虚拟服务器组;
如果所述第一虚拟服务器组和所述第二虚拟服务器组中,最大的组号大于所述组号范围内的最大组号,则将所述最大组号对应的虚拟服务器组,作为目标虚拟服务器组。
10.根据权利要求6所述的装置,其特征在于,所述处理器,还用于:
获取所述目标虚拟服务器组的利用率,如果所述目标虚拟服务器组的利用率大于预设阈值,则获取与所述目标虚拟服务器组的组号相邻的虚拟服务器组的利用率,将利用率最低的虚拟服务器组重新确定为目标虚拟服务器组。
11.一种负载分配的装置,其特征在于,所述装置包括:
编解码模块,用于在目标会话建立后,接收预设时长内所述目标会话对应的报文,对接收到的报文进行编解码处理;
确定模块,用于确定所述预设时长内所述目标会话的第一平均报文处理时长;
所述确定模块,还用于根据预先存储的平均报文处理时长与虚拟服务器组的对应关系,确定所述第一平均报文处理时长对应的所述目标虚拟服务器组;
分配模块,用于当所述编解码模块接收到所述目标会话的后续报文时,将所述目标会话的后续报文分配给所述目标虚拟服务器组进行编解码处理。
12.根据权利要求11所述的装置,其特征在于,所述确定模块,用于:
根据所述目标会话的第一平均报文处理时长,确定所述目标会话的报文处理时长的第一均方差;
根据预先存储的平均报文处理时长和虚拟服务器组的对应关系,确定所述第一平均报文处理时长对应的第一虚拟服务器组,根据预先存储的报文处理时长的均方差和虚拟服务器组的对应关系,确定所述第一均方差的对应的第二虚拟服务器组;
在所述第一虚拟服务器组和所述第二虚拟服务器组中,确定目标虚拟服务器组。
13.根据权利要求12所述的装置,其特征在于,所述确定模块,用于:
确定预设统计周期内接收到的各会话的平均报文处理时长和报文处理时长的均方差,在所述各会话的平均报文处理时长中,确定最大的第二平均报文处理时长和最小的第三平均报文处理时长,在所述各会话的均方差中,确定最大的第二均方差,以及最小的第三均方差;
根据所述第一平均报文处理时长、所述第二平均报文处理时长、所述第三平均报文处理时长和预设的虚拟服务器组的数目,计算所述第一平均报文处理时长对应的第一虚拟服务器组的组号;
根据所述第一均方差、所述第二均方差、所述第三均方差和预设的虚拟服务器组的数目,计算所述第一均方差对应的第二虚拟服务器组的组号。
14.根据权利要求12所述的装置,其特征在于,所述确定模块,用于:
如果所述第一虚拟服务器组和所述第二虚拟服务器组中,最大的组号在预设的虚拟服务器组的组号范围内,则将所述第一虚拟服务器组和所述第二虚拟服务器组中,组号最大的虚拟服务器组,作为目标虚拟服务器组;
所述确定模块,还用于:
如果所述第一虚拟服务器组和所述第二虚拟服务器组中,最大的组号小于所述组号范围内的最小组号,则将所述最小组号对应的虚拟服务器组,作为目标虚拟服务器组;
如果所述第一虚拟服务器组和所述第二虚拟服务器组中,最大的组号大于所述组号范围内的最大组号,则将所述最大组号对应的虚拟服务器组,作为目标虚拟服务器组。
15.根据权利要求11所述的装置,其特征在于,所述确定模块,还用于:
获取所述目标虚拟服务器组的利用率,如果所述目标虚拟服务器组的利用率大于预设阈值,则获取与所述目标虚拟服务器组的组号相邻的虚拟服务器组的利用率,将利用率最低的虚拟服务器组重新确定为目标虚拟服务器组。
16.一种负载分配的方法,其特征在于,所述方法应用于编解码服务器,所述编解码服务器至少包括目标虚拟服务器组,所述方法包括:
在目标会话建立后,所述编解码服务器确定所述目标会话对应的编解码类型;
所述编解码服务器根据预先存储的编解码类型与虚拟服务器组的对应关系,确定所述目标会话的编解码类型对应的目标虚拟服务器组;
所述编解码服务器将所述目标会话的报文分配给所述目标虚拟服务器组进行编解码处理;
所述编解码服务器根据预先存储的编解码类型与虚拟服务器组的对应关系,确定所述目标会话的编解码类型对应的目标虚拟服务器组,包括:
所述编解码服务器根据所述目标会话对应的编解码类型,确定所述目标会话对应的第一编解码复杂度;
所述编解码服务器根据预先存储的编解码复杂度与虚拟服务器组的对应关系,确定所述第一编解码复杂度对应的目标虚拟服务器组。
17.根据权利要求16所述的方法,其特征在于,所述编解码服务器根据所述目标会话对应的编解码类型,确定所述目标会话对应的第一编解码复杂度,包括:
所述编解码服务器获取预先存储的所述目标会话的编解码类型的复杂度,并确定所述目标会话对应的分辨率,以及预先存储的所述分辨率对应的复杂度;
所述编解码服务器确定所述目标会话的编解码类型的复杂度,与所述目标会话的分辨率对应的复杂度的乘积,得到所述目标会话对应的第一编解码复杂度。
18.根据权利要求16所述的方法,其特征在于,所述编解码服务器根据预先存储的编解码复杂度与虚拟服务器组的对应关系,确定所述第一编解码复杂度对应的目标虚拟服务器组,包括:
所述编解码服务器根据预设统计周期内接收到的各会话的编解码类型,确定所述各会话对应的编解码复杂度,在所述各会话对应的编解码复杂度中,确定最大的第二编解码复杂度和最小的第三编解码复杂度;
所述编解码服务器根据所述第一编解码复杂度、所述第二编解码复杂度、所述第三编解码复杂度和预设的虚拟服务器组的数目,确定所述第一编解码复杂度对应的目标虚拟服务器组。
19.一种负载分配的装置,其特征在于,所述装置包括处理器、收发器和存储器,其中:
所述处理器,用于在目标会话建立后,确定所述目标会话对应的编解码类型;
所述处理器,还用于根据所述存储器预先存储的编解码类型与虚拟服务器组的对应关系,确定所述目标会话的编解码类型对应的目标虚拟服务器组;
所述处理器,还用于将所述收发器接收到的目标会话的报文分配给所述目标虚拟服务器组进行编解码处理;
所述处理器,还用于:
根据所述目标会话对应的编解码类型,确定所述目标会话对应的第一编解码复杂度;
根据预先存储的编解码复杂度与虚拟服务器组的对应关系,确定所述第一编解码复杂度对应的目标虚拟服务器组。
20.根据权利要求19所述的装置,其特征在于,所述处理器,还用于:
获取预先存储的所述目标会话的编解码类型的复杂度,并确定所述目标会话对应的分辨率,以及预先存储的所述分辨率对应的复杂度;
确定所述目标会话的编解码类型的复杂度,与所述目标会话的分辨率对应的复杂度的乘积,得到所述目标会话对应的第一编解码复杂度。
21.根据权利要求19所述的装置,其特征在于,所述处理器,还用于:
根据预设统计周期内接收到的各会话的编解码类型,确定所述各会话对应的编解码复杂度,在所述各会话对应的编解码复杂度中,确定最大的第二编解码复杂度和最小的第三编解码复杂度;
根据所述第一编解码复杂度、所述第二编解码复杂度、所述第三编解码复杂度和预设的虚拟服务器组的数目,确定所述第一编解码复杂度对应的目标虚拟服务器组。
22.一种负载分配的装置,其特征在于,所述装置包括:
确定模块,用于在目标会话建立后,确定所述目标会话对应的编解码类型;
所述确定模块,还用于根据预先存储的编解码类型与虚拟服务器组的对应关系,确定所述目标会话的编解码类型对应的目标虚拟服务器组;
分配模块,用于将接收到的目标会话的报文分配给所述目标虚拟服务器组进行编解码处理;
所述确定模块,用于:
根据所述目标会话对应的编解码类型,确定所述目标会话对应的第一编解码复杂度;
根据预先存储的编解码复杂度与虚拟服务器组的对应关系,确定所述第一编解码复杂度对应的目标虚拟服务器组。
23.根据权利要求22所述的装置,其特征在于,所述确定模块,用于:
获取预先存储的所述目标会话的编解码类型的复杂度,并确定所述目标会话对应的分辨率,以及预先存储的所述分辨率对应的复杂度;
确定所述目标会话的编解码类型的复杂度,与所述目标会话的分辨率对应的复杂度的乘积,得到所述目标会话对应的第一编解码复杂度。
24.根据权利要求22所述的装置,其特征在于,所述确定模块,用于:
根据预设统计周期内接收到的各会话的编解码类型,确定所述各会话对应的编解码复杂度,在所述各会话对应的编解码复杂度中,确定最大的第二编解码复杂度和最小的第三编解码复杂度;
根据所述第一编解码复杂度、所述第二编解码复杂度、所述第三编解码复杂度和预设的虚拟服务器组的数目,确定所述第一编解码复杂度对应的目标虚拟服务器组。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610437724.1A CN105959399B (zh) | 2016-06-17 | 2016-06-17 | 一种负载分配的方法和装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610437724.1A CN105959399B (zh) | 2016-06-17 | 2016-06-17 | 一种负载分配的方法和装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN105959399A CN105959399A (zh) | 2016-09-21 |
CN105959399B true CN105959399B (zh) | 2019-01-11 |
Family
ID=56907148
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201610437724.1A Active CN105959399B (zh) | 2016-06-17 | 2016-06-17 | 一种负载分配的方法和装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN105959399B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2021197617A1 (en) * | 2020-04-03 | 2021-10-07 | Huawei Technologies Co., Ltd. | Network device, system and method for cycle-based load balancing |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101052154A (zh) * | 2007-05-11 | 2007-10-10 | 华为技术有限公司 | Ip多媒体子系统及其编解码转换控制方法 |
CN101945407A (zh) * | 2010-10-22 | 2011-01-12 | 东南大学 | 一种应用于移动业务内容监控的负载均衡方法 |
CN104917732A (zh) * | 2014-03-13 | 2015-09-16 | 深圳市赛格导航科技股份有限公司 | 一种多客户端绑定编码器及解码器的方法及系统 |
CN105245607A (zh) * | 2015-10-23 | 2016-01-13 | 中国联合网络通信集团有限公司 | 代理服务器动态自动选择方法及系统 |
-
2016
- 2016-06-17 CN CN201610437724.1A patent/CN105959399B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101052154A (zh) * | 2007-05-11 | 2007-10-10 | 华为技术有限公司 | Ip多媒体子系统及其编解码转换控制方法 |
CN101945407A (zh) * | 2010-10-22 | 2011-01-12 | 东南大学 | 一种应用于移动业务内容监控的负载均衡方法 |
CN104917732A (zh) * | 2014-03-13 | 2015-09-16 | 深圳市赛格导航科技股份有限公司 | 一种多客户端绑定编码器及解码器的方法及系统 |
CN105245607A (zh) * | 2015-10-23 | 2016-01-13 | 中国联合网络通信集团有限公司 | 代理服务器动态自动选择方法及系统 |
Also Published As
Publication number | Publication date |
---|---|
CN105959399A (zh) | 2016-09-21 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US9100854B2 (en) | Quality of service application controller and user equipment application profiler | |
US20170192819A1 (en) | Method and electronic device for resource allocation | |
CN105765925B (zh) | 在由网络设备运行的进行中业务会话之间分布网络的可用带宽的方法以及相应设备 | |
CN104901989B (zh) | 一种现场服务提供系统及方法 | |
US9674063B2 (en) | Managing data usage of a computing device | |
KR102231606B1 (ko) | 컨텍스트 모바일 데이터 액세스를 위한 기술 | |
CN107948988A (zh) | 一种资源控制方法及相关设备 | |
CN108370580A (zh) | 匹配用户装备和网络调度周期 | |
Pei et al. | Blockchain-enabled dynamic spectrum access: cooperative spectrum sensing, access and mining | |
CN110808922A (zh) | 一种消息处理方法、装置、存储介质及电子设备 | |
EP3310093B1 (en) | Traffic control method and apparatus | |
CN106331783B (zh) | 一种资源分配方法、装置和智能电视系统 | |
CN103200428A (zh) | 一种业务预推送方法和装置 | |
CN109147788A (zh) | 本地语音库的更新方法及装置 | |
CN105099778A (zh) | 一种带宽分配的方法及装置 | |
CN114816738A (zh) | 算力节点的确定方法、装置、设备及计算机可读存储介质 | |
CN109217980B (zh) | 一种编解码能力配置方法、设备和计算机存储介质 | |
CN105959399B (zh) | 一种负载分配的方法和装置 | |
KR101073273B1 (ko) | 네트워크의 장치들을 위한 데이터 채널 자원 최적화 | |
CN105511273B (zh) | 一种客户端运行管理方法及客户端 | |
CN109495753A (zh) | 一种编解码参数配置方法 | |
CN113328906A (zh) | 一种流量实时监控方法、装置、存储介质及电子设备 | |
CN110650546A (zh) | 文件传输的方法、装置、存储介质以及终端 | |
CN108347579B (zh) | 带宽控制方法和装置 | |
CN112996112B (zh) | 一种频域资源分配方法、装置、电子设备及存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |