一种监控内存带宽的方法及装置制造方法及图纸

技术编号:31975668 阅读:13 留言:0更新日期:2022-01-20 01:19
本申请实施例公开了一种监控内存带宽的方法及装置,涉及计算机领域。方法包括:处理器核获取到预设周期内进程组访问易失性内存所使用的内存带宽大小,以及统计进程组在预设周期内执行的内存操作后,根据内存带宽大小和统计的内存操作计算进程组访问非易失性内存所使用的内存带宽大小。实现了以进程组为粒度监控非易失性内存的内存带宽,进而将非易失性内存的内存带宽大小作为限制非易失性内存的内存带宽的依据。存带宽的依据。存带宽的依据。

【技术实现步骤摘要】
一种监控内存带宽的方法及装置
[0001]本申请要求于2020年07月17日提交国家知识产权局、申请号为202010691597.4、申请名称为“一种内存带宽的监控方法和装置”的中国专利申请的优先权,其全部内容通过引用结合在本申请中。


[0002]本申请实施例涉及计算机领域,尤其涉及一种监控内存带宽的方法及装置。

技术介绍

[0003]随着云技术的发展和繁荣,一台服务器可以运行不同租户的多个进程,多个进程共享服务器的各种资源(如:计算资源、存储资源和内存资源等),以提高服务器的资源利用率。但是,资源共享可能带来性能上不公平的问题。例如,相同优先级的进程获得不同的资源。又如,优先级低的进程占用了大量的资源,优先级高的进程无法获取充足的资源,导致租户的业务受到影响,降低了用户体验。传统技术中,采用资源控制组(control group,cgroup)技术将多个进程划分为不同的进程组,不同的进程组使用不同的资源(如:计算资源、存储资源和内存资源)。另外,采用资源调配技术(resource director technology)识别占用大量易失性内存的内存带宽的进程并限制该进程占用易失性内存的内存带宽,以确保其他进程获取充足的内存资源。
[0004]由于非易失性内存(non-volatile memory,NVM)的内存带宽远低于易失性内存的内存带宽。在多租户云环境中,非易失性内存的内存带宽竞争比易失性内存的内存带宽的竞争更为激烈,易造成业务劣化甚至中断。但是,由于非易失性内存未提供内存带宽限制功能,资源调配技术无法实现对非易失性内存的内存带宽的监控和限制。因此,如何监控非易失性内存的内存带宽是一个亟待解决的问题。

技术实现思路

[0005]本申请实施例提供了一种监控内存带宽的方法及装置,实现了以进程组为粒度监控非易失性内存的内存带宽,进而将非易失性内存的内存带宽大小作为限制非易失性内存的内存带宽的依据。
[0006]第一方面,提供一种监控内存带宽的方法,用于监控非易失性内存的内存带宽。该方法包括:处理器核获取预设周期内进程组访问易失性内存所使用的内存带宽大小,以及统计进程组在预设周期内执行的内存操作,进而根据所述内存带宽大小和统计的内存操作计算进程组访问非易失性内存所使用的第一内存带宽大小。这里的内存操作包括非易失性内存操作和易失性内存操作。如此,处理器核基于预设周期内的非易失性内存操作、易失性内存操作和进程组访问易失性内存所使用的内存带宽大小估计进程组访问易失性内存所使用的内存带宽大小,通过软件方法实现了以进程组为粒度监控非易失性内存的内存带宽,进而将非易失性内存的内存带宽大小作为限制非易失性内存的内存带宽的依据。
[0007]值得说明的是,进程组在预设周期内执行的内存操作可理解为进程组在预设周期
内执行的内存操作所访问的内存地址。内存操作为内存读写操作。进程组包括至少一个进程。在一些实施例中,一个进程组可以是一个容器或一个虚拟机。一个进程组包含的所有进程可以由一个容器运行或一个虚拟机运行。在另一些实施例中,一个进程组包含的进程可以由多个容器运行或多个虚拟机运行。也就是说,一个进程组包含的进程是多个容器中的进程。或者,一个进程组包含的进程是多个虚拟机中的进程。
[0008]在一种可能的设计中,根据内存带宽大小和统计的内存操作计算进程组访问非易失性内存所使用的第一内存带宽大小,包括:处理器核根据内存操作所访问的内存地址确定进程组访问非易失性内存的访问量和进程组访问易失性内存的访问量的比例;根据内存带宽大小和比例计算进程组访问非易失性内存所使用的第一内存带宽大小。由于内存操作所访问的内存地址包括非易失性内存操作所访问的内存地址和易失性内存操作所访问的内存地址。依据内存操作所访问的内存地址可以确定内存操作所访问的内存的内存类型和内存大小。内存类型包括非易失性内存和易失性内存。内存大小包括进程组访问易失性内存的内存大小和进程组访问非易失性内存的内存大小。进而,处理器核根据内存操作的内存大小和内存类型确定进程组访问非易失性内存的访问量和进程组访问易失性内存的访问量的比例。可理解的,进程组访问非易失性内存的访问量为进程组访问非易失性内存的内存大小。进程组访问易失性内存的访问量为进程组访问易失性内存的内存大小。
[0009]可选的,预设周期内执行的内存操作是预设周期内全部内存操作或部分内存操作。
[0010]进一步,在根据内存带宽大小和统计的内存操作计算进程组访问非易失性内存所使用的第一内存带宽大小之后,方法还包括:若非易失性内存的第一内存带宽大小大于或等于非易失性内存带宽阈值,设置进程组的内存带宽限制,非易失性内存带宽阈值为进程组访问非易失性内存允许使用的内存带宽的最大值。从而,通过限制措施控制进程组访问易失性内存所使用的内存带宽大小,间接限制进程组访问非易失性内存所使用的内存带宽大小。避免由于进程组、容器或者虚拟机使用过多的非易失性内存带宽,影响其他进程组、容器或者虚拟机无法访问非易失性内存,解决了邻位干扰故障扩散导致的业务性能劣化甚至中断的问题。
[0011]设置进程组的内存带宽限制包括以下一种或多种:将进程组的第一易失性内存带宽阈值调整为第二易失性内存带宽阈值,第一易失性内存带宽阈值大于第二易失性内存带宽阈值,第一易失性内存带宽阈值和第二易失性内存带宽阈值均指进程组访问易失性内存允许使用的内存带宽的最大值。由于降低了进程组访问易失性内存允许使用的易失性内存的内存带宽的最大值,从而进程组使用易失性内存和非易失性内存的总的内存带宽大小也随之降低,间接地进程组使用的非易失性内存的内存带宽也随之降低,实现限制非易失性内存的内存带宽到任意值。
[0012]将进程组包含的进程从运行进程组的第一处理器核迁移到第二处理器核。由于减少了处理器核运行的进程组包含的进程的个数,进程组对易失性内存和非易失性内存的内存操作便随之减少,进程组使用易失性内存和非易失性内存的总的内存带宽大小也随之降低,间接地进程组使用的非易失性内存的内存带宽也随之降低,实现限制非易失性内存的内存带宽到任意值。
[0013]将进程组的第一时间片调整为第二时间片,第一时间片大于第二时间片,第一时
间片和第二时间片均为进程组占用第一处理器核的时长。由于缩短了进程组占用处理器核的时长,进程组对易失性内存和非易失性内存的内存操作便随之减少,进程组使用易失性内存和非易失性内存的总的内存带宽大小也随之降低,间接地进程组使用的非易失性内存的内存带宽也随之降低,实现限制非易失性内存的内存带宽到任意值。
[0014]在一种可能的设计中,如果将进程组的第一易失性内存带宽阈值调整为第二易失性内存带宽阈值后,当非易失性内存的第二内存带宽大小大于或等于非易失性内存带宽阈值,将进程组包含的进程从运行进程组的第一处理器核迁移到第二处理器核。可选的,第一处理器核和第二处理器核属于非一致性内存访问(non-uniform memory access,NUMA)系统中一个或多个NUMA节点。
[0015]在一种可能本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种监控内存带宽的方法,其特征在于,包括:获取预设周期内进程组访问易失性内存所使用的内存带宽大小,以及统计所述进程组在所述预设周期内执行的内存操作,所述内存操作包括非易失性内存操作和易失性内存操作,所述进程组包括至少一个进程;根据所述内存带宽大小和统计的所述内存操作计算所述进程组访问非易失性内存所使用的第一内存带宽大小。2.根据权利要求1所述的方法,其特征在于,所述进程组在所述预设周期内执行的内存操作,包括:所述进程组在所述预设周期内执行的内存操作所访问的内存地址。3.根据权利要求1或2所述的方法,其特征在于,根据所述内存带宽大小和统计的所述内存操作计算所述进程组访问非易失性内存所使用的第一内存带宽大小,包括:根据所述内存操作所访问的内存地址确定所述进程组访问所述非易失性内存的访问量和所述进程组访问所述易失性内存的访问量的比例;根据所述内存带宽大小和所述比例计算所述进程组访问所述非易失性内存所使用的第一内存带宽大小。4.根据权利要求3所述的方法,其特征在于,根据所述内存操作所访问的内存地址确定所述进程组访问所述非易失性内存的访问量和所述进程组访问所述易失性内存的访问量的比例,包括:根据所述内存操作所访问的内存地址确定所述内存操作的内存大小和内存类型,所述内存类型包括所述易失性内存和所述非易失性内存,所述内存大小包括所述进程组访问所述易失性内存的内存大小和所述进程组访问所述非易失性内存的内存大小;根据所述内存操作的内存大小和所述内存类型确定所述进程组访问所述非易失性内存的访问量和所述进程组访问所述易失性内存的访问量的比例。5.根据权利要求1-4中任一项所述的方法,其特征在于,所述预设周期内执行的内存操作是全部内存操作或部分内存操作。6.根据权利要求1-5中任一项所述的方法,其特征在于,所述内存操作为内存读写操作。7.根据权利要求1-6中任一项所述的方法,其特征在于,在根据所述内存带宽大小和统计的所述内存操作计算所述进程组访问非易失性内存所使用的第一内存带宽大小之后,所述方法还包括:若所述第一内存带宽大小大于或等于非易失性内存带宽阈值,设置所述进程组的内存带宽限制,所述非易失性内存带宽阈值为所述进程组访问所述非易失性内存允许使用的内存带宽的最大值。8.根据权利要求7所述的方法,其特征在于,设置所述进程组的内存带宽限制包括以下一种或多种:将所述进程组的第一易失性内存带宽阈值调整为第二易失性内存带宽阈值,所述第一易失性内存带宽阈值大于所述第二易失性内存带宽阈值,所述第一易失性内存带宽阈值和所述第二易失性内存带宽阈值均指所述进程组访问所述易失性内存允许使用的内存带宽的最大值;
将所述进程组包含的进程从运行所述进程组的第一处理器核迁移到第二处理器核;将所述进程组的第一时间片调整为第二时间片,所述第一时间片大于所述第二时间片,所述第一时间片和所述第二时间片均为所述进程组占用所述第一处理器核的时长。9.根据权利要求8所述的方法,其特征在于,将所述进程组包含的进程从运行所述进程组的第一处理器核迁移到第二处理器核,包括:将所述进程组的第一易失性内存带宽阈值调整为第二易失性内存带宽阈值后,当所述非易失性内存的第二内存带宽大小大于或等于所述非易失性内存带宽阈值,将所述进程组包含的进程从运行所述进程组的第一处理器核迁移到所述第二处理器核。10.根据权利要求9所述的方法,其特征在于,将所述进程组的第一时间片调整为第二时间片,包括:将所述进程组包含的进程从运行所述进程组的第一处理器核迁移到所述第二处理器核后,当所述非易失性内存的第三内存带宽大小大于或等于所述非易失性内存带宽阈值,将所述进程组的第一时间片调整为所述第二时间片。11.根据权利要求10所述的方法,其特征在于,将所述进程组的第一时间片调整为所述第二时间片之后,所述方法还包括:当所述非易失性内存的第四内存带宽大小小于所述非易失性内存带宽阈值,将所述进程组的第二时间片调整为所述第一时间片。12.根据权利要求11所述的方法,其特征在于,将所述进程组的第二时间片调整为所述第一时间片之后,所述方法还包括:当所述非易失性内存的第五内存带宽大小小于所述非易失性内存带宽阈值,将所述进程组包含的进程从所述第二处理器核迁移到所述第一处理器核。13.根据权利要求12所述的方法,其特征在于,将所述进程组包含的进程从所述第二处理器核迁移到所述第一处理器核之后,所述方法还包括:当所述非易失性内存的第六内存带宽大小小于所述非易失性内存带宽阈值,将所述进程组的第二易失性内存带宽阈值调整为所述第一易失性内存带宽阈值。14.根据权利要求7-13中任一项所述的方法,其特征在于,所述非易失性内存带宽阈值是通过第一文件系统接口设置的。15.根据权利要求8-14中任一项所述的方法,其特征在于,第一易失性内存带宽阈值和第二易失性内存带宽阈值是通过第二文件系统接口设置的。16.根据权利要求8-15中任一项所述的方法,其特征在于,第一处理器核和第二处理器核属于非一致性内存访问NUMA系统中一个或多个NUMA节点。17.一种限制内存带宽的方法,其特征在于,包括:若进程组在预设周期内访问非易失性内存所使用的第一内存带宽大小大于或等于非易失性内存带宽阈值,将所述进程组的第一易失性内存带宽阈值调整为第二易失性内存带宽阈值,所述非易失性内存带宽阈值为所述进程组访问所述非易失性内存允许使用的内存带宽的最大值,所述第一易失性内存带宽阈值大于所述第二易失性内存带宽阈值,所述第一易失性内存带宽阈值和所述第二易失性内存带宽阈值均指所述进程组访问易失性内存允许使用的内存带宽的最大值,所述进程组包括...

【专利技术属性】
技术研发人员:陈晓马剑涛黄凯耀
申请(专利权)人:华为技术有限公司
类型:发明
国别省市:

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

1