一种容器的GPU进程统计方法和装置制造方法及图纸

技术编号:31162914 阅读:18 留言:0更新日期:2021-12-04 10:33
本发明专利技术公开了一种容器的GPU进程统计方法和装置,方法包括:重定义原生动态库的原生动态链接符号函数和GPU状态显示命令中的原生进程统计函数,并基于重定义的进程统计函数构建劫持函数表;运行包括多个原生进程统计函数的函数符号的GPU状态显示命令;使用打开函数调用原生动态库以获得操作句柄,并使用原生动态链接符号函数基于操作句柄和多个函数符号分别获得多个原生函数地址;将记载于劫持函数表内的多个函数符号重定向到劫持函数表中对应的劫持函数地址以获取GPU进程标识和进程名称;将GPU进程标识替换为对应的容器进程标识以显示容器的GPU进程状态。本发明专利技术能够高效获取容器的GPU进程统计信息,提升容器的易用性。提升容器的易用性。提升容器的易用性。

【技术实现步骤摘要】
一种容器的GPU进程统计方法和装置


[0001]本专利技术涉及计算机领域,更具体地,特别是指一种容器的GPU进程统计方法和装置。

技术介绍

[0002]在人工智能大数据时代,随着数据量的不断增大,对算力的需求也越来越高,GPU的超高计算力使其广泛应用于各个行业,但是由于其高昂的价格,实际各个企业在应用中多采用K8s(Kubernetes)等工具来管理平台资源,并通过容器的方式来分配和管理各个用户申请的资源,从而尽可能的隔离各个用户之间的干扰。
[0003]然而,在容器内使用nvidia自带的nvidia

smi命令或者nvidia

ml库函数是无法获取和显示容器内GPU任务的统计信息的,用户只能通过在HOST主机端来查看所有GPU运行任务,无法直观的区分哪些任务属于自己的容器。更进一步,当多个用户运行的GPU任务名相同时,用户更加难以区分,且当用户想监控自己GPU任务运行状态时不得不监控整个HOST上的GPU任务,造成大量无效信息的输出,造成系统资源的浪费。
[0004]虽然有方案指出对nvidia管理库函数进行劫持并利用linux proc目录查找容器内进程,但只对nvidia管理库函数进行劫持,对nvidia驱动自带的可执行命令而言是失效的,导致两者调用不一致;且直接利用proc目录来查找进程信息,造成大量无用的磁盘文件读取和分析。
[0005]针对现有技术中难以监控特定容器的GPU进程状态的问题,目前尚无有效的解决方案。

技术实现思路
/>[0006]有鉴于此,本专利技术实施例的目的在于提出一种容器的GPU进程统计方法和装置,能够高效获取容器的GPU进程统计信息,提升容器的易用性。
[0007]基于上述目的,本专利技术实施例的第一方面提供了一种容器的GPU进程统计方法,包括执行以下步骤:
[0008]重定义原生动态库的原生动态链接符号函数和GPU状态显示命令中的原生进程统计函数,并基于重定义的进程统计函数构建劫持函数表;
[0009]运行包括多个原生进程统计函数的函数符号的GPU状态显示命令;
[0010]使用打开函数调用原生动态库以获得操作句柄,并使用原生动态链接符号函数基于操作句柄和多个函数符号分别获得多个原生函数地址;
[0011]使用重定义的动态链接符号函数分别判断多个函数符号是否记载于劫持函数表内,并将记载于劫持函数表内的多个函数符号重定向到劫持函数表中对应的劫持函数地址以获取GPU进程标识和进程名称;
[0012]将GPU进程标识替换为对应的容器进程标识以显示容器的GPU进程状态。
[0013]在一些实施方式中,基于重定义的进程统计函数构建劫持函数表包括:向劫持函
数表中写入重定义的进程统计函数的函数符号、劫持函数地址、以及指针类型。
[0014]在一些实施方式中,在将记载于劫持函数表内的多个函数符号重定向到劫持函数表中对应的劫持函数地址以获取GPU进程标识和进程名称的同时,还使用未记载于劫持函数表内的多个函数符号各自的原生函数地址来获取GPU进程标识和进程名称。
[0015]在一些实施方式中,将GPU进程标识替换为对应的容器进程标识以显示容器的GPU进程状态包括:
[0016]使用读取进程表获取每个容器进程标识,利用匹配规则基于每个容器进程标识来搜索并分别对应每个容器进程标识的调度文件;
[0017]从每个调度文件中分别读取每个容器进程标识对应的GPU进程标识和进程名称,并响应于从每个调度文件中分别读取的GPU进程标识和进程名称、与根据多个函数符号分别获取的GPU进程标识和进程名称相匹配,而将根据多个函数符号分别获取的GPU进程标识替换为对应的容器进程标识;
[0018]输出进程名称、对应的容器进程标识、以及容器的GPU进程状态。
[0019]在一些实施方式中,在使用读取进程表获取每个容器进程标识之后,先剔除容器进程标识0或1的进程以及GPU状态显示命令其本身所使用的进程,再利用匹配规则基于其余的容器进程标识来搜索并分别对应每个容器进程标识的调度文件。
[0020]本专利技术实施例的第二方面提供了一种容器的GPU进程统计装置,包括:
[0021]处理器;
[0022]控制器,存储有处理器可运行的程序代码,处理器在运行程序代码时执行以下步骤:
[0023]重定义原生动态库的原生动态链接符号函数和GPU状态显示命令中的原生进程统计函数,并基于重定义的进程统计函数构建劫持函数表;
[0024]运行包括多个原生进程统计函数的函数符号的GPU状态显示命令;
[0025]使用打开函数调用原生动态库以获得操作句柄,并使用原生动态链接符号函数基于操作句柄和多个函数符号分别获得多个原生函数地址;
[0026]使用重定义的动态链接符号函数分别判断多个函数符号是否记载于劫持函数表内,并将记载于劫持函数表内的多个函数符号重定向到劫持函数表中对应的劫持函数地址以获取GPU进程标识和进程名称;
[0027]将GPU进程标识替换为对应的容器进程标识以显示容器的GPU进程状态。
[0028]在一些实施方式中,基于重定义的进程统计函数构建劫持函数表包括:向劫持函数表中写入重定义的进程统计函数的函数符号、劫持函数地址、以及指针类型。
[0029]在一些实施方式中,在将记载于劫持函数表内的多个函数符号重定向到劫持函数表中对应的劫持函数地址以获取GPU进程标识和进程名称的同时,还使用未记载于劫持函数表内的多个函数符号各自的原生函数地址来获取GPU进程标识和进程名称。
[0030]在一些实施方式中,将GPU进程标识替换为对应的容器进程标识以显示容器的GPU进程状态包括:
[0031]使用读取进程表获取每个容器进程标识,利用匹配规则基于每个容器进程标识来搜索并分别对应每个容器进程标识的调度文件;
[0032]从每个调度文件中分别读取每个容器进程标识对应的GPU进程标识和进程名称,
并响应于从每个调度文件中分别读取的GPU进程标识和进程名称、与根据多个函数符号分别获取的GPU进程标识和进程名称相匹配,而将根据多个函数符号分别获取的GPU进程标识替换为对应的容器进程标识;
[0033]输出进程名称、对应的容器进程标识、以及容器的GPU进程状态。
[0034]在一些实施方式中,在使用读取进程表获取每个容器进程标识之后,先剔除容器进程标识0或1的进程以及GPU状态显示命令其本身所使用的进程,再利用匹配规则基于其余的容器进程标识来搜索并分别对应每个容器进程标识的调度文件。
[0035]本专利技术具有以下有益技术效果:本专利技术实施例提供的容器的GPU进程统计方法和装置,通过重定义原生动态库的原生动态链接符号函数和GPU状态显示命令中的原生进程统计函数,并基于重定义的进程统计函数构建劫持函数表;运行包括多个原生进程统计函数的函数符号的GPU状态显示命令;使用打开函数调用原生动态库以获得操作本文档来自技高网...

【技术保护点】

【技术特征摘要】
1.一种容器的GPU进程统计方法,其特征在于,包括执行以下步骤:重定义原生动态库的原生动态链接符号函数和GPU状态显示命令中的原生进程统计函数,并基于重定义的进程统计函数构建劫持函数表;运行包括多个所述原生进程统计函数的函数符号的所述GPU状态显示命令;使用打开函数调用所述原生动态库以获得操作句柄,并使用所述原生动态链接符号函数基于所述操作句柄和多个所述函数符号分别获得多个原生函数地址;使用重定义的动态链接符号函数分别判断多个所述函数符号是否记载于所述劫持函数表内,并将记载于所述劫持函数表内的多个所述函数符号重定向到所述劫持函数表中对应的劫持函数地址以获取GPU进程标识和进程名称;将所述GPU进程标识替换为对应的容器进程标识以显示容器的GPU进程状态。2.根据权利要求1所述的方法,其特征在于,基于重定义的进程统计函数构建劫持函数表包括:向所述劫持函数表中写入所述重定义的进程统计函数的函数符号、劫持函数地址、以及指针类型。3.根据权利要求1所述的方法,其特征在于,在将记载于所述劫持函数表内的多个所述函数符号重定向到所述劫持函数表中对应的劫持函数地址以获取GPU进程标识和进程名称的同时,还使用未记载于所述劫持函数表内的多个所述函数符号各自的所述原生函数地址来获取GPU进程标识和进程名称。4.根据权利要求1所述的方法,其特征在于,将所述GPU进程标识替换为对应的容器进程标识以显示容器的GPU进程状态包括:使用读取进程表获取每个所述容器进程标识,利用匹配规则基于每个所述容器进程标识来搜索并分别对应每个所述容器进程标识的调度文件;从每个所述调度文件中分别读取每个所述容器进程标识对应的GPU进程标识和进程名称,并响应于从每个所述调度文件中分别读取的所述GPU进程标识和所述进程名称、与根据多个所述函数符号分别获取的所述GPU进程标识和所述进程名称相匹配,而将根据多个所述函数符号分别获取的所述GPU进程标识替换为对应的所述容器进程标识;输出所述进程名称、对应的所述容器进程标识、以及容器的GPU进程状态。5.根据权利要求4所述的方法,其特征在于,在使用读取进程表获取每个所述容器进程标识之后,先剔除所述容器进程标识0或1的进程以及GPU状态显示命令其本身所使用的进程,再利用匹配规则基于其余的所述容器进程标识来搜索并分别对应每个所述容器进程标识的调度文件。6.一种容器的GPU进程统计装置,其特征在于,包括:处理...

【专利技术属性】
技术研发人员:刘慧兴
申请(专利权)人:苏州浪潮智能科技有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1