掌桥专利:专业的专利平台
掌桥专利
首页

内容分发网络故障检测方法和设备

文献发布时间:2023-06-19 19:28:50


内容分发网络故障检测方法和设备

【技术领域】

本发明涉及通信领域,尤其涉及一种内容分发网络故障检测方法和设备。

【背景技术】

随着互联网用户数量的增多,网站服务器的压力越来越大。当大量用户在同一时间段访问某网站时,易造成网络拥塞现象,使该网站的服务器无法及时响应用户的访问需求。为了解决上述问题,提出了内容分发网络(Content Delivery Network,CDN)。CDN能够将用户的请求分配至离用户最近的缓存服务器上,从而提高对用户请求的响应速度,同时节省了大量的服务器资源。例如,当用户需要下载文件时,CDN可以将用户的下载请求分配至最近的缓存服务器,如果该缓存服务器缓存了用户请求的文件,就可以直接向用户提供下载服务。

用户在使用CDN时,可能会遇到下载速度慢等问题,而每种问题可能对应着多种类型的故障。如何快速而准确地对CDN的故障类型进行检测,是一个需要解决的问题。

【发明内容】

有鉴于此,本发明实施例提供了一种内容分发网络故障检测方法和设备,能够解决快速而准确地对CDN的故障类型进行检测。

第一方面,本发明实施例提供了一种内容分发网络CDN故障检测方法,包括:

将采集的CDN运行数据组成CDN数组,所述CDN数组包含M

将所述CDN数组包含的所述M

将所述灰度图片输入基于元学习算法训练得到的CDN故障检测模型,所述CDN故障检测模型用于根据所述灰度图片确定所述CDN运行数据存在的故障,并输出所述CDN运行数据的故障检测结果。

其中一种可能的实现方式中,将所述CDN数组包含的所述M

根据公式

其中,P(j,k)为灰度图片中第j行第k列的像素的灰度值,1≤j,k≤M;L[(j-1)×M+k]为所述CDN数组中第(j-1)×M+k个CDN运行数据,Min(L)为所述CDN数组中最小的CDN运行数据,Max(L)为所述CDN数组中最大的CDN运行数据。

其中一种可能的实现方式中,所述CDN故障检测模型是通过历史CDN运行故障数据训练得到的,包括:

确定所述CDN故障检测模型的多个故障检测任务,每个故障检测任务均对应有样本集,所述样本集包括若干样本灰度图片,所述样本灰度图片基于历史CDN运行故障数据转换得到;

通过所述样本集对所述CDN故障检测模型的各故障检测任务进行训练,根据训练结果得到每个故障检测任务的损失函数;

根据各个故障检测任务的损失函数,计算所述多个故障检测任务的总损失函数;

根据所述总损失函数,校正所述CDN故障检测模型的模型参数。

其中一种可能的实现方式中,确定所述样本集中的样本灰度图片,包括:

对历史CDN运行故障数据进行转换,得到基础图片;

根据所述基础图片生成扩充图片,所述基础图片和所述扩充图片均用于作为所述样本灰度图片。

其中一种可能的实现方式中,根据所述基础图片生成扩充图片,包括:

对所述基础图片进行图片编辑,得到所述扩充图片,所述图片编辑包括随机裁剪、随机缩放和随机旋转中的一项或多项的组合。

其中一种可能的实现方式中,根据所述基础图片生成扩充图片,包括:

将所述基础图片输入生成对抗网络GAN,所述GAN包含生成子网络和判别子网络;

所述生成子网络用于根据输入的基础图片生成仿真图片;

所述判别子网络用于根据所述基础图片,判断所述仿真图片是否为所述生成子网络生成的,判断结果为否的仿真图片用于作为所述扩充图片。

其中一种可能的实现方式中,根据各个故障检测任务的损失函数,计算所述多个故障检测任务的总损失函数,包括:

分别计算各个故障检测任务的损失函数的n次幂,n为预设数值;

对各个故障检测任务的n次幂进行求和计算,得到所述总损失函数。

第二方面,本发明实施例一种内容分发网络CDN故障检测装置,包括:

数组获取模块,用于将采集的CDN运行数据组成CDN数组,所述CDN数组包含M

图片转换模块,用于将所述CDN数组包含的所述M

故障检测模块,用于将所述灰度图片输入基于元学习算法训练得到的CDN故障检测模型,所述CDN故障检测模型用于根据所述灰度图片确定所述CDN运行数据存在的故障,并输出所述CDN运行数据的故障检测结果。

第三方面,本发明实施例提供一种电子设备,包括:

至少一个处理器;以及

与所述处理器通信连接的至少一个存储器,其中:

所述存储器存储有可被所述处理器执行的程序指令,所述处理器调用所述程序指令能够执行第一方面提供的方法。

第四方面,本发明实施例提供一种计算机可读存储介质,所述计算机可读存储介质包括存储的程序,其中,在所述程序运行时控制所述计算机可读存储介质所在设备执行第一方面所述的方法。

应当理解的是,本发明实施例的第二~第四方面与本发明实施例的第一方面的技术方案一致,各方面及对应的可行实施方式所取得的有益效果相似,不再赘述。

发明实施例提供的内容分发网络故障检测方法和设备,能够快速而准确地对CDN的故障类型进行检测。

【附图说明】

为了更清楚地说明本发明实施例的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其它的附图。

图1为本发明实施例提供的一种内容分发网络故障检测方法的流程图;

图2为本发明实施例提供的一种CDN故障检测模型训练方法的流程图;

图3为生成判别网络的结构示意图;

图4为元学习算法的网络结构示意图;

图5为本发明实施例提供的一种CDN故障检测装置的示意图;

图6为本发明实施例提供的另一种CDN故障检测装置的示意图;

图7为本发明实施例提供的一种电子设备的结构示意图。

【具体实施方式】

为了更好的理解本发明的技术方案,下面结合附图对本发明实施例进行详细描述。

应当明确,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其它实施例,都属于本发明保护的范围。

在本发明实施例中使用的术语是仅仅出于描述特定实施例的目的,而非旨在限制本发明。在本发明实施例和所附权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其他含义。

CDN在使用过程中可能会出现多种类型的故障,本发明实施例提供的内容分发网络故障检测方法和设备,能够快速而准确地对CDN的故障类型和位置进行检测。

图1为本发明实施例提供的一种内容分发网络故障检测方法的流程图。如图1所示,上述CDN故障检测方法可以包括:

步骤101,将采集的CDN运行数据组成CDN数组,CDN数组包含M

其中,采集的CDN运行数据包含CDN服务器的日志和CDN链路的探测数据。采集到的CDN运行数据可能包含数值和字符等多种形式的数据,先将CDN运行数据中非数值形式的数据,按照相应的映射关系转换为数值形式的数据。再将被转换为数值形式的CDN运行数组成CDN数组,使每个CDN数组均包含M

得到CDN数组后,继续执行步骤102。

步骤102,将CDN数组包含的M

具体地,一个长度为M

/>

其中,P(j,k)为灰度图片中第j行第k列的像素的灰度值(1≤j,k≤M),L[(j-1)×M+k]为该CDN数组中第(j-1)×M+k个CDN运行数据的数值,Min(L)为该CDN数组中最小的CDN运行数据,Max(L)为该CDN数组中最大的CDN运行数据。

得到灰度图片后,继续执行步骤103。

步骤103,将灰度图片输入基于元学习算法训练得到的CDN故障检测模型,CDN故障检测模型用于根据灰度图片确定CDN运行数据存在的故障,并输出CDN运行数据的故障检测结果。

具体地,将灰度图片输入基于元学习算法训练得到的CDN故障检测模型,CDN故障检测模型可以根据输入的灰度图片,对相应的CDN运行数据是否存在故障进行检测,并输出故障检测结果。如果CDN运行数据存在故障,则故障检测结果包含该CDN运行数据的故障类型和故障位置。

图2为本发明实施例提供的一种CDN故障检测模型训练方法的流程图。如图2所示,上述CDN故障检测模型训练方法可以包括:

步骤201,确定CDN故障检测模型的多个故障检测任务,每个故障检测任务均对应有样本集,样本集包括若干样本灰度图片,样本灰度图片基于历史CDN运行故障数据转换得到。

步骤202,通过样本集对CDN故障检测模型的各故障检测任务进行训练,根据训练结果得到每个所述故障检测任务的损失函数。

步骤203,根据各个故障检测任务的损失函数,计算所述多个故障检测任务的总损失函数。

步骤204,根据总损失函数,校正CDN故障检测模型的模型参数。

具体地,首先获取历史CDN运行故障数据,并对历史CDN运行故障数据的故障类型和故障位置进行标注,得到故障标签,故障标签可以用于在后续步骤中计算损失函数。之后,参照步骤101和步骤102的方法,将历史CDN运行故障数据转换为灰度图片。为了区分模型训练阶段和故障检测阶段使用的灰度图片,将历史CDN运行故障数据转换而成的灰度图片称为基础图片。

在实际操作中,可获得的历史CDN运行故障数据较少,由其转换而来的基础图片也较少。为了对样本数量进行扩充,本发明实施例可以采用两种方法对由基础图片进行数据增强,得到扩充图片。其中,扩充图片和基础图片均可以用于作为样本灰度图片,构成所述多个故障检测任务的样本集。

第一种方式为对基础图片进行图片编辑,得到扩充图片,所述图片编辑包括随机裁剪、随机缩放和随机旋转中的一项或多项的组合;第二种方式为利用生成对抗网络(Generative Adversarial Network,GAN)对基础图片进行数据增强。

需要说明的是,如图3所示,GAN由生成子网络(Generator,G)和判别子网络(Discriminator,D)两部分构成。具体地,将基础图片输入GAN,生成子网络可以根据输入的基础图片生成仿真图片,判别子网络可以对仿真图片的真实性进行判别(即判断仿真图片是基础图片,还是由生成子网络生成的仿真图片),并输出仿真图片为真(即判断仿真图片是基础图片)的概率。

可以将生成子网络理解为一个造假者,将判别子网络理解为一个鉴假者。生成子网络不断提高造假能力,试图欺骗判别子网络,从而使仿真图片达到以假乱真的效果;而判别子网络则不断提高鉴别能力,以防仿真图片鱼目混珠。生成子网络和判别子网络互相竞争,使最终生成的数据分布趋于真实的数据分布。当GAN的模型参数稳定后,所生成的仿真图片用于作为扩充图片。

完成数据增强后,确定CDN故障检测模型的多个故障检测任务,各个故障监测任务可以分别对不同类型的故障进行检测。其中每个故障检测任务均对应有样本集,样本集包括若干样本灰度图片;而样本集又可以分为支撑集(support set)和查询集(query set),支撑集和查询集分别包含第一预设数量的样本灰度图片,以及第二预设数量的样本灰度图片。

CDN故障检测模型是基于元学习算法训练得到的,如图4所示,元学习算法的网络结构主要包含卷积层、批归一化层、非线性层、池化层和全连接层。其中,全连接层用于将图像特征映射到标签特征空间,得到输出向量;再利用softmax函数,根据输出向量得到最终的故障检测结果。

优选地,卷积层采用3×3尺寸的卷积核;非线性层选择线性整流函数(RectifiedLinear Unit,ReLU)作为激活函数;池化层采用2×2随机池化,这样可以缓解因为总是取平均值(平均池化)或者总是取最大值(最大池化)所带来的参数偏差,同时模型参数倾向于更好地应对特征图像中的各种情况,使得模型的泛化能力更强。

具体地,在对CDN故障检测模型进行模型训练时,首先对模型参数θ

之后,进入内层优化。具体地,在内层优化中,将所述多个故障检测任务的支撑集输入CDN故障检测模型,CDN故障检测模型基于θ

具体地,可以使用

对θ

具体地,在外层优化中,将所述多个故障检测任务的查询集输入CDN故障检测模型,CDN故障检测模型分别基于各个故障检测任务的模型参数θ

具体地,可以使用

需要说明的是,目前,相关技术在计算总损失函数时,通常直接对各个任务的损失函数求和,得到总损失函数。但是,CDN故障检测模型对常见故障和罕见故障进行识别和定位时,故障检测结果的准确率会产生差异,因此,各个任务的损失函数也存在差异。

而模型训练的目标是,提高CDN故障检测模型对各种类型的故障进行故障检测时,所得的故障检测结果的准确率。为了解决上述问题,本发明实施例先计算各个故障检测任务的损失函数的n次幂,再在对各个故障检测任务的n次幂求和,得到总损失函数。

通过求n次幂,拉大各个故障检测任务的损失函数之间的差距,使困难任务(损失函数较大的任务)的损失函数变得更大,从而提高困难任务在总损失函数中的权重,使CDN故障检测模型快速聚焦于对困难任务的学习,进而提高模型对罕见故障的检测准确率。

在传统的故障监测领域,对故障数据进行故障特征提取的任务通常由人工完成,费时费力。而本发明实施例提供的CDN故障检测方法,先将CDN运行数据转换成灰度图片,再将灰度图片输入基于元学习算法训练得到的CDN故障检测模型,该模型能够自动提取故障特征,快速而准确地对故障进行分析定位,减少人工操作。另外,在模型训练阶段计算总损失函数时,通过动态调制函数,增大各个任务之间的差异性,提升模型的泛化能力,从而提高CDN故障检测模型的准确率。

图5为本发明实施例提供的一种CDN故障检测装置的示意图。如图5所示,上述CDN故障检测装置,可以包括:

数组获取模块31,用于将采集的CDN运行数据组成CDN数组,所述CDN数组包含M

图片转换模块32,用于将所述CDN数组包含的所述M

故障检测模块33,用于将所述灰度图片输入基于元学习算法训练得到的CDN故障检测模型,所述CDN故障检测模型用于根据所述灰度图片确定所述CDN运行数据存在的故障,并输出所述CDN运行数据的故障检测结果。

图5所示实施例提供的CDN故障检测装置可用于执行本发明图1所示方法实施例的技术方案,其实现原理和技术效果可以进一步参考方法实施例中的相关描述。

图6为本发明实施例提供的另一种CDN故障检测装置的示意图。如图6所示,上述CDN故障检测装置还可以包括:

模型训练模块34,用于确定所述CDN故障检测模型的多个故障检测任务,每个故障检测任务均对应有样本集,所述样本集包括若干样本灰度图片,所述样本灰度图片基于历史CDN运行故障数据转换得到;通过所述样本集对所述CDN故障检测模型的各故障检测任务进行训练,根据训练结果得到每个所述故障检测任务的损失函数;根据各个故障检测任务的损失函数,计算所述多个故障检测任务的总损失函数;根据所述总损失函数,校正所述CDN故障检测模型的模型参数。

图6所示实施例提供的CDN故障检测装置可用于执行本发明图2所示方法实施例的技术方案,其实现原理和技术效果可以进一步参考方法实施例中的相关描述。

图7为本发明实施提供的一种电子设备的结构示意图。图7显示的电子设备仅仅是一个示例,不应对本发明实施例的功能和使用范围带来任何限制。

如图7所示,上述电子设备可以包括至少一个处理器;以及与上述处理器通信连接的至少一个存储器,其中:存储器存储有可被处理器执行的程序指令,上述处理器调用上述程序指令能够执行本发明图1-图2所示实施例提供的CDN故障检测方法。电子设备以通用计算设备的形式表现。电子设备的组件可以包括但不限于:一个或者多个处理器410,通信接口420,存储器430,以及连接不同系统组件(包括存储器430和处理单元410)的通信总线440。

通信总线440表示几类总线结构中的一种或多种,包括存储器总线或者存储器控制器,外围总线,图形加速端口,处理器或者使用多种总线结构中的任意总线结构的局域总线。举例来说,这些体系结构包括但不限于工业标准体系结构(Industry StandardArchitecture;以下简称:ISA)总线,微通道体系结构(Micro Channel Architecture;以下简称:MAC)总线,增强型ISA总线、视频电子标准协会(Video Electronics StandardsAssociation;以下简称:VESA)局域总线以及外围组件互连(Peripheral ComponentInterconnection;以下简称:PCI)总线。

电子设备典型地包括多种计算机系统可读介质。这些介质可以是任何能够被电子设备访问的可用介质,包括易失性和非易失性介质,可移动的和不可移动的介质。

存储器430可以包括易失性存储器形式的计算机系统可读介质,例如随机存取存储器(Random Access Memory;以下简称:RAM)和/或高速缓存存储器。电子设备可以进一步包括其它可移动/不可移动的、易失性/非易失性计算机系统存储介质。存储器430可以包括至少一个程序产品,该程序产品具有一组(例如至少一个)程序模块,这些程序模块被配置以执行本发明各实施例的功能。

具有一组(至少一个)程序模块的程序/实用工具,可以存储在存储器430中,这样的程序模块包括——但不限于——操作系统、一个或者多个应用程序、其它程序模块以及程序数据,这些示例中的每一个或某种组合中可能包括网络环境的实现。程序模块通常执行本发明所描述的实施例中的功能和/或方法。

处理器410通过运行存储在存储器430中的程序,从而执行各种功能应用以及数据处理,例如实现本发明图1-图2所示实施例提供的CDN故障检测方法。

本发明实施例提供一种计算机可读存储介质,所述计算机可读存储介质包括存储的程序,其中,在所述程序运行时控制所述计算机可读存储介质所在设备执行本发明图1-图2所示实施例提供的CDN故障检测方法。

计算机可读的信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的程序代码。这种传播的数据信号可以采用多种形式,包括——但不限于——电磁信号、光信号或上述的任意合适的组合。计算机可读的信号介质还可以是计算机可读存储介质以外的任何计算机可读介质,该计算机可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。

计算机可读介质上包含的程序代码可以用任何适当的介质传输,包括——但不限于——无线、电线、光缆、RF等等,或者上述的任意合适的组合。

可以以一种或多种程序设计语言或其组合来编写用于执行本发明操作的计算机程序代码,所述程序设计语言包括面向对象的程序设计语言—诸如Java、Smalltalk、C++,还包括常规的过程式程序设计语言—诸如“C”语言或类似的程序设计语言。程序代码可以完全地在用户计算机上执行、部分地在用户计算机上执行、作为一个独立的软件包执行、部分在用户计算机上部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。在涉及远程计算机的情形中,远程计算机可以通过任意种类的网络——包括局域网(LocalArea Network;以下简称:LAN)或广域网(Wide Area Network;以下简称:WAN)连接到用户计算机,或者,可以连接到外部计算机(例如利用因特网服务提供商来通过因特网连接)。

上述对本发明特定实施例进行了描述。其它实施例在所附权利要求书的范围内。在一些情况下,在权利要求书中记载的动作或步骤可以按照不同于实施例中的顺序来执行并且仍然可以实现期望的结果。另外,在附图中描绘的过程不一定要求示出的特定顺序或者连续顺序才能实现期望的结果。在某些实施方式中,多任务处理和并行处理也是可以的或者可能是有利的。

在本发明的描述中,参考术语“一个实施例”、“一些实施例”、“示例”、“具体示例”、或“一些示例”等的描述意指结合该实施例或示例描述的具体特征、结构、材料或者特点包含于本发明的至少一个实施例或示例中。在本发明中,对上述术语的示意性表述不必须针对的是相同的实施例或示例。而且,描述的具体特征、结构、材料或者特点可以在任一个或多个实施例或示例中以合适的方式结合。此外,在不相互矛盾的情况下,本领域的技术人员可以将本发明中描述的不同实施例或示例以及不同实施例或示例的特征进行结合和组合。

此外,术语“第一”、“第二”仅用于描述目的,而不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”的特征可以明示或者隐含地包括至少一个该特征。在本发明的描述中,“多个”的含义是至少两个,例如两个,三个等,除非另有明确具体的限定。

流程图中或在此以其他方式描述的任何过程或方法描述可以被理解为,表示包括一个或更多个用于实现定制逻辑功能或过程的步骤的可执行指令的代码的模块、片段或部分,并且本发明的优选实施方式的范围包括另外的实现,其中可以不按所示出或讨论的顺序,包括根据所涉及的功能按基本同时的方式或按相反的顺序,来执行功能,这应被本发明的实施例所属技术领域的技术人员所理解。

取决于语境,如在此所使用的词语“如果”可以被解释成为“在……时”或“当……时”或“响应于确定”或“响应于检测”。类似地,取决于语境,短语“如果确定”或“如果检测(陈述的条件或事件)”可以被解释成为“当确定时”或“响应于确定”或“当检测(陈述的条件或事件)时”或“响应于检测(陈述的条件或事件)”。

在本发明所提供的几个实施例中,应该理解到,所揭露的系统、装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如,多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。

另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用硬件加软件功能单元的形式实现。

以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明保护的范围之内。

相关技术
  • 一种认证方法、内容分发网络CDN和内容服务器
  • 内容分发方法、设备及计算机可读存储介质
  • 内容分发网络中内容分发的方法、设备和网络系统
  • 内容分发网络及在内容分发网络中进行内容管理的方法
技术分类

06120115924620