CN114884965A - 基于人工智能的服务器扩容决策方法及相关设备 - Google Patents
基于人工智能的服务器扩容决策方法及相关设备 Download PDFInfo
- Publication number
- CN114884965A CN114884965A CN202210456879.5A CN202210456879A CN114884965A CN 114884965 A CN114884965 A CN 114884965A CN 202210456879 A CN202210456879 A CN 202210456879A CN 114884965 A CN114884965 A CN 114884965A
- Authority
- CN
- China
- Prior art keywords
- server
- video data
- rate
- calculating
- server node
- 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.)
- Granted
Links
- 238000000034 method Methods 0.000 title claims abstract description 44
- 238000013473 artificial intelligence Methods 0.000 title claims abstract description 40
- 239000011159 matrix material Substances 0.000 claims description 84
- 238000005070 sampling Methods 0.000 claims description 37
- 230000006870 function Effects 0.000 claims description 36
- 238000013507 mapping Methods 0.000 claims description 30
- 230000009466 transformation Effects 0.000 claims description 30
- 238000004422 calculation algorithm Methods 0.000 claims description 29
- 238000004364 calculation method Methods 0.000 claims description 22
- 230000005540 biological transmission Effects 0.000 claims description 14
- 238000012545 processing Methods 0.000 claims description 9
- 238000010276 construction Methods 0.000 claims description 6
- 230000001131 transforming effect Effects 0.000 claims description 6
- 230000006835 compression Effects 0.000 claims description 5
- 238000007906 compression Methods 0.000 claims description 5
- 230000000903 blocking effect Effects 0.000 claims description 4
- 238000010606 normalization Methods 0.000 claims description 4
- 238000010586 diagram Methods 0.000 description 14
- 238000004590 computer program Methods 0.000 description 11
- 230000011664 signaling Effects 0.000 description 10
- 238000004891 communication Methods 0.000 description 9
- 238000006243 chemical reaction Methods 0.000 description 6
- 238000007726 management method Methods 0.000 description 5
- 230000008569 process Effects 0.000 description 5
- 230000008859 change Effects 0.000 description 4
- 238000005516 engineering process Methods 0.000 description 3
- 239000004973 liquid crystal related substance Substances 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 238000005192 partition Methods 0.000 description 2
- 230000003068 static effect Effects 0.000 description 2
- 239000002699 waste material Substances 0.000 description 2
- 230000002159 abnormal effect Effects 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 230000001419 dependent effect Effects 0.000 description 1
- 238000001514 detection method Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 230000010365 information processing Effects 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 230000002452 interceptive effect Effects 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
- 230000004044 response Effects 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
Images
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/1031—Controlling of the operation of servers by a load balancer, e.g. adding or removing servers that serve requests
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L43/00—Arrangements for monitoring or testing data switching networks
- H04L43/08—Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters
-
- 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/1029—Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers using data related to the state of servers by a load balancer
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Environmental & Geological Engineering (AREA)
- Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)
Abstract
本申请提出一种基于人工智能的服务器扩容决策方法、装置、电子设备及存储介质,基于人工智能的服务器扩容决策方法包括:构建服务器集群,所述服务器集群包含多个服务器节点,随机选取一个服务器节点作为服务器节点,所述服务器节点的功能是传输视频数据;对所述视频数据进行压缩获得压缩数据;基于所述压缩数据计算所述视频数据的动态率,所述动态率用以表征所述视频数据的稳定性;计算所述服务器节点的性能指标,并依据所述动态率和性能指标计算所述视频数据的卡顿率;基于所述卡顿率做出所述服务器节点的扩容决策。该方法可以通过视频数据的动态率和服务器节点的性能指标做出服务器节点的扩容决策,从而能够确保服务器集群的性能。
Description
技术领域
本申请涉及人工智能技术领域,尤其涉及一种基于人工智能的服务器扩容决策方法、装置、电子设备及存储介质。
背景技术
随着信息技术的快速发展,越来越多的人倾向于通过互联网查询并接受信息,各行各业也倾向于利用网络直播对业务或产品进行推广宣导。
目前,线上直播间人数上限较小,房间人数过多时房间内通信传输时延变大且通信可靠性降低,业界常用的直播资源分配方式是由用户预先设置服务器类型以明确服务器的人数上限,然而这种方式无法确保服务器根据直播数据流的变化及时自动扩容,无法从普通房间平滑升级为超大房间,且超大房间的通信可靠性无法保证,通信时延较高,且这种资源分配方案不支持服务器的平行扩容因此无法实现服务器的负载均衡。
发明内容
鉴于以上内容,有必要提供一种基于人工智能的服务器扩容决策方法及相关设备,以解决如何提高服务器扩容决策的可靠性这一技术问题,其中,相关设备包括基于人工智能的服务器扩容决策装置、电子设备及存储介质。
本申请实施例提供一种基于人工智能的服务器扩容决策方法,所述方法包括:
构建服务器集群,所述服务器集群包含多个服务器节点,所述服务器节点的功能是传输视频数据;
对所述视频数据进行压缩获得压缩数据;
基于所述压缩数据计算所述视频数据的动态率,所述动态率用以表征所述视频数据的稳定性;
计算所述服务器节点的性能指标,并依据所述动态率和所述性能指标计算所述视频数据的卡顿率,所述性能指标用以表征所述服务器节点的性能优劣,所述卡顿率用以表征所述服务器节点传输的视频数据的稳定性;
基于所述卡顿率做出所述服务器节点的扩容决策。
上述基于人工智能的服务器扩容决策方法通过对服务器集群中服务器节点传输的视频数据进行压缩获得了压缩数据,并通过压缩数据计算了所述视频数据的动态率,通过计算所述服务器节点的性能指标,并基于所述性能指标和所述动态率计算了所述服务器节点传输视频数据的卡顿率,进一步基于所述卡顿率做出了服务器节点的扩容决策,能够基于服务器集群传输数据的质量调整服务器集群中节点的数量,以确保服务器集群能够达到负载均衡,并保证了数据传输的可靠性。在具体的应用场景中,本发明将超大房间分解为多个小房间,大房间与各小房间相互绑定,实现平滑房间类型的平滑升级,同时本发明支持服务器的平行扩容,保证传输可靠性与通信时延,可在业务突增的时候,承载用户的高并发量,从而减小房间系统的信令延迟,为用户提供低延迟且流畅的房间服务。
在一些实施例中,所述视频数据包含多个图像,所述对所述视频数据进行压缩获得压缩数据包括:
对所述视频数据中的图像进行下采样获得多个采样图像;
分别计算每个采样图像中所有像素点的灰度值以获得多个灰度图像;
依据预设的变换函数对所述灰度图像进行变换获得多个变换矩阵,并将所有变换矩阵作为压缩数据,所述预设的变换函数满足以下关系式:
其中,X代表所述变换矩阵,X(u,v)代表所述变换矩阵中第u行第v列的元素值;N代表所述灰度图像的尺寸;f代表所述灰度图像,且f[x,y]代表所述灰度图像中第x行第y列像素点的灰度值;π代表圆周常数;cos代表余弦函数。
如此,通过对视频数据中的图像进行下采样获得了采样图像,在保留图像信息的前提下缩小了图像尺寸,并将所述采样图像转换为灰度图像以降低图像的色彩复杂度,提升了后续图像变换的效率,通过预设的变换函数对灰度图像进行变换获得了变换矩阵,用以突出灰度图像中的低频信息,从而提升了后续动态率计算的效率。
在一些实施例中,所述基于所述压缩数据计算所述视频数据的动态率包括:
依据预设的阈值截取所述压缩数据获得截取矩阵;
对所述截取矩阵进行编码获得多个二进制编码;
计算每两个二进制编码之间的汉明距离以构建距离集合,并计算所述距离集合中所有元素的方差以作为所述视频数据的动态率。
如此,通过截取压缩数据中的关键信息获得截取矩阵,所述截取矩阵用以表征所述压缩数据中的低频信息,即表征图像全局模式的信息,并对所述截取矩阵进行编码获得了二进制编码数据,通过对比二进制编码数据之间的汉明距离,并计算所述汉明距离的方差获得了所述视频数据的动态率,所述动态率越高则所述视频数据越趋向于动态,直播可能越不稳定。
在一些实施例中,所述计算所述服务器节点的性能指标,并依据所述动态率和性能指标计算所述视频数据的卡顿率包括:
依据预设的关键字查询所述服务器节点的性能数据,所述性能数据包括所述服务器节点的丢包率、卡顿次数和视频丢帧率;
对所述性能数据进行归一化处理获得归一化性能数据;
基于所述归一化性能数据计算所述服务器节点的性能指标;
基于所述动态率和所述性能指标计算所述视频数据的卡顿率。
如此,通过查询服务器节点的性能数据,并基于性能数据计算了服务器节点的性能指标,进一步基于性能指标和所述动态率计算了视频数据的卡顿率,为后续是否做出服务器扩容提供了数据指引,从而使扩容决策更加准确,进而避免资源浪费。
在一些实施例中,所述卡顿率的计算方式满足以下关系式:
其中,K代表所述视频数据的卡顿率,所述卡顿率的值越高则表明所述视频数据越卡顿,则越应该对所述服务器节点进行扩容;Std代表所述视频数据的动态率;T代表所述服务器节点的性能指标;e代表自然常数。
如此,通过将所述动态率和性能指标的比值作为自变量,并将所述卡顿率作为因变量,能够平滑的表征所述动态率和所述性能指标对于所述卡顿率的影响,为后续扩容决策提供数据支撑,进一步提升了决策的准确性。
在一些实施例中,所述基于所述卡顿率做出所述服务器节点的扩容决策包括:
若所述卡顿率高于预设的阈值则从所述服务器节点的磁盘空间中划分出虚拟节点,并为所述虚拟节点分配新的IP地址;
计算所述IP地址在所述服务器集群中的索引;
将所述视频数据发送至所述索引对应的虚拟节点以完成服务器节点的扩容。
如此,通过对所述服务器节点的磁盘空间进行划分获得了虚拟节点,为所述虚拟节点分配了新的IP地址,并计算了所述新的IP地址的索引,进而将所述视频数据发送至所述索引对应的虚拟节点以完成服务器节点的扩容,能够在卡顿率较高时及时做出服务器节点的扩容决策,从而提升了服务器节点的可靠性。
在一些实施例中,所述计算所述IP地址在所述服务器集群中的索引包括:
依据预设的哈希算法计算所述IP地址的哈希值;
依据预设的映射常数对所述哈希值进行取模运算以获得映射结果,并将所述映射结果作为所述IP地址在所述服务器集群中的索引。
如此,通过哈希算法计算了所述IP地址在所述服务器集群中的索引,能够确保索引的唯一性并确保所述服务器集群的负载均衡。
本申请实施例还提供一种基于人工智能的服务器扩容决策装置,所述装置包括:
构建单元,用于构建服务器集群,所述服务器集群包含多个服务器节点,随机选取一个服务器节点作为服务器节点,所述服务器节点的功能是传输视频数据;
压缩单元,用于对所述视频数据进行压缩获得压缩数据;
第一计算单元,用于基于所述压缩数据计算所述视频数据的动态率,所述动态率用以表征所述视频数据的稳定性;
第二计算单元,用于计算所述服务器节点的性能指标,并依据所述动态率和性能指标计算所述视频数据的卡顿率,所述性能指标用以表征所述服务器节点的性能优劣,所述卡顿率用以表征所述服务器节点传输的视频数据的稳定性;
决策单元,用于基于所述卡顿率对所述服务器节点做出扩容决策。
本申请实施例还提供一种电子设备,所述电子设备包括:
存储器,存储计算机可读指令;及
处理器,执行所述存储器中存储的计算机可读指令以实现所述基于人工智能的服务器扩容决策方法。
本申请实施例还提供一种计算机可读存储介质,所述计算机可读存储介质中存储有计算机可读指令,所述计算机可读指令被电子设备中的处理器执行以实现所述基于人工智能的服务器扩容决策方法。
上述基于人工智能的服务器扩容决策方法通过对服务器集群中服务器节点传输的视频数据进行压缩获得了压缩数据,并通过压缩数据计算了所述视频数据的动态率,通过计算所述服务器节点的性能指标,并基于所述性能指标和所述动态率计算了所述服务器节点传输视频数据的卡顿率,进一步基于所述卡顿率做出了服务器节点的扩容决策,能够基于服务器集群传输数据的质量调整服务器集群中节点的数量,以确保服务器集群能够达到负载均衡,并保证了数据传输的可靠性。
附图说明
图1是本申请实施例所提供的一种基于人工智能的服务器扩容决策方法的流程图。
图2是本申请实施例所提供的基于人工智能的服务器扩容决策装置的功能模块图。
图3是本申请实施例所提供的基于人工智能的服务器扩容决策方法的电子设备的结构示意图。
图4是本申请实施例所提供的服务器集群的结构示意图。
图5是本申请实施例所提供的图像下采样示意图。
图6是本申请实施例所提供的服务器推流日志示意图。
具体实施方式
为了能够更清楚地理解本申请的目的、特征和优点,下面结合附图和具体实施例对本申请进行详细描述。需要说明的是,在不冲突的情况下,本申请的实施例及实施例中的特征可以相互结合。在下面的描述中阐述了很多具体细节以便于充分理解本申请,所述描述的实施例仅是本申请一部分实施例,而不是全部的实施例。
此外,术语“第一”、“第二”仅用于描述目的,而不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”的特征可以明示或者隐含地包括一个或者更多个所述特征。在本申请的描述中,“多个”的含义是两个或两个以上,除非另有明确具体的限定。
除非另有定义,本文所使用的所有的技术和科学术语与属于本申请的技术领域的技术人员通常理解的含义相同。本文中在本申请的说明书中所使用的术语只是为了描述具体的实施例的目的,不是旨在于限制本申请。本文所使用术语“和/或”是指一个或多个相关的项目的任意和所有组合。
本申请实施例提供一种基于人工智能的服务器扩容决策方法,可应用于一个或者多个电子设备中,所述电子设备是一种能够按照事先设定或存储的指令并自动进行数值计算和信息处理的设备,其硬件包括但不限于微处理器、专用集成电路(ApplicationSpecificIntegratedCircuit,ASIC)、可编程门阵列(Field-ProgrammableGateArray,FPGA)、数字处理器(DigitalSignalProcessor,DSP)、嵌入式设备等。
所述电子设备可以是任何一种可与用户进行人机交互的电子产品,例如,个人计算机、平板电脑、智能手机、个人数字助理(PersonalDigitalAssistant,PDA)、游戏机、交互式网络电视(InternetProtocolTelevision,IPTV)、智能式穿戴式设备等。
所述电子设备还可以包括网络设备和用户设备。其中,所述网络设备包括,但不限于单个网络服务器、多个网络服务器组成的服务器组或基于云计算(CloudComputing)的由大量主机或网络服务器所构成的云。
所述电子设备所处的网络包括但不限于互联网、广域网、城域网、局域网、虚拟专用网络(VirtualPrivateNetwork,VPN)等。
如图1所示,是本申请基于人工智能的服务器扩容决策方法的较佳实施例的流程图。根据不同的需求,该流程图中步骤的顺序可以改变,某些步骤可以省略。
S10,构建服务器集群,所述服务器集群包含多个服务器节点,所述服务器节点的功能是传输视频数据。
该可选的实施例中,所述服务器集群是一种通信集群并且由多个服务器节点组成,其中每个服务器节点的功能是接收直播端所发出的视频数据并将所述视频数据发送至用户端。
示例性的,如图4所示为所述服务器集群的结构示意图。
该可选的实施例中,每个服务器节点在所述服务器集群中都有独特的索引,可利用一致性哈希算法计算所述服务器节点在所述服务器集群中的索引以实现所述服务器集群的负载均衡,所述一致性哈希算法满足以下关系式:
R=Hash(IP地址)%232
其中,R代表所述服务器节点在所述服务器集群中的索引;Hash代表预设的哈希运算,本方案中所述哈希运算可以是SHA256算法;IP地址代表所述服务器节点的IP地址;%代表取模运算。
该可选的实施例中,所述直播端可以是具备摄像头或录屏功能的计算机、手机等硬件设备,所述直播端利用摄像头或录屏功能采集视频数据以作为视频数据,并通过互联网将所述视频数据发送至所述服务器集群。
该可选的实施例中,可从所述服务器集群中随机选取一个服务器节点作为服务器节点,并将所述直播端采集到的视频数据发送至所述服务器节点。
该可选的实施例中,所述服务器节点在接收到所述视频数据之后可生成直播观看网址,用户可在浏览器中输入所述直播观看网址以观看视频直播。
如此,基于所述服务器集群中每个服务器的IP地址计算了每个服务器节点的索引,并从服务器集群中随机选择一台服务器作为服务器节点,以便于后续对所述视频数据进行处理。
S11,对所述视频数据进行压缩获得压缩数据。
在一个可选的实施例中,所述对所述视频数据进行压缩获得压缩数据包括:
对所述视频数据中的图像进行下采样获得多个采样图像;
分别计算每个采样图像中所有像素点的灰度值以获得多个灰度图像;
依据预设的变换函数对所述灰度图像进行变换获得多个变换矩阵,并将所有变换矩阵作为压缩数据。
该可选的实施例中,所述视频数据指通过所述直播端采集到的视频数据,所述视频数据包含多个视频帧。可依据预设的采样周期采集所述视频数据中的图像作为历史图像,并对于每个历史图像进行下采样。
示例性的,若所述视频数据的帧率为240FPS,则所述视频数据每秒包含240幅图像,若所述采样周期为5秒,则在一个采样周期中可采集到1200幅历史图像。
该可选的实施例中,可基于预设的采样尺寸对所述历史图像进行均值下采样获得采样图像,每个采样图像的尺寸相同。所述均值下采样的具体实施方式为,计算所述历史图像的列数量与所述采样尺寸的商以作为子图列数,并计算历史图像的行数量与所述采样尺寸的商以作为子图行数。依据所述子图列数和所述子图行数均匀分割所述历史图像以得到多个子图像,计算每个子图像中像素点的均值,并依据所述子图像在所述历史图像中的位置关系组合所述均值获得采样图像。
示例性的,若某一个历史图像的分辨率为2560*1440且所述采样尺寸为32,则该历史图像包含2560列1440行,则所述子图列数的计算方式为:
所述子图行数的计算方式为:
则可将所述历史图像划分为32*32个子图像,每个子图像的尺寸为80*45。
该可选的实施例中,可计算每个子图像中所有像素点的均值,所述均值的计算方式为:
其中,Pmean代表所述子图像的均值;N代表所述采样尺寸;e代表所述子图像的行索引,且e的取值范围是[1,N];g代表所述子图像的列索引,且g的取值范围是[1,N];Pe,g代表所述子图像中第e行第g列元素的像素值。
该可选的实施例中,如图5所示为所述下采样的过程的示意图。
该可选的实施例中,可依据所述采样图像中每个像素点的RGB值计算对应像素点的灰度值,所述灰度值的计算方式满足以下关系式:
Gray=0.299*R+0.587*G+0.114*B
其中,Gray代表该像素点的灰度值;R代表该像素点的R通道值;G代表该像素点的G通道值;B代表该像素点的B通道值。
示例性的,若某一个像素点的R、G、B值分别为100、200、150,则该像素点的灰度值的计算方式为:
Gray=0.299*100+0.587*200+0.114*150=164.4
则该像素点的灰度值为164.4。
该可选的实施例中,对所述灰度图像进行变换获得变换图像的方法为,将所述灰度图像中每个像素点的灰度值输入预设的变换函数以获的变换矩阵,所述预设的变换函数满足以下关系式:
其中,X代表所述变换矩阵,X(u,v)代表所述变换矩阵中第u行第v列的元素值;N代表所述灰度图像的尺寸;f代表所述灰度图像,且f[x,y]代表所述灰度图像中第x行第y列像素点的灰度值;π代表圆周常数,本方案中π取3.14;cos代表余弦函数。
该可选的实施例中,可将所有变换矩阵作为所述压缩数据。
如此,通过对视频数据中的图像进行下采样获得了采样图像,在保留图像信息的前提下缩小了图像尺寸,并将所述采样图像转换为灰度图像以降低图像的色彩复杂度,提升了后续图像变换的效率,通过预设的变换函数对灰度图像进行变换获得了变换矩阵,用以突出灰度图像中的低频信息,从而提升了后续动态率计算的效率。
S12,基于所述压缩数据计算所述视频数据的动态率,所述动态率用以表征所述视频数据的稳定性。
在一个可选的实施例中,基于所述压缩数据计算所述视频数据的动态率包括:
依据预设的阈值截取所述压缩数据获得截取矩阵;
对所述截取矩阵进行编码获得多个二进制编码;
计算每两个二进制编码之间的汉明距离以构建距离集合,并计算所述距离集合中所有元素的方差以作为所述视频数据的动态率。
该可选的实施例中,所述压缩数据为行列数相等的矩阵,所述矩阵中每个元素代表一个压缩数据的值,所述方阵中的元素值越高则表明频率越低。为了截取所述矩阵中的关键信息,可依据预设的阈值从所述矩阵中截取固定尺寸的矩阵作为截取矩阵,所述截取矩阵用以表征所述图像中的低频信息,本方案中所述阈值为8,则可从所述矩阵的左上角截取尺寸为8*8的矩阵以作为截取矩阵,并可记所述截取矩阵为Dct。
该可选的实施例中,可计算所述截取矩阵的均值,并依据所述均值对所述截取矩阵进行二进制编码。本方案中所述均值指所述截取矩阵中所有元素值之和的均值,所述均值的计算方式为:
其中,Dctmean代表所述截取矩阵的均值;M代表所述阈值;i代表所述截取矩阵的行索引,且i的取值范围是[1,M];j代表所述截取矩阵的列索引,且j的取值范围是[1,M];Dcti,j代表所述截取矩阵中第i行第j列元素的Dct值。
示例性的,若所述阈值为2时所述截取矩阵为具备4个元素的矩阵,若每个元素值分别为1、2、3、4,则该截取矩阵的均值的计算方式为:
则该截取矩阵的均值为2.5。
该可选的实施例中,可依据所述截取均值对所述截取矩阵进行编码获得二进制字符串,若所述截取矩阵中某一个元素的值不小于所述均值,则该元素可被标记为1,若该元素的值小于所述均值,则该可被标记为0。在所述截取矩阵中所有元素都被标记之后,可从所述截取矩阵左上角的元素开始依据从左到右从上到下的顺序排列每个元素对应的标记以获得二进制字符串。
示例性的,若某一个截取矩阵具备4个元素,且每个元素的标记从左至右、从上至下依次为1、0、0、1,则该截取矩阵对应的二进制字符串为[1001]。
该可选的实施例中,可计算每两个历史图像对应的二进制编码之间的汉明距离以组合为距离集合,并计算所述距离集合中所有元素的方差以作为所述历史图像的动态率。
该可选的实施例中,所述汉明距离的计算方式为,将所述二进制编码的首尾对齐并设置汉明距离的初始值为0,依次判断同一位置的两个二进制编码值是否相同,若不相同则汉明距离增加1,若相同则汉明距离不变。
该可选的实施例中,可计算所述汉明距离的方差以作为所述视频数据的动态率,所述视频数据中的视频帧之间差异越小则表明所述视频数据的内容变化较小,则所述直播视频越可能处于静态,所述方差的计算方式满足以下关系式:
其中,Std代表所述汉明距离的方差,即所述视频数据的动态率,所述动态率越高则表明所述视频数据越不稳定;z代表所述汉明距离的索引,Disz代表第z个汉明距离;Dismean代表所有汉明距离的均值。
示例性的,若共有3个汉明距离且分别为5、6、7,则所述方差的计算方式为:
则所述汉明距离的方差为0.6,即所述视频数据的动态率为0.6。
该可选的实施例中,可将所述Std代表的方差作为所述视频数据的动态率。
如此,通过截取压缩数据中的关键信息获得截取矩阵,所述截取矩阵用以表征所述压缩数据中的低频信息,即表征图像全局模式的信息,并对所述截取矩阵进行编码获得了二进制编码数据,通过对比二进制编码数据之间的汉明距离,并计算所述汉明距离的方差获得了所述视频数据的动态率,所述动态率越高则所述视频数据越趋向于动态,直播可能越不稳定。
S13,计算所述服务器节点的性能指标,并依据所述动态率和性能指标计算所述视频数据的卡顿率,所述性能指标用以表征所述服务器节点的性能优劣,所述卡顿率用以表征所述服务器节点传输的视频数据的稳定性。
在一个可选的实施例中,所述计算所述服务器节点的性能指标,并依据所述动态率和性能指标计算所述视频数据的卡顿率,包括:
依据预设的关键字从所述服务器节点查询性能相关数据;
基于所述性能相关数据计算性能指标;
基于所述动态率和性能指标计算所述视频数据的卡顿率。
该可选的实施例中,可在所述服务器节点中运行预设的程序以获取推流日志,所述推流日志包含视频数据传输过程中的所有数据。本方案中所述预设的程序可以是SQL脚本,所述SQL脚本的形式可以是“SELECT*FROMCDN_LOG”,其中,*代表所述推流日志的全部内容,CDN_LOG代表所述推流日志在所述目标服务器中存储的名称,示例性的,如图6所示为所述推流日志的结构示意图。
该可选的实施例中,可依据预设的关键字查询所述推流日志以获取所述服务器节点的性能数据,所述性能数据包括重传包数、卡顿次数、视频丢帧率,所述关键字包括retrans、block、vdrop,示例性的,可将所述关键字输入预设的Python程序以查询所述服务器节点的性能数据,所述Python程序的形式可以是“RESULT.append(xifxinTable)”,其中,RESULT代表所述服务器节点的性能数据组成的列表,Table代表所述关键字组成的列表,所述Python程序的返回值为RESULT代表的列表,所述RESULT代表的列表中的每个元素代表一项性能数据。
该可选的实施例中,可记所述重传包数为Ret、记所述卡顿次数为Bl、记所述视频丢帧数为Vd,记所述性能数据的集合为RES。
该可选的实施例中,可利用最大化算法对所述性能数据进行归一化处理获得归一化的性能数据,所述归一化的性能数据包括归一化重传包数、归一化卡顿次数和归一化丢帧数,本方案以所述重传包数为例,所述归一化重传包数的计算方式满足以下关系式:
其中,Retg代表所述归一化重传包数,Ret代表所述重传包数,RESmax代表所述性能数据中的最大值。
示例性的,当所述重传包数为10、所述卡顿次数为20、所述视频丢帧数为50,则所述归一化重传包数的计算方式为:
则所述归一化重传包数的取值为0.2。
该可选的实施例中,可基于所述归一化的性能数据计算所述服务器节点的性能指标,所述性能指标的计算方法满足以下关系式:
其中,T代表所述服务器节点的性能指标,T的取值范围是(0,1],T越大表明所述服务器节点的性能越优异;Retg代表所述归一化重传包数;Blg代表所述归一化卡顿次数;Vdg代表所述归一化视频丢帧数。
示例性的,当所述归一化重传包数为0.2、所述归一化卡顿次数为0.5、所述归一化视频丢帧数为1时,所述性能指标的计算方式为:
则所述服务器节点的性能指标的取值为0.309。
该可选的实施例中,可基于所述动态率和性能指标计算所述视频数据的卡顿率,所述卡顿率的计算方法满足以下关系式:
其中,K代表所述视频数据的卡顿率,所述卡顿率的值越高则表明所述视频数据越卡顿,则越应该对所述服务器节点进行扩容;Std代表所述视频数据的动态率;T代表所述e代表自然常数。
示例性的,当所述动态率为0.6且所述性能指标为0.309时,所述卡顿率的计算方式为:
则所述卡顿率的取值为0.749。
如此,通过查询服务器节点的性能数据,并基于性能数据计算了服务器节点的性能指标,进一步基于性能指标和所述动态率计算了视频数据的卡顿率,为后续是否做出服务器扩容提供了数据指引,从而使扩容决策更加准确,进而避免资源浪费。
S14,基于所述卡顿率对所述服务器节点做出扩容决策。
在一个可选的实施例中,所述基于所述卡顿率对所述服务器节点做出扩容决策包括:
若所述卡顿率高于预设的阈值则从所述服务器节点的磁盘空间中划分出虚拟节点,并为所述虚拟节点分配新的IP地址;
计算所述IP地址在所述服务器集群中的索引;
将所述视频数据发送至所述索引对应的虚拟节点以完成服务器节点的扩容。
该可选的实施例中,若所述卡顿率高于预设的阈值则将所述服务器节点的磁盘空间中划分出虚拟节点,并为所述虚拟节点分配新的IP地址。示例性的,所述预设的阈值可以是0.5,则当所述卡顿率高于0.5时,可从所述服务器节点的磁盘空间中划分出新的空间以作为虚拟节点,并为所述虚拟节点分配IP地址。
示例性的,若所述服务器节点的IP地址为(202.168.14.241),则可为所述虚拟节点的IP地址可为(202.168.14.241#1)。
在一个可选的实施例中,计算所述IP地址在所述服务器集群中的索引包括:
依据预设的哈希算法计算所述IP地址的哈希值;
依据预设的映射常数对所述哈希值进行取模运算以获得映射结果,并将所述映射结果作为所述IP地址在所述服务器集群中的索引。
示例性的,所述预设的哈希算法可以是SHA256算法,若所述虚拟节点的IP地址为(202.168.14.241#1),则所述IP地址的哈希值的计算方式为:
Hash=SHA256(202.168.14.241#1)
=9293c41821fc0cfff518207caf5494dcf8c84c56a321be8ecb03c8dfc8369276
其中,Hash代表所述虚拟节点的IP地址对应的哈希值;SHA256代表所述哈希算法为SHA256算法。
该可选的实施例中,所述预设的映射常数可以是232,可依据所述映射常数对所述哈希值进行取模运算获得映射结果,所述映射结果的计算方式满足以下关系式:
R=Hash%232
其中,R代表所述映射结果;Hash代表所述虚拟节点的哈希值;%代表取模运算符;232为所述映射常数。
示例性的,当所述Hash代表的虚拟节点的哈希值为9293c41821fc0cfff518207caf5494dcf8c84c56a321be8ecb03c8dfc8369276时,所述映射结果的计算方式为:
R=Hash%232=(6.6298755804581e76)%232=0
则所述映射结果为0。
该可选的实施例中,可将所述映射结果作为所述IP地址在所述服务器集群中的索引,且在所述虚拟节点构建完毕之后可将所述视频数据发送至所述索引对应的节点以完成服务器节点扩容。
在另一个可选的实施例中,所述服务器集群的bus服务可实时查询所述服务器节点中的用户数量,若所述用户数量高于预设的用户阈值,则可从所述服务器节点的磁盘空间中划分出虚拟节点,并为所述虚拟节点分配新的IP地址,所述bus服务是指所述服务器集群的消息总线,其功能是为所述服务器集群构建一个共用的消息主题,并让所述服务器集群中所有服务器节点都可互相传输数据,示例性的,所述预设的用户阈值可以是6000。进一步可利用一致性哈希算法计算所述虚拟节点的IP地址获得所述虚拟节点在所述服务器集群中的索引,所述虚拟节点用以表征所述服务器节点的某一个子房间,所述虚拟节点在所述服务器集群中的索引用以表征所述子房间的ID。
该可选的实施例中,所述用户端可以向所述服务器集群发送观看信令,所述观看信令至少包括所述子房间的IP地址等信息。所述服务器集群接收到所述用户端发送的观看信令之后,可依据所述一致性哈希算法计算所述IP地址在所述服务器集群中对应的索引值,所述服务器集群可以基于所述索引值为所述用户端分配与所述观看信令对应的子房间以实现所述服务器集群的负载均衡。
如此,通过对比所述卡顿率与预设阈值获得了对比结果,并依据对比结果从所述服务器节点中划分了虚拟节点,为虚拟节点分配IP地址,并计算所述IP地址在所述服务器集群中的索引,进一步依据索引将视频数据发送至对应的虚拟节点以进行视频数据传输,能够实现服务器节点的无缝扩容,提升服务器节点的响应速度并保证了服务器集群的负载均衡。
上述基于人工智能的服务器扩容决策方法通过对服务器集群中服务器节点传输的视频数据进行压缩获得了压缩数据,并通过压缩数据计算了所述视频数据的动态率,通过计算所述服务器节点的性能指标,并基于所述性能指标和所述动态率计算了所述服务器节点传输视频数据的卡顿率,进一步基于所述卡顿率做出了服务器节点的扩容决策,能够基于服务器集群传输数据的质量调整服务器集群中节点的数量,以确保服务器集群能够达到负载均衡,并保证了数据传输的可靠性。
本申请中所述服务器集群可以是由多个直播间组成的直播间集合,所述服务器集群中的每个服务器节点代表一个直播间,所述直播间的功能是传输线上直播过程中的视频流数据。每个直播间具备一个IP地址,可将每个直播间的IP地址输入一致性哈希算法以计算每个直播间在所述直播间集合中的独特ID,用以在处理路由转发时保证服务扩缩容与异常宕机时,尽可能减少流量走向变更。
观看直播的客户端在向所述直播间集合发送观看请求时首先经过所述直播间集合的bus路由服务,所述bus服务查询所述直播间的独特ID,并依据查询到的独特ID将所述客户端连接至所述直播间。
所述直播间集合的bus路由服务可实时记录每个直播间的观看人数,并依据每个直播间的性能指标和视频流数据的动态率计算所述直播间的卡顿率,当某一个直播间的卡顿率超过阈值且所述观看人数超过人数阈值时,可对所述直播间进行扩容以获得一个虚拟节点,该虚拟节点即为所述直播间的子房间。进一步可将所述子房间的IP地址输入一致性哈希算法计算所述子房间的独特ID以完成直播间的扩容。
后续当新的客户端向所述直播间集合发出观看请求时,房间信令可根据子房间的独特ID将新的客户端连接至子房间以实现直播间集合的负载均衡。
当所述子房间人数低于所述人数阈值时,所述直播间集合的bus服务可从所述直播间集合中删除所述子房间的独特ID以完成所述直播间的缩容。
本发明可以根据所述直播间的人数和卡顿率自动对直播间进行扩容或缩容,并利用一致性哈希算法将客户端的观看请求连接到不同的服务器,以实现平行扩容,从而提升用户观看直播时的体验。
如图2所示,是本申请实施例提供的基于人工智能的服务器扩容决策装置的功能模块图。基于人工智能的服务器扩容决策装置11包括构建单元110、压缩单元111、第一计算单元112、第二计算单元113、决策单元114。本申请所称的模块/单元是指一种能够被处理器13所执行,并且能够完成固定功能的一系列计算机程序段,其存储在存储器12中。在本实施例中,关于各模块/单元的功能将在后续的实施例中详述。
在一个可选的实施例中,构建单元110用于构建服务器集群,所述服务器集群包含多个服务器节点,所述服务器节点的功能是传输视频数据。
该可选的实施例中,所述服务器集群是一种通信集群并且由多个服务器节点组成,其中每个服务器节点的功能是接收直播端所发出的视频数据并将所述视频数据发送至用户端。
示例性的,如图4所示为所述服务器集群的结构示意图。
该可选的实施例中,每个服务器节点在所述服务器集群中都有独特的索引,可利用一致性哈希算法计算所述服务器节点在所述服务器集群中的索引以实现所述服务器集群的负载均衡,所述一致性哈希算法满足以下关系式:
R=Hash(IP地址)%232
其中,R代表所述服务器节点在所述服务器集群中的索引;Hash代表预设的哈希运算,本方案中所述哈希运算可以是SHA256算法;IP地址代表所述服务器节点的IP地址;%代表取模运算。
该可选的实施例中,所述直播端可以是具备摄像头或录屏功能的计算机、手机等硬件设备,所述直播端利用摄像头或录屏功能采集视频数据以作为视频数据,并通过互联网将所述视频数据发送至所述服务器集群。
该可选的实施例中,可从所述服务器集群中随机选取一个服务器节点作为服务器节点,并将所述直播端采集到的视频数据发送至所述服务器节点。
该可选的实施例中,所述服务器节点在接收到所述视频数据之后可生成直播观看网址,用户可在浏览器中输入所述直播观看网址以观看视频直播。
在一个可选的实施例中,压缩单元111用于对所述视频数据进行压缩获得压缩数据。
在一个可选的实施例中,所述对所述视频数据进行压缩获得压缩数据包括:
对所述视频数据中的图像进行下采样获得多个采样图像;
分别计算每个采样图像中所有像素点的灰度值以获得多个灰度图像;
依据预设的变换函数对所述灰度图像进行变换获得多个变换矩阵,并将所有变换矩阵作为压缩数据。
该可选的实施例中,所述视频数据指通过所述直播端采集到的视频数据,所述视频数据包含多个视频帧。可依据预设的采样周期采集所述视频数据中的图像作为历史图像,并对于每个历史图像进行下采样。
示例性的,若所述视频数据的帧率为240FPS,则所述视频数据每秒包含240幅图像,若所述采样周期为5秒,则在一个采样周期中可采集到1200幅历史图像。
该可选的实施例中,可基于预设的采样尺寸对所述历史图像进行均值下采样获得采样图像,每个采样图像的尺寸相同。所述均值下采样的具体实施方式为,计算所述历史图像的列数量与所述采样尺寸的商以作为子图列数,并计算历史图像的行数量与所述采样尺寸的商以作为子图行数。依据所述子图列数和所述子图行数均匀分割所述历史图像以得到多个子图像,计算每个子图像中像素点的均值,并依据所述子图像在所述历史图像中的位置关系组合所述均值获得采样图像。
示例性的,若某一个历史图像的分辨率为2560*1440且所述采样尺寸为32,则该历史图像包含2560列1440行,则所述子图列数的计算方式为:
所述子图行数的计算方式为:
则可将所述历史图像划分为32*32个子图像,每个子图像的尺寸为80*45。
该可选的实施例中,可计算每个子图像中所有像素点的均值,所述均值的计算方式为:
其中,Pmean代表所述子图像的均值;N代表所述采样尺寸;e代表所述子图像的行索引,且e的取值范围是[1,N];g代表所述子图像的列索引,且g的取值范围是[1,N];Pe,g代表所述子图像中第e行第g列元素的像素值。
该可选的实施例中,如图5所示为所述下采样的过程的示意图。
该可选的实施例中,可依据所述采样图像中每个像素点的RGB值计算对应像素点的灰度值,所述灰度值的计算方式满足以下关系式:
Gray=0.299*R+0.587*G+0.114*B
其中,Gray代表该像素点的灰度值;R代表该像素点的R通道值;G代表该像素点的G通道值;B代表该像素点的B通道值。
示例性的,若某一个像素点的R、G、B值分别为100、200、150,则该像素点的灰度值的计算方式为:
Gray=0.299*100+0.587*200+0.114*150=164.4
则该像素点的灰度值为164.4。
该可选的实施例中,对所述灰度图像进行变换获得变换图像的方法为,将所述灰度图像中每个像素点的灰度值输入预设的变换函数以获的变换矩阵,所述预设的变换函数满足以下关系式:
其中,X代表所述变换矩阵,X(u,v)代表所述变换矩阵中第u行第v列的元素值;N代表所述灰度图像的尺寸;f代表所述灰度图像,且f[x,y]代表所述灰度图像中第x行第y列像素点的灰度值;π代表圆周常数,本方案中π取3.14;cos代表余弦函数。
该可选的实施例中,可将所有变换矩阵作为所述压缩数据。
在一个可选的实施例中,第一计算单元112用于基于所述压缩数据计算所述视频数据的动态率,所述动态率用以表征所述视频数据的稳定性。
在一个可选的实施例中,基于所述压缩数据计算所述视频数据的动态率包括:
依据预设的阈值截取所述压缩数据获得截取矩阵;
对所述截取矩阵进行编码获得多个二进制编码;
计算每两个二进制编码之间的汉明距离以构建距离集合,并计算所述距离集合中所有元素的方差以作为所述视频数据的动态率。
该可选的实施例中,所述压缩数据为行列数相等的矩阵,所述矩阵中每个元素代表一个压缩数据的值,所述方阵中的元素值越高则表明频率越低。为了截取所述矩阵中的关键信息,可依据预设的阈值从所述矩阵中截取固定尺寸的矩阵作为截取矩阵,所述截取矩阵用以表征所述图像中的低频信息,本方案中所述阈值为8,则可从所述矩阵的左上角截取尺寸为8*8的矩阵以作为截取矩阵,并可记所述截取矩阵为Dct。
该可选的实施例中,可计算所述截取矩阵的均值,并依据所述均值对所述截取矩阵进行二进制编码。本方案中所述均值指所述截取矩阵中所有元素值之和的均值,所述均值的计算方式为:
其中,Dctmean代表所述截取矩阵的均值;M代表所述阈值;i代表所述截取矩阵的行索引,且i的取值范围是[1,M];j代表所述截取矩阵的列索引,且j的取值范围是[1,M];Dcti,j代表所述截取矩阵中第i行第j列元素的Dct值。
示例性的,若所述阈值为2时所述截取矩阵为具备4个元素的矩阵,若每个元素值分别为1、2、3、4,则该截取矩阵的均值的计算方式为:
则该截取矩阵的均值为2.5。
该可选的实施例中,可依据所述截取均值对所述截取矩阵进行编码获得二进制字符串,若所述截取矩阵中某一个元素的值不小于所述均值,则该元素可被标记为1,若该元素的值小于所述均值,则该可被标记为0。在所述截取矩阵中所有元素都被标记之后,可从所述截取矩阵左上角的元素开始依据从左到右从上到下的顺序排列每个元素对应的标记以获得二进制字符串。
示例性的,若某一个截取矩阵具备4个元素,且每个元素的标记从左至右、从上至下依次为1、0、0、1,则该截取矩阵对应的二进制字符串为[1001]。
该可选的实施例中,可计算每两个历史图像对应的二进制编码之间的汉明距离以组合为距离集合,并计算所述距离集合中所有元素的方差以作为所述历史图像的动态率。
该可选的实施例中,所述汉明距离的计算方式为,将所述二进制编码的首尾对齐并设置汉明距离的初始值为0,依次判断同一位置的两个二进制编码值是否相同,若不相同则汉明距离增加1,若相同则汉明距离不变。
该可选的实施例中,可计算所述汉明距离的方差以作为所述视频数据的动态率,所述视频数据中的视频帧之间差异越小则表明所述视频数据的内容变化较小,则所述直播视频越可能处于静态,所述方差的计算方式满足以下关系式:
其中,Std代表所述汉明距离的方差,即所述视频数据的动态率,所述动态率越高则表明所述视频数据越不稳定;z代表所述汉明距离的索引,Disz代表第z个汉明距离;Dismean代表所有汉明距离的均值。
示例性的,若共有3个汉明距离且分别为5、6、7,则所述方差的计算方式为:
则所述汉明距离的方差为0.6,即所述视频数据的动态率为0.6。
该可选的实施例中,可将所述Std代表的方差作为所述视频数据的动态率。
在一个可选的实施例中,第二计算单元113用于计算所述服务器节点的性能指标,并依据所述动态率和性能指标计算所述视频数据的卡顿率,所述性能指标用以表征所述服务器节点的性能优劣,所述卡顿率用以表征所述服务器节点传输的视频数据的稳定性。
在一个可选的实施例中,所述计算所述服务器节点的性能指标,并依据所述动态率和性能指标计算所述视频数据的卡顿率,包括:
依据预设的关键字从所述服务器节点查询性能相关数据;
基于所述性能相关数据计算性能指标;
基于所述动态率和性能指标计算所述视频数据的卡顿率。
该可选的实施例中,可在所述服务器节点中运行预设的程序以获取推流日志,所述推流日志包含视频数据传输过程中的所有数据,本方案中所述预设的程序可以是SQL脚本,所述SQL脚本的形式可以是“SELECT*FROMCDN_LOG”,其中,*代表所述推流日志的全部内容,CDN_LOG代表所述推流日志在所述目标服务器中存储的名称,示例性的,如图6所示为所述推流日志的结构示意图。
该可选的实施例中,可依据预设的关键字查询所述推流日志以获取所述服务器节点的性能数据,所述性能数据包括重传包数、卡顿次数、视频丢帧率,所述关键字包括retrans、block、vdrop,示例性的,可将所述关键字输入预设的Python程序以查询所述服务器节点的性能数据,所述Python程序的形式可以是“RESULT.append(xifxinTable)”,其中,RESULT代表所述服务器节点的性能数据组成的列表,Table代表所述关键字组成的列表,所述Python程序的返回值为RESULT代表的列表,所述RESULT代表的列表中的每个元素代表一项性能数据。
该可选的实施例中,可记所述重传包数为Ret、记所述卡顿次数为Bl、记所述视频丢帧数为Vd,记所述性能数据的集合为RES。
该可选的实施例中,可利用最大化算法对所述性能数据进行归一化处理获得归一化的性能数据,所述归一化的性能数据包括归一化重传包数、归一化卡顿次数和归一化丢帧数,本方案以所述重传包数为例,所述归一化重传包数的计算方式满足以下关系式:
其中,Retg代表所述归一化重传包数,Ret代表所述重传包数,RESmax代表所述性能数据中的最大值。
示例性的,当所述重传包数为10、所述卡顿次数为20、所述视频丢帧数为50,则所述归一化重传包数的计算方式为:
则所述归一化重传包数的取值为0.2。
该可选的实施例中,可基于所述归一化的性能数据计算所述服务器节点的性能指标,所述性能指标的计算方法满足以下关系式:
其中,T代表所述服务器节点的性能指标,T的取值范围是(0,1],T越大表明所述服务器节点的性能越优异;Retg代表所述归一化重传包数;Blg代表所述归一化卡顿次数;Vdg代表所述归一化视频丢帧数。
示例性的,当所述归一化重传包数为0.2、所述归一化卡顿次数为0.5、所述归一化视频丢帧数为1时,所述性能指标的计算方式为:
则所述服务器节点的性能指标的取值为0.309。
该可选的实施例中,可基于所述动态率和性能指标计算所述视频数据的卡顿率,所述卡顿率的计算方法满足以下关系式:
其中,K代表所述视频数据的卡顿率,所述卡顿率的值越高则表明所述视频数据越卡顿,则越应该对所述服务器节点进行扩容;Std代表所述视频数据的动态率;T代表所述e代表自然常数。
示例性的,当所述动态率为0.6且所述性能指标为0.309时,所述卡顿率的计算方式为:
则所述卡顿率的取值为0.749。
在一个可选的实施例中,决策单元114用于基于所述卡顿率对所述服务器节点做出扩容决策。
在一个可选的实施例中,所述基于所述卡顿率对所述服务器节点做出扩容决策包括:
若所述卡顿率高于预设的阈值则从所述服务器节点的磁盘空间中划分出虚拟节点,并为所述虚拟节点分配新的IP地址;
计算所述IP地址在所述服务器集群中的索引;
将所述视频数据发送至所述索引对应的虚拟节点以完成服务器节点的扩容。
该可选的实施例中,若所述卡顿率高于预设的阈值则将所述服务器节点的磁盘空间中划分出虚拟节点,并为所述虚拟节点分配新的IP地址。示例性的,所述预设的阈值可以是0.5,则当所述卡顿率高于0.5时,可从所述服务器节点的磁盘空间中划分出新的空间以作为虚拟节点,并为所述虚拟节点分配IP地址。
示例性的,若所述服务器节点的IP地址为(202.168.14.241),则可为所述虚拟节点的IP地址可为(202.168.14.241#1)。
在一个可选的实施例中,计算所述IP地址在所述服务器集群中的索引包括:
依据预设的哈希算法计算所述IP地址的哈希值;
依据预设的映射常数对所述哈希值进行取模运算以获得映射结果,并将所述映射结果作为所述IP地址在所述服务器集群中的索引。
示例性的,所述预设的哈希算法可以是SHA256算法,若所述虚拟节点的IP地址为(202.168.14.241#1),则所述IP地址的哈希值的计算方式为:
Hash=SHA256(202.168.14.241#1)
=9293c41821fc0cfff518207caf5494dcf8c84c56a321be8ecb03c8dfc8369276
其中,Hash代表所述虚拟节点的IP地址对应的哈希值;SHA256代表所述哈希算法为SHA256算法。
该可选的实施例中,所述预设的映射常数可以是232,可依据所述映射常数对所述哈希值进行取模运算获得映射结果,所述映射结果的计算方式满足以下关系式:
R=Hash%232
其中,R代表所述映射结果;Hash代表所述虚拟节点的哈希值;%代表取模运算符;232为所述映射常数。
示例性的,当所述Hash代表的虚拟节点的哈希值为9293c41821fc0cfff518207caf5494dcf8c84c56a321be8ecb03c8dfc8369276时,所述映射结果的计算方式为:
R=Hash%232=(6.6298755804581e76)%232=0
则所述映射结果为0。
该可选的实施例中,可将所述映射结果作为所述IP地址在所述服务器集群中的索引,且在所述虚拟节点构建完毕之后可将所述视频数据发送至所述索引对应的节点以完成服务器节点扩容。
在另一个可选的实施例中,所述服务器集群的bus服务可实时查询所述服务器节点中的用户数量,若所述用户数量高于预设的用户阈值,则可从所述服务器节点的磁盘空间中划分出虚拟节点,并为所述虚拟节点分配新的IP地址,所述bus服务指所述服务器集群的消息总线,其功能是为所述服务器集群构建一个共用的消息主题,并让所述服务器集群中所有服务器节点都可互相传输数据,示例性的,所述预设的用户阈值可以是6000。进一步可利用一致性哈希算法计算所述虚拟节点的IP地址获得所述虚拟节点在所述服务器集群中的索引,所述虚拟节点用以表征所述服务器节点的某一个子房间,所述虚拟节点在所述服务器集群中的索引用以表征所述子房间的ID。
该可选的实施例中,所述用户端可以向所述服务器集群发送观看信令,所述观看信令至少包括所述子房间的IP地址等信息。所述服务器集群接收到所述用户端发送的观看信令之后,可依据所述一致性哈希算法计算所述IP地址在所述服务器集群中对应的索引值,所述服务器集群可以基于所述索引值为所述用户端分配与所述观看信令对应的子房间以实现所述服务器集群的负载均衡。
上述基于人工智能的服务器扩容决策方法通过对服务器集群中服务器节点传输的视频数据进行压缩获得了压缩数据,并通过压缩数据计算了所述视频数据的动态率,通过计算所述服务器节点的性能指标,并基于所述性能指标和所述动态率计算了所述服务器节点传输视频数据的卡顿率,进一步基于所述卡顿率做出了服务器节点的扩容决策,能够基于服务器集群传输数据的质量调整服务器集群中节点的数量,以确保服务器集群能够达到负载均衡,并保证了数据传输的可靠性。
如图3所示,是本申请实施例提供的一种电子设备的结构示意图。电子设备1包括存储器12和处理器13。存储器12用于存储计算机可读指令,处理器13用于执行储器中存储的计算机可读指令以实现上述任一实施例的基于人工智能的服务器扩容决策方法。
在一个可选的实施例中,电子设备1还包括总线、存储在存储器12中并可在处理器13上运行的计算机程序,例如基于人工智能的服务器扩容决策程序。
图3仅示出了具有组件12-13的电子设备1,本领域技术人员可以理解的是,图3示出的结构并不构成对电子设备1的限定,可以包括比图示更少或者更多的部件,或者组合某些部件,或者不同的部件布置。
结合图1,电子设备1中的存储器12存储多个计算机可读指令以实现一种基于人工智能的服务器扩容决策方法,处理器13可执行多个指令从而实现:
构建服务器集群,所述服务器集群包含多个服务器节点,所述服务器节点的功能是传输视频数据;
对所述视频数据进行压缩获得压缩数据;
基于所述压缩数据计算所述视频数据的动态率,所述动态率用以表征所述视频数据的稳定性;
计算所述服务器节点的性能指标,并依据所述动态率和性能指标计算所述视频数据的卡顿率,所述性能指标用以表征所述服务器节点的性能优劣,所述卡顿率用以表征所述服务器节点传输的视频数据的稳定性;
基于所述卡顿率做出所述服务器节点的扩容决策。
具体地,处理器13对上述指令的具体实现方法可参考图1对应实施例中相关步骤的描述,在此不赘述。
本领域技术人员可以理解,所述示意图仅仅是电子设备1的示例,并不构成对电子设备1的限定,电子设备1既可以是总线型结构,也可以是星形结构,电子设备1还可以包括比图示更多或更少的其他硬件或者软件,或者不同的部件布置,例如电子设备1还可以包括输入输出设备、网络接入设备等。
需要说明的是,电子设备1仅为举例,其他现有的或今后可能出现的电子产品如可适应于本申请,也应包含在本申请的保护范围以内,并以引用方式包含于此。
其中,存储器12至少包括一种类型的可读存储介质,所述可读存储介质可以是非易失性的,也可以是易失性的。所述可读存储介质包括闪存、移动硬盘、多媒体卡、卡型存储器(例如:SD或DX存储器等)、磁性存储器、磁盘、光盘等。存储器12在一些实施例中可以是电子设备1的内部存储单元,例如该电子设备1的移动硬盘。存储器12在另一些实施例中也可以是电子设备1的外部存储设备,例如电子设备1上配备的插接式移动硬盘、智能存储卡(SmartMediaCard,SMC)、安全数字(SecureDigital,SD)卡、闪存卡(FlashCard)等。进一步地,存储器12还可以既包括电子设备1的内部存储单元也包括外部存储设备。存储器12不仅可以用于存储安装于电子设备1的应用软件及各类数据,例如基于人工智能的服务器扩容决策程序的代码等,还可以用于暂时地存储已经输出或者将要输出的数据。
处理器13在一些实施例中可以由集成电路组成,例如可以由单个封装的集成电路所组成,也可以是由多个相同功能或不同功能封装的集成电路所组成,包括一个或者多个中央处理器(CentralProcessingunit,CPU)、微处理器、数字处理芯片、图形处理器及各种控制芯片的组合等。处理器13是电子设备1的控制核心(ControlUnit),利用各种接口和线路连接整个电子设备1的各个部件,通过运行或执行存储在存储器12内的程序或者模块(例如执行基于人工智能的服务器扩容决策程序等),以及调用存储在存储器12内的数据,以执行电子设备1的各种功能和处理数据。
处理器13执行电子设备1的操作系统以及安装的各类应用程序。处理器13执行所述应用程序以实现上述各个基于人工智能的服务器扩容决策方法实施例中的步骤,例如图1所示的步骤。
示例性的,所述计算机程序可以被分割成一个或多个模块/单元,所述一个或者多个模块/单元被存储在存储器12中,并由处理器13执行,以完成本申请。所述一个或多个模块/单元可以是能够完成特定功能的一系列计算机可读指令段,该指令段用于描述所述计算机程序在电子设备1中的执行过程。例如,所述计算机程序可以被分割成构建单元110、压缩单元111、第一计算单元112、第二计算单元113、决策单元114。
上述以软件功能模块的形式实现的集成的单元,可以存储在一个计算机可读取存储介质中。上述软件功能模块存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机、计算机设备,或者网络设备等)或处理器(processor)执行本申请各个实施例所述基于人工智能的服务器扩容决策方法的部分。
电子设备1集成的模块/单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请实施例方法中的全部或部分流程,也可以通过计算机程序来指示相关的硬件设备来完成,所述的计算机程序可存储于一计算机可读存储介质中,该计算机程序在被处理器执行时,可实现上述各个方法实施例的步骤。
其中,所述计算机程序包括计算机程序代码,所述计算机程序代码可以为源代码形式、对象代码形式、可执行文件或某些中间形式等。所述计算机可读介质可以包括:能够携带所述计算机程序代码的任何实体或装置、记录介质、U盘、移动硬盘、磁碟、光盘、计算机存储器、只读存储器(ROM,Read-OnlyMemory)、随机存储器及其他存储器等。
进一步地,计算机可读存储介质可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需的应用程序等;存储数据区可存储根据区块链节点的使用所创建的数据等。
本申请所指区块链是分布式数据存储、点对点传输、共识机制、加密算法等计算机技术的新型应用模式。区块链(Blockchain),本质上是一个去中心化的数据库,是一串使用密码学方法相关联产生的数据块,每一个数据块中包含了一批次网络交易的信息,用于验证其信息的有效性(防伪)和生成下一个区块。区块链可以包括区块链底层平台、平台产品服务层以及应用服务层等。
总线可以是外设部件互连标准(PeripheralComponentInterconnect,简称PCI)总线或扩展工业标准结构(ExtendedIndustryStandardArchitecture,简称EISA)总线等。该总线可以分为地址总线、数据总线、控制总线等。为便于表示,在图3中仅用一根箭头表示,但并不表示仅有一根总线或一种类型的总线。所述总线被设置为实现存储器12以及至少一个处理器13等之间的连接通信。
可以理解的是,电子设备1还可以包括给各个部件供电的电源(比如电池),优选地,电源可以通过电源管理装置与所述至少一个处理器13逻辑相连,从而通过电源管理装置实现充电管理、放电管理、以及功耗管理等功能。电源还可以包括一个或一个以上的直流或交流电源、再充电装置、电源故障检测电路、电源转换器或者逆变器、电源状态指示器等任意组件。电子设备1还可以包括多种传感器、蓝牙模块、Wi-Fi模块等,在此不再赘述。
进一步地,电子设备1还可以包括网络接口,可选地,所述网络接口可以包括有线接口和/或无线接口(如WI-FI接口、蓝牙接口等),通常用于在该电子设备1与其他电子设备之间建立通信连接。
可选地,该电子设备1还可以包括用户接口,用户接口可以是显示器(Display)、输入单元(比如键盘(Keyboard)),可选地,用户接口还可以是标准的有线接口、无线接口。可选地,在一些实施例中,显示器可以是LED显示器、液晶显示器、触控式液晶显示器以及OLED(OrganicLight-EmittingDiode,有机发光二极管)触摸器等。其中,显示器也可以适当的称为显示屏或显示单元,用于显示在电子设备1中处理的信息以及用于显示可视化的用户界面。
本申请实施例还提供一种计算机可读存储介质(图未示),计算机可读存储介质中存储有计算机可读指令,计算机可读指令被电子设备中的处理器执行以实现上述任一实施例所述的基于人工智能的服务器扩容决策方法。
应该了解,所述实施例仅为说明之用,在专利申请范围上并不受此结构的限制。
在本申请所提供的几个实施例中,应该理解到,所揭露的系统,装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述模块的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式。
所述作为分离部件说明的模块可以是或者也可以不是物理上分开的,作为模块显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。
另外,在本申请各个实施例中的各功能模块可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用硬件加软件功能模块的形式实现。
此外,显然“包括”一词不排除其他单元或步骤,单数不排除复数。说明书陈述的多个单元或装置也可以由一个单元或装置通过软件或者硬件来实现。第一、第二等词语用来表示名称,而并不表示任何特定的顺序。
最后应说明的是,以上实施例仅用以说明本申请的技术方案而非限制,尽管参照较佳实施例对本申请进行了详细说明,本领域的普通技术人员应当理解,可以对本申请的技术方案进行修改或等同替换,而不脱离本申请技术方案的精神和范围。
Claims (10)
1.一种基于人工智能的服务器扩容决策方法,其特征在于,所述方法包括:
构建服务器集群,所述服务器集群包含多个服务器节点,所述服务器节点的功能是传输视频数据;
对所述视频数据进行压缩获得压缩数据;
基于所述压缩数据计算所述视频数据的动态率,所述动态率用以表征所述视频数据的稳定性;
计算所述服务器节点的性能指标,并依据所述动态率和所述性能指标计算所述视频数据的卡顿率,所述性能指标用以表征所述服务器节点的性能优劣,所述卡顿率用以表征所述服务器节点传输的视频数据的稳定性;
基于所述卡顿率对所述服务器节点做出扩容决策。
3.如权利要求1所述的基于人工智能的服务器扩容决策方法,其特征在于,所述基于所述压缩数据计算所述视频数据的动态率包括:
依据预设的阈值截取所述压缩数据获得截取矩阵;
对所述截取矩阵进行编码获得多个二进制编码;
计算每两个二进制编码之间的汉明距离以构建距离集合,并计算所述距离集合中所有元素的方差以作为所述视频数据的动态率。
4.如权利要求1所述的基于人工智能的服务器扩容决策方法,其特征在于,所述计算所述服务器节点的性能指标,并依据所述动态率和性能指标计算所述视频数据的卡顿率包括:
依据预设的关键字查询所述服务器节点的性能数据,所述性能数据至少包括所述服务器节点的丢包率、卡顿次数和视频丢帧率;
对所述性能数据进行归一化处理获得归一化性能数据;
基于所述归一化性能数据计算所述服务器节点的性能指标;
基于所述动态率和所述性能指标计算所述视频数据的卡顿率。
6.如权利要求5所述的基于人工智能的服务器扩容决策方法,其特征在于,所述基于所述卡顿率对所述服务器节点做出扩容决策包括:
若所述卡顿率高于预设的阈值则从所述服务器节点的磁盘空间中划分出虚拟节点,并为所述虚拟节点分配新的IP地址;
计算所述IP地址在所述服务器集群中的索引;
将所述视频数据发送至所述索引对应的虚拟节点以完成服务器节点的扩容。
7.如权利要求6所述的基于人工智能的服务器扩容决策方法,其特征在于,所述计算所述IP地址在所述服务器集群中的索引包括:
依据预设的哈希算法计算所述IP地址的哈希值;
依据预设的映射常数对所述哈希值进行取模运算以获得映射结果,并将所述映射结果作为所述IP地址在所述服务器集群中的索引。
8.一种基于人工智能的服务器扩容决策装置,其特征在于,所述装置包括:
构建单元,用于构建服务器集群,所述服务器集群包含多个服务器节点,随机选取一个服务器节点作为服务器节点,所述服务器节点的功能是传输视频数据;
压缩单元,用于对所述视频数据进行压缩获得压缩数据;
第一计算单元,用于基于所述压缩数据计算所述视频数据的动态率,所述动态率用以表征所述视频数据的稳定性;
第二计算单元,用于计算所述服务器节点的性能指标,并依据所述动态率和性能指标计算所述视频数据的卡顿率,所述性能指标用以表征所述服务器节点的性能优劣,所述卡顿率用以表征所述服务器节点传输视频数据时的稳定性;
决策单元,用于基于所述卡顿率对所述服务器节点做出扩容决策。
9.一种电子设备,其特征在于,所述电子设备包括:
存储器,存储计算机可读指令;及
处理器,执行所述存储器中存储的计算机可读指令以实现如权利要求1至7中任意一项所述的基于人工智能的服务器扩容决策方法。
10.一种计算机可读存储介质,其特征在于:所述计算机可读存储介质中存储有计算机可读指令,所述计算机可读指令被电子设备中的处理器执行以实现如权利要求1至7中任意一项所述的基于人工智能的服务器扩容决策方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210456879.5A CN114884965B (zh) | 2022-04-27 | 2022-04-27 | 基于人工智能的服务器扩容决策方法及相关设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210456879.5A CN114884965B (zh) | 2022-04-27 | 2022-04-27 | 基于人工智能的服务器扩容决策方法及相关设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN114884965A true CN114884965A (zh) | 2022-08-09 |
CN114884965B CN114884965B (zh) | 2024-01-16 |
Family
ID=82671458
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210456879.5A Active CN114884965B (zh) | 2022-04-27 | 2022-04-27 | 基于人工智能的服务器扩容决策方法及相关设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114884965B (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116668455A (zh) * | 2023-07-28 | 2023-08-29 | 深圳博瑞天下科技有限公司 | 一种面向多区块链的平台节点数据管理方法及系统 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20190158746A1 (en) * | 2017-10-31 | 2019-05-23 | Canon Kabushiki Kaisha | Method, system and apparatus for stabilising frames of a captured video sequence |
US20210374552A1 (en) * | 2020-06-01 | 2021-12-02 | Nvidia Corporation | Video synthesis using one or more neural networks |
CN114125495A (zh) * | 2020-08-11 | 2022-03-01 | 中国电信股份有限公司 | 视频质量评估模型训练方法、视频质量评价方法和装置 |
-
2022
- 2022-04-27 CN CN202210456879.5A patent/CN114884965B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20190158746A1 (en) * | 2017-10-31 | 2019-05-23 | Canon Kabushiki Kaisha | Method, system and apparatus for stabilising frames of a captured video sequence |
US20210374552A1 (en) * | 2020-06-01 | 2021-12-02 | Nvidia Corporation | Video synthesis using one or more neural networks |
CN114125495A (zh) * | 2020-08-11 | 2022-03-01 | 中国电信股份有限公司 | 视频质量评估模型训练方法、视频质量评价方法和装置 |
Non-Patent Citations (2)
Title |
---|
嵇晓强;程揭章;郎小龙;王美娇;: "雾霾天交通视频监控系统图像实时清晰化处理", 科学技术与工程, no. 35 * |
白慧: "基于ONVIF标准的矿用视频传输系统的设计与实现", 《中国优秀硕士学位论文全文数据库(电子期刊)》 * |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116668455A (zh) * | 2023-07-28 | 2023-08-29 | 深圳博瑞天下科技有限公司 | 一种面向多区块链的平台节点数据管理方法及系统 |
CN116668455B (zh) * | 2023-07-28 | 2023-10-10 | 深圳博瑞天下科技有限公司 | 一种面向多区块链的平台节点数据管理方法及系统 |
Also Published As
Publication number | Publication date |
---|---|
CN114884965B (zh) | 2024-01-16 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
EP3197167B1 (en) | Image transmission method and apparatus | |
CN111723727A (zh) | 基于边缘计算的云监控方法、装置、电子设备及存储介质 | |
CN112671921A (zh) | 数据传输方法、装置、电子设备及可读存储介质 | |
CN114124968B (zh) | 基于行情数据的负载均衡方法、装置、设备及介质 | |
CN111476225B (zh) | 基于人工智能的车内人脸识别方法、装置、设备及介质 | |
WO2021189908A1 (zh) | 基于深度学习的图像分类方法、装置、服务器及介质 | |
CN113806434B (zh) | 大数据处理方法、装置、设备及介质 | |
CN114884965A (zh) | 基于人工智能的服务器扩容决策方法及相关设备 | |
CN113890712A (zh) | 数据传输方法、装置、电子设备及可读存储介质 | |
CN113868528A (zh) | 资讯推荐方法、装置、电子设备及可读存储介质 | |
CN112702228A (zh) | 服务限流响应方法、装置、电子设备及可读存储介质 | |
CN106570006B (zh) | 多媒体文件推荐系统和投放信息存储方法 | |
CN112445873B (zh) | 列表显示处理方法、相关装置、设备及介质 | |
CN112528265A (zh) | 基于在线会议的身份识别方法、装置、设备及介质 | |
CN111814045A (zh) | 数据查询方法、装置、电子设备及存储介质 | |
CN114268559B (zh) | 基于tf-idf算法的定向网络检测方法、装置、设备及介质 | |
CN114741422A (zh) | 查询请求方法、装置、设备及介质 | |
CN115033605A (zh) | 数据查询方法、装置、电子设备及存储介质 | |
CN112632422A (zh) | 智能裁图方法、装置、电子设备及存储介质 | |
CN112286703A (zh) | 用户分类方法、装置、客户端设备及可读存储介质 | |
US10373290B2 (en) | Zoomable digital images | |
US20130073561A1 (en) | Random sampling from distributed streams | |
CN112000945B (zh) | 基于人工智能的授权方法、装置、设备及介质 | |
CN117316359B (zh) | 血液检测过程跟踪方法、装置、设备及介质 | |
CN114938293B (zh) | 基于区块链的nginx数据溯源方法、装置、设备及存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |