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

一种监测网卡的模型训练方法及其应用、系统和电子设备

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


一种监测网卡的模型训练方法及其应用、系统和电子设备

技术领域

本发明涉及网络通信技术领域,具体的,涉及一种监测网卡的模型训练方法及其应用、系统和电子设备。

背景技术

随着容器化和kubernetes编排技术的流行,当下几乎所有的应用都运行在kubernetes集群当中。无数的服务在集群上面以pod的形式运行,当集群节点发生CPU、IO、磁盘等性能瓶颈时,kubernetes集群对该节点的pod按照一定的策略重新调度迁移到资源满足的新节点,确保节点资源和服务的双向平衡。 kubelet监测节点各项指标并与阈值进行比较触发主动驱逐是kubernetes重新调度的核心、关键手段。

虽然kubernetes在机器上对于CPU、IO、磁盘等监测的运用已经很广,但是缺乏对机器网卡流量的监测和驱逐,对于网卡压力大时,kubernetes无法感知以及触发pod驱逐,导致未能及时主动的进行pod迁移和网络流量负载均衡。并且网络资源是动态变化的,需要针对不同时刻各个网络节点的情况进行动态的均衡。

发明内容

本发明旨在克服上述现有技术的至少一种缺陷,提出一种监测网卡的模型训练方法及其应用、系统和电子设备,用于能够智能的实现对网卡的监测和驱逐。

本发明采用的技术方案为:

提供一种监测网卡的模型训练方法,所述方法包括:

获取驱逐历史记录集合,计算生成验证集矩阵,以所述验证集矩阵构建训练集D和验证集V;

将训练集输入到卷积神经网络中,通过与反向传播算法结合的随机梯度下降方式进行训练,获取训练好的调参模型,所述调参模型用于根据当前node集群机器上的数据情况动态计算软驱逐阈值和硬驱逐阈值,当网卡流量满足所述软驱逐阈值或硬驱逐阈值时,分别对pod执行软驱逐和硬驱逐;

所述通过反向传播算法结合的随机梯度下降方式进行训练包括:

将训练集D输入到神经网络模型中,得到网络输出为

A1:随机初始化参数权重矩阵w和偏置b;

A2:对训练集中的样本随机重排序;

A3:从训练集D中选取样本x

A4:前馈计算每一层的净输入z

A5:反向传播计算每一层的误差δ

A6:计算

A7:通过公式进行W、b参数的更新:

A9:重复执行A2-A8步骤,直到卷积神经网络模型在验证集V上的错误率不再下降。

所述驱逐历史记录为历史上驱逐时的node集群机器的性能参数指标以及对应的软驱逐阈值和硬驱逐阈值。

获取历史上产生驱逐时node集群机器上的各项性能参数,包括软驱逐阈值、硬驱逐阈值、CPU使用率、内存使用率、网卡使用率以及驱逐信号等,这些信息存储在node集群机器的时序数据库中,生成验证集矩阵,与软驱逐阈值及硬驱逐阈值一起生成训练集,通过与反向传播算法结合的随机梯度下降方式进行训练,获取训练好的调参模型,所述调参模型能够根据各项性能参数计算该性能指标下最优的软驱逐阈值和硬驱逐阈值,当机器满足软驱逐阈值或硬驱逐阈值时,对集群中的pod执行驱逐,并且软驱逐阈值和硬驱逐阈值不是一成不变的,通过结合当前动态变化的机器的性能参数使用调参模型进行计算,能够得到当前机器状态下最优的软驱逐阈值和硬驱逐阈值进行设置。使机器能够动态的根据自身状态设置最优的驱逐阈值,实现智能的对网卡的监控和驱逐。并且由于网卡信息数据量非常大,所以使用随机梯度下降和反向传播算法相结合的训练方式,提高了训练的效率。

进一步的,所述计算生成验证集矩阵,以所述验证集矩阵X构建训练集D和验证集V具体为:

从获取到的记录中提取软驱逐阈值、硬驱逐阈值、CPU、内存网卡指标、驱逐信号量、驱逐记录,联合抽取数据形成验证集矩阵,然后以验证集矩阵生成训练集数据D和验证集V;

训练集

其中x为验证集矩阵,X[0]表示CPU使用率、X[1]表示内存使用率、X[2] 表示网卡使用率,y为对应的CPU使用率、内存使用率和网卡使用率下的pod 的驱逐占比;

验证集

使用磁盘读写、流量压测、密集型CPU运行程序,使得CPU、内存、网卡的使用率进行调整,记录下此时的pod运行个数总数y1,进行压测前机器运行的pod的总个数y0,以及CPU使用率、内存使用率和网卡使用率,其中驱逐pod 总数y2=y0-y1。x[3]=y2/y0,并组合此时的CPU使用率、内存使用率、网卡使用率三个指标,组成驱逐记录矩阵4元组。因为CPU、内存和网卡为影响计算机性能的主要参数,结合进行分析能够更好的计算出其与驱逐阈值的关联关系,进而获得最优的驱逐阈值。

进一步的,所述软驱逐阈值eviction-soft包括:cpu.available(CPU使用阈值),memory.available(内存使用阈值)和network.available(网卡使用阈值);

所述硬驱逐阈值eviction-hard包括:cpu.available(CPU使用阈值),memory.available(内存使用阈值)和network.available(网卡使用阈值)。

分别为k8s的软驱逐和硬驱逐设置了CPU使用阈值,内存使用阈值和网卡使用阈值,可以实现分别对CPU,内存和网卡资源进行监测,当当前的CPU使用率、内存使用率或网卡使用率超出对应的软驱逐或硬驱逐阈值时,执行驱逐将 pod驱逐,通过对三个要素的判断,使对pod的驱逐更加智能。

本发明还提供一种监测网卡的模型的应用,所述方法包括:

配置采集模块对集群node机器进行监控和数据采集;

将采集到的数据进行预处理并存储;

基于K8s来对网卡的驱逐算法模型进行改进,包括:为网卡设置软驱逐阈值和硬驱逐阈值的初始值,并将其设置到监听服务中,当网卡节点流量占用小于软驱逐阈值或硬驱逐阈值时,发送驱逐信号驱逐网卡节点对应的pod;

构建智能调参组件,所述智能调参组件采用上述所述的一种监测网卡的模型训练方法训练好的调参模型,动态更新软驱逐阈值和硬驱逐阈值。

采集模块使用cAdvisor采集node集群机器的实时的CPU、内存和网卡流量等信息,并将其存储至时序数据库中,为node集群机器配置K8s模型,将 K8s模型基于网卡流量的监测进行改进,将K8s中针对系统CPU、内存和磁盘容量的监控和驱逐改写为针对网卡流量资源的监控和驱逐,并设置对应的初始的软驱逐阈值和硬驱逐阈值,当网卡流量数据满足软驱逐阈值和硬驱逐阈值时,将 node集群中的一定数量的pod驱逐,以释放网卡资源来供给其他更需要网卡资源的pod;并且使用智能调参组件来对软驱逐阈值和硬驱逐阈值进行实时的调整,使用上述的训练好的模型来对实时的CPU、内存和网卡流量信息进行计算,计算出在这一状态下的最优的软驱逐阈值和硬驱逐阈值,实时进行更新,并将更新前的软驱逐阈值和硬驱逐阈值结合状态参数信息一同存入时序数据库中,作为新的历史数据为模型训练提供数据。通过上述应用方式,使node集群机器能够监控网卡,并且智能的对pod进行驱逐。

进一步的,所述预处理并存储包括:

将原始数据累计接收流量(rx_bytes)、累计接收错误流量(rx_errors)、累计传输流量(tx_bytes)和累计传输错误流量(tx_errors)保存到内存中,并计算每秒接收流量(rx_bytes_perSecon)和每秒传输流量(tx_bytes_perSecon);

将计算后好的每秒接收流量和每秒传输流量记录到时序数据库。

设置采集周期node-status-update-frequency参数为5s,分别将累计值除以该采集周期计算每秒的传输和接收的流量,秒传输量和秒接收量能够更好的体现当前网卡的网络性能。

进一步的,所述基于K8s来对网卡的驱逐算法模型进行改进的具体步骤为:

S1:为所述软驱逐阈值eviction-soft和硬驱逐阈值eviction-hard设置初始值;

S2:加载软驱逐阈值和硬驱逐到驱逐管理器EvictionManager;

S3:启动一个协程监听服务thresholdNotifier,所述监听服务获取所述预处理后的数据并结合S2中的软驱逐阈值和硬驱逐阈值形成数据集thresholds;

S4:配置网卡流量判断单元并根据步骤S3中的数据集进行匹配运算,判断是否符合软驱逐阈值或硬驱逐阈值,如符合则发送驱逐信号signal并将驱逐信号记录到时序数据库中,否则忽略;

S5:根据步骤S4发送的驱逐信号对有活跃的pod进行驱逐;

S6:循环执行步骤S3-S5。

进一步的,所述软驱逐阈值eviction-soft初始值设置为:

eviction-soft=network.available<20%;

所述硬驱逐阈值eviction-hard初始值设置为:

eviction-hard=network.available<20%。

即当网卡流量查过80%(1-20%)时,产生驱逐信号signal驱逐pod,驱逐信号signal为软驱逐或硬驱逐。

进一步的,所述对有活跃的pod进行驱逐具体为:

所述驱逐管理器接收到驱逐信号后,获取当前节点的资源使用情况和所有活动的pod,将所有活跃的pod进行优先级排序,按照排序后的顺序将优先级低的 pod进行驱逐,并将驱逐的pod记录到时序数据库。

驱逐管理器包括notifier、monitor和synchronize三个组件构成,本发明对这三个组件进行优化改进,用以支持网卡流量监测和pod驱逐。将notifier改进为网卡监听服务thresholdNotifier,接收预处理后的数据、软驱逐阈值和硬驱逐阈值,生成数据集thresholds,传递给网卡流量判断单元,网卡流量判断单元根据thresholds中的数据进行匹配运算,如果符合驱逐阈值条件则产生驱逐信号 signal,thresholdNotifier将signal发送到channal消息通道,触发synchronize 驱逐工作,并将signal信号存储到时序数据库中,synchronize接收到signal信号后,对集群中的pod按照优先级较低的顺序进行排序,驱逐优先级较低的一定数量的pod,释放网卡资源。其中软驱逐阈值和硬驱逐阈值设置有初始值,之后根据模型计算出的最优软驱逐阈值和硬驱逐阈值进行实时更新。

本发明还提供一种监测网卡的系统,所述系统采用上述一种监测网卡的模型的应用,所述系统包括:采集模块、存储模块、驱逐管理模块和智能调参组件;

所述采集模块用于对集群node机器进行监测和数据采集;

所述存储模块包括时序数据库,用于存储采集模块采集到的数据以及其他处理过程产生的数据;

所述驱逐管理模块用于加载K8s驱逐管理器及其对应的组件,设置软驱逐阈值和硬驱逐阈值,对采集模块采集的数据进行分析计算,判断是否符合软驱逐阈值和硬驱逐阈值的条件,如符合则执行驱逐,否则忽略;

所述智能调参组件用于动态更新软驱逐阈值和硬驱逐阈值。

本发明还提供一种监测网卡的电子设备,包括:

存储区和处理器;

所述存储器上存储有计算机可读指令,所述计算机可读指令被所述处理器时根据上述一种监测网卡的模型的应用或一种监测网卡的系统。

与现有技术相比,本发明的有益效果为:1.针对网卡资源改写K8s组件,实现了对集群机器网卡资源的监测和驱逐,解决了网卡压力大时,pod无法被及时驱逐的问题;

2.通过训练神经网络模型构建智能调参组件,实现智能且动态的调节驱逐条件。

附图说明

图1为本发明的一种监测网卡的模型训练方法步骤;

图2为本发明的一种监测网卡的模型的应用步骤;

图3为本发明的一种监测网卡的系统;

附图标注:采集模块1,存储模块2,驱逐管理模块3,智能调参组件4。

具体实施方式

本发明附图仅用于示例性说明,不能理解为对本发明的限制。为了更好说明以下实施例,附图某些部件会有省略、放大或缩小,并不代表实际产品的尺寸;对于本领域技术人员来说,附图中某些公知结构及其说明可能省略是可以理解的。

实施例1

本实施例提供一种监测网卡的模型训练方法,所述方法包括:

获取驱逐历史记录集合,计算生成验证集矩阵,以所述验证集矩阵构建训练集D和验证集V;从时序数据库中获取驱逐历史记录集合,包括产生驱逐时node 集群机器上的各项性能参数,具体包括软驱逐阈值、硬驱逐阈值、CPU使用率、内存使用率、网卡使用率以及驱逐信号,将这些信息生成验证集矩阵X,其中X [0]为产生驱逐时集群机器的CPU使用率,X[1]为产生驱逐时的内存使用率,X[2] 为产生驱逐时的网卡使用率,X[3]为驱逐pod占总pod数量的比例,在具体实施方式中,使用磁盘读写、流量压测、密集型CPU运行程序,使得CPU、内存、网卡的使用率进行调整,记录下此时的pod运行个数总数y1,进行压测前机器运行的pod的总个数y0,以及CPU使用率、内存使用率和网卡使用率,其中驱逐pod总数y2=y0-y1。X[3]=y2/y0,并组合此时的CPU使用率、内存使用率、网卡使用率三个指标,组成驱逐记录矩阵4元组,如下为生成的验证集矩阵的具体示例:

生成验证集矩阵X后,与对应驱逐时的软驱逐阈值和硬驱逐阈值构建训练集

将优化后的训练集输入到卷积神经网络中,通过与反向传播算法结合的随机梯度下降方式进行训练,将训练集D输入到神经网络模型中,得到网络输出为

A1:随机初始化参数权重矩阵w和偏置b;

A2:对训练集中的样本随机重排序;

A3:从训练集D中选取样本x

A4:前馈计算每一层的净输入z

A5:反向传播计算每一层的误差δ

A6:计算

A7:通过公式进行W、b参数的更新:

A9:重复执行A2-A8步骤,直到卷积神经网络模型在验证集V上的错误率不再下降。

由于采集和获取的网卡数据非常庞大,所以采用一般的训练方法会使训练效率降低,通过随机梯度下降和反向传播算法相结合的训练方式来训练模型,能够大大提高训练效率。获取训练好的调参模型,所述调参模型用于根据当前node 集群机器上的数据情况动态计算软驱逐阈值和硬驱逐阈值,当网卡流量满足所述软驱逐阈值或硬驱逐阈值时,分别对pod执行软驱逐和硬驱逐。

具体的,软驱逐阈值eviction-soft包括:cpu.available(CPU使用阈值),memory.available(内存使用阈值)和network.available(网卡使用阈值);所述硬驱逐阈值eviction-hard包括:cpu.available(CPU使用阈值), memory.available(内存使用阈值)和network.available(网卡使用阈值)。分别为k8s的软驱逐和硬驱逐设置了CPU使用阈值,内存使用阈值和网卡使用阈值,可以实现分别对CPU,内存和网卡资源进行监测,当当前的CPU使用率、内存使用率或网卡使用率超出对应的软驱逐或硬驱逐阈值时,执行驱逐将pod 驱逐,通过对三个要素的判断,使对pod的驱逐更加智能。

通过训练好的调参模型,动态的根据集群机器的状态参数来计算用于驱逐的驱逐阈值,使机器能够通过模型智能的调节集群机器网卡资源的驱逐条件。同时采用随机梯度下降和反向传播算法相结合的训练方式来训练模型,大大的提高训练效率。

实施例2

本实施例提供一种监测网卡的模型的应用,所述方法包括:

配置采集模块1对集群node机器进行监控和数据采集;将采集到的数据进行预处理并存储;采集模块1使用cAdvisor采集node集群机器的实时的CPU、内存和网卡流量等信息,其中网卡流量中包含数据累计接收流量(rx_bytes)、累计接收错误流量(rx_errors)、累计传输流量(tx_bytes)和累计传输错误流量 (tx_errors),设置采集周期node-status-update-frequency参数为5s,将其存储至内存中,并分别使用累计值除以采集周期(5s),计算每秒接收流量 (rx_bytes_perSecon)和每秒传输流量(tx_bytes_perSecon),并将其存储至时序数据库中。

基于K8s来对网卡的驱逐算法模型进行改进,具体步骤为:

S1:为所述软驱逐阈值eviction-soft和硬驱逐阈值eviction-hard设置初始值;软驱逐阈值eviction-soft初始值设置为:eviction-soft=network.available<20%;硬驱逐阈值eviction-hard初始值设置为:eviction-hard=network.available<20%。

为node集群机器配置K8s模型,将K8s模型基于网卡流量的监测进行改进,将K8s中针对系统CPU、内存和磁盘容量的监控和驱逐改写为针对网卡流量资源的监控和驱逐,并增加网卡驱逐阈值启动参数:设置对应的初始的软驱逐阈值和硬驱逐阈值,当网卡流量数据满足软驱逐阈值和硬驱逐阈值时,将node 集群中的一定数量的pod驱逐,以释放网卡资源来供给其他更需要网卡资源的 pod;在本实施例中,设置network.available<20%,即当网卡流量超过80%(1-20%) 时,产生驱逐信号signal驱逐pod,驱逐信号signal为软驱逐或硬驱逐。

S2:加载软驱逐阈值和硬驱逐到驱逐管理器EvictionManager;

S3:启动一个协程监听服务thresholdNotifier,所述监听服务获取所述预处理后的数据并结合S2中的软驱逐阈值和硬驱逐阈值形成数据集thresholds;

具体的,驱逐管理器包括notifier、monitor和synchronize三个组件构成,首先启动驱逐管器,并加载软驱逐阈值和硬驱逐阈值,并将其共享给驱逐管理器的各个组件使用;将notifier进行改写,启动协程监听服务thresholdNotifier,接收从cAdvisor采集并预处理后的每秒传输流量和每秒接收流量等性能值,以及驱逐管理器之前加载的软驱逐阈值和硬驱逐阈值,合并生成数据集thresholds;

S4:配置网卡流量判断单元,监听服务在生成数据集thresholds之后将其传输给网卡流量判断单元,网卡流量判断单元根据数据集thresholds进行匹配运算,判断是否符合软驱逐阈值或硬驱逐阈值,如符合则发送驱逐信号signal,并由thresholdNotifier将signal发送到channal消息通道,以触发synchronize 组件的驱逐工作,并将该signal驱逐信号记录到时序数据库中;如果不符合驱逐条件则忽略;

S5:根据步骤S4发送的驱逐信号signal对有活跃的pod进行驱逐;具体为,synchronize接收到signal后,获取当前节点的组员使用情况和所有活动的 pod,将所有活跃的pod进行优先级排序,按照排序后的顺序将优先级低的pod 执行驱逐,并将驱逐的pod记录到时序数据库,以释放网卡资源来供给其他更需要网卡资源的pod。

S6:循环执行步骤S3-S5。

配置好驱逐算法模型后,构建智能调参组件4,所述智能调参组件4采用实施例1所述的一种监测网卡的模型训练方法训练好的调参模型,动态更新软驱逐阈值和硬驱逐阈值。具体为,使用实施例1中的训练好的模型来对实时的CPU、内存和网卡流量信息进行计算,计算出在这一状态下的最优的软驱逐阈值和硬驱逐阈值,实时进行更新,并将更新前的软驱逐阈值和硬驱逐阈值结合状态参数信息一同存入时序数据库中,作为新的历史数据为模型训练提供数据。

实施例3

本实施例提供一种监测网卡的系统,所述系统采用上述实施例2中一种监测网卡的模型的应用,所述系统包括:采集模块1、存储模块2、驱逐管理模块3 和智能调参组件4;

所述采集模块1用于对集群node机器进行监测和数据采集;

所述存储模块2包括时序数据库,用于存储采集模块1采集到的数据以及其他处理过程产生的数据;

所述驱逐管理模块3用于加载K8s驱逐管理器及其对应的组件,设置软驱逐阈值和硬驱逐阈值,对采集模块1采集的数据进行分析计算,判断是否符合软驱逐阈值和硬驱逐阈值的条件,如符合则执行驱逐,否则忽略;

所述智能调参组件4用于动态更新软驱逐阈值和硬驱逐阈值。

实施例4

本实施例提供一种监测网卡的电子设备,包括:

存储区和处理器;

所述存储器上存储有计算机可读指令,所述计算机可读指令被所述处理器时根据上述实施例2中一种监测网卡的模型的应用或实施例3中的一种监测网卡的系统。

显然,本发明的上述实施例仅仅是为清楚地说明本发明技术方案所作的举例,而并非是对本发明的具体实施方式的限定。凡在本发明权利要求书的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明权利要求的保护范围之内。

技术分类

06120115632532