虚拟GPU使用率的检测方法和装置与流程

文档序号:17661026发布日期:2019-05-15 22:22阅读:107来源:国知局

本发明涉及计算机虚拟化技术领域,尤其涉及一种虚拟gpu使用率的检测方法和装置。



背景技术:

现有的基于服务器虚拟化(single-rooti/ovirtualization,sriov)的图形处理器(graphicprocessingunit,gpu)分片虚拟化技术,对于gpu的负载率的数据采集,只能是基于整个物理gpu的粒度监控整个物理gpu的负载情况,没有办法监控物理gpu上每一个虚拟gpu各自的负载情况。然而一个物理gpu通常被虚拟化成多个虚拟gpu给不同的用户使用,用户没有办法知道自己的程序对所购买gpu的使用率的情况,就无法更进一步了解到他们所购买的gpu能力是否最优契合他们的业务需求。



技术实现要素:

为了解决上述问题,本发明提供一种虚拟gpu使用率的检测方法和装置,可以快速简便地检测每个虚拟gpu各自的工作负载情况。

本发明提供一种虚拟gpu使用率的检测方法,包括:

当监测到任一虚拟gpu被调度时,负载计算引擎从预设的计数阈值开始计数所述虚拟gpu的使用率;

当监测到从所述虚拟gpu切换到其他虚拟gpu时,负载计算引擎停止所述虚拟gpu的使用率的计数;

根据所述虚拟gpu的使用率的计数值更新对应的寄存器中所述虚拟gpu的使用率,其中,所述寄存器为所述虚拟gpu的寄存器。

可选地,根据所述虚拟gpu的使用率的计数值更新对应的寄存器中所述虚拟gpu的使用率之后,包括:

将负载计算引擎的计数值设置为所述计数阈值,从所述计数阈值开始计数所述其他虚拟gpu的使用率。

可选地,根据所述虚拟gpu的使用率的计数值更新对应的寄存器中所述虚拟gpu的使用率,包括:

根据当前更新的寄存器中的所述虚拟gpu的使用率的计数值,和寄存器中上次保存的所述虚拟gpu的平均使用率,取平均值作为所述虚拟gpu的最新平均使用率。

可选地,所述的方法还包括:

读取所述虚拟gpu的寄存器中最新平均使用率,根据最新平均使用率确定所述虚拟gpu的负载率。

可选地,所述的方法还包括:

读取所述虚拟gpu的寄存器中最新平均使用率之后,将所述虚拟gpu的寄存器中最新平均使用率设置为所述计数阈值。

本申请还包括一种虚拟gpu使用率的检测装置,包括:

负载计算引擎,用于当监测到任一虚拟gpu被调度时,从预设的计数阈值开始计数所述虚拟gpu的使用率;

所述负载计算引擎,还用于当监测到从所述虚拟gpu切换到其他虚拟gpu时,停止所述虚拟gpu的使用率的计数;

寄存器,用于根据所述虚拟gpu的使用率的计数值更新对应的寄存器中所述虚拟gpu的使用率,其中,所述寄存器为所述虚拟gpu的寄存器。

可选地,所述负载计算引擎,还用于根据所述虚拟gpu的使用率的计数值更新对应的寄存器中所述虚拟gpu的使用率之后,将负载计算引擎的计数值设置为所述计数阈值,从所述计数阈值开始计数所述其他虚拟gpu的使用率。

可选地,所述寄存器,具体用于根据当前更新的所述寄存器中的所述虚拟gpu的使用率的计数值,和所述寄存器中上次保存的所述虚拟gpu的平均使用率,取平均值作为所述虚拟gpu的最新平均使用率。

可选地,所述的装置还包括:

读取模块,用于读取所述虚拟gpu的寄存器中最新平均使用率,根据最新平均使用率确定所述虚拟gpu的负载率。

可选地,所述的装置还包括:

重设模块,用于在所述读取模块读取所述虚拟gpu的寄存器中最新平均使用率之后,将所述虚拟gpu的寄存器中最新平均使用率设置为所述计数阈值。

本发明实施例通过在每个虚拟gpu中设置一个寄存器,在每个虚拟gpu被调用时,gpu的负载计算引擎从0开始计录虚拟gpu的使用率,并在该虚拟gpu被切换到其他虚拟gpu时,将记录的该虚拟gpu的使用率写到入对应的寄存器中用于更新该虚拟gpu的平均使用率,从而在每个负载监控周期内,可以从寄存器中获取该虚拟gpu的平均使用率并呈现给用户。因此,本发明的技术方案可以实现对每个虚拟gpu的负载使用率的监控,并可以直观地呈现给用户,以便用户知道自己的程序对所购买gpu的使用率的情况。

附图说明

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

图1为本发明一实施例提供的虚拟gpu使用率的检测方法的流程示意图;

图2为本发明实施例提供的一种虚拟gpu使用率的检测系统结构示意图;

图3为本发明一实施例提供的虚拟gpu使用率的检测装置结构示意图。

具体实施方式

为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

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

应当理解,本文中使用的术语“和/或”仅仅是一种描述关联对象的关联关系,表示可以存在三种关系,例如,a和/或b,可以表示:单独存在a,同时存在a和b,单独存在b这三种情况。另外,本文中字符“/”,一般表示前后关联对象是一种“或”的关系。

还需要说明的是,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的商品或者系统不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种商品或者系统所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的商品或者系统中还存在另外的相同要素。

图形处理器(英语:graphicsprocessingunit,缩写:gpu)虚拟化技术:是指将一块物理gpu的资源进行虚拟分片,同时供给一个或多个虚拟机使用的技术,在此称之为gpu一对多虚拟化技术。每一个gpu的虚拟分片称之为一个虚拟gpu。

图1为本发明一实施例提供的虚拟gpu使用率的检测方法的流程示意图,如图1所示,

101、当监测到任一虚拟gpu被调度时,负载计算引擎从预设的计数阈值开始计数所述虚拟gpu的使用率;

本发明实施例中,预设的计数阈值例如可以设为0,即当监测到任一虚拟gpu被调度时,负载计算引擎从0开始计数所述虚拟gpu的使用率。

102、当监测到从所述虚拟gpu切换到其他虚拟gpu时,负载计算引擎停止所述虚拟gpu的使用率的计数;

103、根据所述虚拟gpu的使用率的计数值更新对应的寄存器中所述虚拟gpu的使用率。

其中,本发明实施例中,每个虚拟gpu对应有一个寄存器,因此,所述寄存器为所述虚拟gpu的寄存器。

其中,本发明实施例中,根据所述虚拟gpu的使用率的计数值更新对应的寄存器中所述虚拟gpu的使用率之后,将负载计算引擎的计数值设置为所述计数阈值,从所述计数阈值开始计数所述其他虚拟gpu的使用率;若预设的计数阈值设为0时,可以将负载计算引擎的计数值清0,从0开始计数所述其他虚拟gpu的使用率。

其中,本发明实施例中,根据所述虚拟gpu的使用率的计数值更新对应的寄存器中所述虚拟gpu的使用率,包括:

根据当前更新的寄存器中的所述虚拟gpu的使用率的计数值,和寄存器中上次保存的所述虚拟gpu的平均使用率,取平均值作为所述虚拟gpu的最新平均使用率。

本发明实施例中,步骤103之后,还包括:

104、读取所述虚拟gpu的寄存器中最新平均使用率,根据最新平均使用率确定当前所述虚拟gpu的负载率。

本发明实施例中,本发明实施例中,步骤104之后,还包括:

105、读取所述虚拟gpu的寄存器中最新平均使用率之后,将所述虚拟gpu的寄存器中最新平均使用率设置为所述计数阈值,以便在下一个负载监控周期内对所述虚拟gpu的最新平均使用率进行计算。

图2为本发明实施例提供的一种虚拟gpu使用率的检测系统结构示意图,如图2所示,在每一个虚拟gpu(如图2所述的虚拟分片)中增加一个寄存器,用于记录每个虚拟分片被调用时的使用率。如图2中所示,由于负载计算引擎只有一个,是由各虚拟分片按照时间片轮转的方式共享使用的。

基于图2所示的系统架构,本发明实施例中,虚拟gpu使用率的检测流程具体实现如下:

根据时间片轮转,例如当虚拟分片1被调用的时候,根据负载计算引擎从0开始计数,记录虚拟分片1的使用率。

当虚拟分片发生切换的时候,比如从虚拟分片1切换到虚拟分片2,在切换的过程中,将负载计算引擎记录的虚拟分片1的使用率写入到虚拟分片1的寄存器,用于更新寄存器中虚拟分片1的最新平均使用率,其中,最新平均使用率的计算方式为:(虚拟分片1的寄存器的计数值+负载计算引擎的计数值)/2,其中,虚拟分片1的寄存器的计数值是指寄存器中上次保存的虚拟分片1的平均使用率,负载计算引擎的计数值是指当前记录的虚拟分片1的使用率。这里需要注意的是,虚拟分片1的寄存器在每一次虚拟分片1被切换出去的时候都被更新为最新平均使用率,直到被外部的负载监控程序读取虚拟分片1的寄存器中的最新平均使用率后才清0。对于任意一个虚拟分片x的寄存器更新,同理。

更新完虚拟分片1的寄存器中的最新平均使用率后,将负载计算引擎清0,此时可以开始记录虚拟分片2的使用率。

gpu外部的负载监控程序,按照预设的负载监控频率从虚拟分片的寄存器读取虚拟分片最新平均使用率,这里需要说明的是,通常,负载监控频率远小于上述对虚拟分片的寄存器中最新平均使用率的更新频率,因此,从虚拟分片的寄存器读取虚拟分片上次保存的平均使用率,虚拟分片的寄存器在读取后被清0。

gpu外部的负载监控程序将读取的虚拟分片的寄存器的计数值按照标准算法转换成虚拟分片的负载率,并呈现给用户,以便用户知道自己的程序对所购买gpu的使用率的情况,其中,标准算法可以是现有技术中任一将虚拟分片的寄存器的计数值转换成虚拟分片的负载率的算法,本发明对此不作限定。

本发明实施例通过在每个虚拟gpu中设置一个寄存器,在每个虚拟gpu被调用时,gpu的负载计算引擎从0开始计录虚拟gpu的使用率,并在该虚拟gpu被切换到其他虚拟gpu时,将记录的该虚拟gpu的使用率写到入对应的寄存器中用于更新该虚拟gpu的平均使用率,从而在每个负载监控周期内,可以从寄存器中获取该虚拟gpu的平均使用率并呈现给用户。因此,本发明的技术方案可以实现对每个虚拟gpu的负载使用率的监控,并可以直观地呈现给用户,以便用户知道自己的程序对所购买gpu的使用率的情况。

图3为本发明一实施例提供的虚拟gpu使用率的检测装置结构示意图,如图3所示,包括:

负载计算引擎,用于当监测到任一虚拟gpu被调度时,从预设的计数阈值开始计数所述虚拟gpu的使用率;

所述负载计算引擎,还用于当监测到从所述虚拟gpu切换到其他虚拟gpu时,停止所述虚拟gpu的使用率的计数;

寄存器,用于根据所述虚拟gpu的使用率的计数值更新对应的寄存器中所述虚拟gpu的使用率,其中,所述寄存器为所述虚拟gpu的寄存器。

可选地,所述负载计算引擎,还用于根据所述虚拟gpu的使用率的计数值更新对应的寄存器中所述虚拟gpu的使用率之后,将负载计算引擎的计数值设置为所述计数阈值,从所述计数阈值开始计数所述其他虚拟gpu的使用率。

可选地,所述寄存器,具体用于根据当前更新的所述寄存器中的所述虚拟gpu的使用率的计数值,和所述寄存器中上次保存的所述虚拟gpu的平均使用率,取平均值作为所述虚拟gpu的最新平均使用率。

可选地,所述的装置还包括:

读取模块,用于读取所述虚拟gpu的寄存器中最新平均使用率,根据最新平均使用率确定所述虚拟gpu的负载率。

可选地,所述的装置还包括:

重设模块,用于在所述读取模块读取所述虚拟gpu的寄存器中最新平均使用率之后,将所述虚拟gpu的寄存器中最新平均使用率设置为所述计数阈值,以便在下一个负载监控周期内对所述虚拟gpu的最新平均使用率进行计算。

本发明实施例所述的装置可以上述实施例所示的方法,其实现原理和技术效果不再赘述。

本发明实施例中,上述虚拟gpu使用率的检测装置的结构中包括处理器和存储器,所述存储器用于存储支持虚拟gpu使用率的检测装置执行上述图1所示实施例中虚拟gpu使用率的检测方法的程序,所述处理器被配置为用于执行所述存储器中存储的程序。

所述程序包括一条或多条计算机指令,其中,所述一条或多条计算机指令供所述处理器调用执行。

本发明实施例还提供了一种计算机存储介质,用于储存虚拟gpu使用率的检测装置所用的计算机软件指令,所述计算机软件指令包含了用于执行上述虚拟gpu使用率的检测方法为虚拟gpu使用率的检测装置所涉及的程序。

最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1