一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

一种监控内存带宽的方法及装置与流程

2022-02-20 19:47:19 来源:中国专利 TAG:

一种监控内存带宽的方法及装置
1.本技术要求于2020年07月17日提交国家知识产权局、申请号为202010691597.4、申请名称为“一种内存带宽的监控方法和装置”的中国专利申请的优先权,其全部内容通过引用结合在本技术中。
技术领域
2.本技术实施例涉及计算机领域,尤其涉及一种监控内存带宽的方法及装置。


背景技术:

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


技术实现要素:

5.本技术实施例提供了一种监控内存带宽的方法及装置,实现了以进程组为粒度监控非易失性内存的内存带宽,进而将非易失性内存的内存带宽大小作为限制非易失性内存的内存带宽的依据。
6.第一方面,提供一种监控内存带宽的方法,用于监控非易失性内存的内存带宽。该方法包括:处理器核获取预设周期内进程组访问易失性内存所使用的内存带宽大小,以及统计进程组在预设周期内执行的内存操作,进而根据所述内存带宽大小和统计的内存操作计算进程组访问非易失性内存所使用的第一内存带宽大小。这里的内存操作包括非易失性内存操作和易失性内存操作。如此,处理器核基于预设周期内的非易失性内存操作、易失性内存操作和进程组访问易失性内存所使用的内存带宽大小估计进程组访问易失性内存所使用的内存带宽大小,通过软件方法实现了以进程组为粒度监控非易失性内存的内存带宽,进而将非易失性内存的内存带宽大小作为限制非易失性内存的内存带宽的依据。
7.值得说明的是,进程组在预设周期内执行的内存操作可理解为进程组在预设周期
内执行的内存操作所访问的内存地址。内存操作为内存读写操作。进程组包括至少一个进程。在一些实施例中,一个进程组可以是一个容器或一个虚拟机。一个进程组包含的所有进程可以由一个容器运行或一个虚拟机运行。在另一些实施例中,一个进程组包含的进程可以由多个容器运行或多个虚拟机运行。也就是说,一个进程组包含的进程是多个容器中的进程。或者,一个进程组包含的进程是多个虚拟机中的进程。
8.在一种可能的设计中,根据内存带宽大小和统计的内存操作计算进程组访问非易失性内存所使用的第一内存带宽大小,包括:处理器核根据内存操作所访问的内存地址确定进程组访问非易失性内存的访问量和进程组访问易失性内存的访问量的比例;根据内存带宽大小和比例计算进程组访问非易失性内存所使用的第一内存带宽大小。由于内存操作所访问的内存地址包括非易失性内存操作所访问的内存地址和易失性内存操作所访问的内存地址。依据内存操作所访问的内存地址可以确定内存操作所访问的内存的内存类型和内存大小。内存类型包括非易失性内存和易失性内存。内存大小包括进程组访问易失性内存的内存大小和进程组访问非易失性内存的内存大小。进而,处理器核根据内存操作的内存大小和内存类型确定进程组访问非易失性内存的访问量和进程组访问易失性内存的访问量的比例。可理解的,进程组访问非易失性内存的访问量为进程组访问非易失性内存的内存大小。进程组访问易失性内存的访问量为进程组访问易失性内存的内存大小。
9.可选的,预设周期内执行的内存操作是预设周期内全部内存操作或部分内存操作。
10.进一步,在根据内存带宽大小和统计的内存操作计算进程组访问非易失性内存所使用的第一内存带宽大小之后,方法还包括:若非易失性内存的第一内存带宽大小大于或等于非易失性内存带宽阈值,设置进程组的内存带宽限制,非易失性内存带宽阈值为进程组访问非易失性内存允许使用的内存带宽的最大值。从而,通过限制措施控制进程组访问易失性内存所使用的内存带宽大小,间接限制进程组访问非易失性内存所使用的内存带宽大小。避免由于进程组、容器或者虚拟机使用过多的非易失性内存带宽,影响其他进程组、容器或者虚拟机无法访问非易失性内存,解决了邻位干扰故障扩散导致的业务性能劣化甚至中断的问题。
11.设置进程组的内存带宽限制包括以下一种或多种:将进程组的第一易失性内存带宽阈值调整为第二易失性内存带宽阈值,第一易失性内存带宽阈值大于第二易失性内存带宽阈值,第一易失性内存带宽阈值和第二易失性内存带宽阈值均指进程组访问易失性内存允许使用的内存带宽的最大值。由于降低了进程组访问易失性内存允许使用的易失性内存的内存带宽的最大值,从而进程组使用易失性内存和非易失性内存的总的内存带宽大小也随之降低,间接地进程组使用的非易失性内存的内存带宽也随之降低,实现限制非易失性内存的内存带宽到任意值。
12.将进程组包含的进程从运行进程组的第一处理器核迁移到第二处理器核。由于减少了处理器核运行的进程组包含的进程的个数,进程组对易失性内存和非易失性内存的内存操作便随之减少,进程组使用易失性内存和非易失性内存的总的内存带宽大小也随之降低,间接地进程组使用的非易失性内存的内存带宽也随之降低,实现限制非易失性内存的内存带宽到任意值。
13.将进程组的第一时间片调整为第二时间片,第一时间片大于第二时间片,第一时
间片和第二时间片均为进程组占用第一处理器核的时长。由于缩短了进程组占用处理器核的时长,进程组对易失性内存和非易失性内存的内存操作便随之减少,进程组使用易失性内存和非易失性内存的总的内存带宽大小也随之降低,间接地进程组使用的非易失性内存的内存带宽也随之降低,实现限制非易失性内存的内存带宽到任意值。
14.在一种可能的设计中,如果将进程组的第一易失性内存带宽阈值调整为第二易失性内存带宽阈值后,当非易失性内存的第二内存带宽大小大于或等于非易失性内存带宽阈值,将进程组包含的进程从运行进程组的第一处理器核迁移到第二处理器核。可选的,第一处理器核和第二处理器核属于非一致性内存访问(non-uniform memory access,numa)系统中一个或多个numa节点。
15.在一种可能的设计中,如果将进程组包含的进程从运行进程组的第一处理器核迁移到第二处理器核后,当非易失性内存的第三内存带宽大小大于或等于非易失性内存带宽阈值,将进程组的第一时间片调整为第二时间片。
16.如此,采用动态调节的方法能够精确控制非易失性内存的内存带宽到特定值,避免业务性能劣化甚至中断,同时降低资源部署成本。
17.在限制非易失性内存的内存带宽后,若处理器核监控到的非易失性内存的内存带宽小于非易失性内存带宽阈值时,可以解除对进程组访问易失性内存的限制,间接提升了进程组访问非易失性内存所使用的内存带宽,使得进程组有充足的可用资源。
18.在一种可能的设计中,将进程组的第一时间片调整为第二时间片之后,方法还包括:当非易失性内存的第四内存带宽大小小于非易失性内存带宽阈值,将进程组的第二时间片调整为第一时间片。由于增加了进程组占用处理器核的时长,进程组对易失性内存和非易失性内存的内存操作便随之增加,进程组使用易失性内存和非易失性内存的总的内存带宽大小也随之提升,间接地进程组使用的非易失性内存的内存带宽也随之提升,使得进程组有充足的可用资源。
19.在一种可能的设计中,将进程组的第二时间片调整为第一时间片之后,方法还包括:当非易失性内存的第五内存带宽大小小于非易失性内存带宽阈值,将进程组包含的进程从第二处理器核迁移到第一处理器核。由于增加了处理器核运行的进程组包含的进程的个数,进程组对易失性内存和非易失性内存的内存操作便随之增加,进程组使用易失性内存和非易失性内存的总的内存带宽大小也随之增加,间接地进程组使用的非易失性内存的内存带宽也随之提升,使得进程组有充足的可用资源。
20.在一种可能的设计中,将进程组包含的进程从第二处理器核迁移到第一处理器核之后,方法还包括:当非易失性内存的第六内存带宽大小小于非易失性内存带宽阈值,将进程组的第二易失性内存带宽阈值调整为第一易失性内存带宽阈值。由于增加了进程组使用的易失性内存的内存带宽的最大值,从而进程组使用易失性内存和非易失性内存的总的内存带宽大小也随之增加,间接地进程组使用的非易失性内存的内存带宽也随之提升,使得进程组有充足的可用资源。
21.需要说明的是,非易失性内存带宽阈值是通过第一文件系统接口设置的。第一易失性内存带宽阈值和第二易失性内存带宽阈值是通过第二文件系统接口设置的。
22.第二方面,提供一种限制内存带宽的方法,包括:若进程组在预设周期内访问非易失性内存所使用的第一内存带宽大小大于或等于非易失性内存带宽阈值,将进程组的第一
易失性内存带宽阈值调整为第二易失性内存带宽阈值,非易失性内存带宽阈值为进程组访问非易失性内存允许使用的内存带宽的最大值,第一易失性内存带宽阈值大于第二易失性内存带宽阈值,第一易失性内存带宽阈值和第二易失性内存带宽阈值均指进程组访问易失性内存允许使用的内存带宽的最大值,进程组包括至少一个进程;当非易失性内存的第二内存带宽大小大于或等于非易失性内存带宽阈值,将进程组包含的进程从运行进程组的第一处理器核迁移到第二处理器核。如此,采用动态调节的方法控制进程组访问易失性内存所使用的易失性内存带宽,间接限制非易失性内存的内存带宽到任意值,避免由于进程组、容器或者虚拟机使用过多的非易失性内存带宽,影响其他进程组、容器或者虚拟机无法访问非易失性内存,解决了邻位干扰故障扩散导致的业务性能劣化甚至中断的问题。
23.在一种可能的设计中,在将进程组包含的进程从运行进程组的第一处理器核迁移到第二处理器核之后,方法还包括:当非易失性内存的第三内存带宽大小大于或等于非易失性内存带宽阈值,将进程组的第一时间片调整为第二时间片,第一时间片大于第二时间片,第一时间片和第二时间片均为进程组占用第一处理器核的时长。
24.在一种可能的设计中,将进程组的第一时间片调整为第二时间片之后,方法还包括:当非易失性内存的第四内存带宽大小小于非易失性内存带宽阈值,将进程组的第二时间片调整为第一时间片。
25.在一种可能的设计中,将进程组的第二时间片调整为第一时间片之后,方法还包括:当非易失性内存的第五内存带宽大小小于非易失性内存带宽阈值,将进程组包含的进程从第二处理器核迁移到第一处理器核。
26.在一种可能的设计中,将进程组包含的进程从第二处理器核迁移到第一处理器核之后,方法还包括:当非易失性内存的第六内存带宽大小小于非易失性内存带宽阈值,将进程组的第二易失性内存带宽阈值调整为第一易失性内存带宽阈值。
27.第三方面,提供了一种监控内存带宽的装置,有益效果可以参见第一方面的描述此处不再赘述。所述监控内存带宽的装置具有实现上述第一方面的方法实例中行为的功能。所述功能可以通过硬件实现,也可以通过硬件执行相应的软件实现。所述硬件或软件包括一个或多个与上述功能相对应的模块。在一个可能的设计中,所述监控内存带宽的装置包括:获取单元、监控单元和限制单元。所述获取单元,用于获取预设周期内进程组访问易失性内存所使用的内存带宽大小,以及统计进程组在预设周期内执行的内存操作,内存操作包括非易失性内存操作和易失性内存操作,进程组包括至少一个进程。所述监控单元,用于根据内存带宽大小和统计的内存操作计算进程组访问非易失性内存所使用的第一内存带宽大小。所述限制单元,用于若第一内存带宽大小大于或等于非易失性内存带宽阈值,设置进程组的内存带宽限制,非易失性内存带宽阈值为进程组访问非易失性内存允许使用的内存带宽的最大值。这些单元可以执行上述第一方面方法示例中的相应功能,具体参见方法示例中的详细描述,此处不做赘述。
28.第四方面,提供了一种限制内存带宽的装置,有益效果可以参见第二方面的描述此处不再赘述。所述限制内存带宽的装置具有实现上述第二方面的方法实例中行为的功能。所述功能可以通过硬件实现,也可以通过硬件执行相应的软件实现。所述硬件或软件包括一个或多个与上述功能相对应的模块。在一个可能的设计中,该限制内存带宽的装置包括:获取单元和限制单元。所述获取单元,用于获取预设周期内进程组访问非易失性内存所
使用的内存带宽大小。所述限制单元,用于若进程组在预设周期内访问非易失性内存所使用的第一内存带宽大小大于或等于非易失性内存带宽阈值,将进程组的第一易失性内存带宽阈值调整为第二易失性内存带宽阈值,非易失性内存带宽阈值为进程组访问非易失性内存允许使用的内存带宽的最大值,第一易失性内存带宽阈值大于第二易失性内存带宽阈值,第一易失性内存带宽阈值和第二易失性内存带宽阈值均指进程组访问易失性内存允许使用的内存带宽的最大值,进程组包括至少一个进程。所述限制单元,还用于当非易失性内存的第二内存带宽大小大于或等于非易失性内存带宽阈值,将进程组包含的进程从运行进程组的第一处理器核迁移到第二处理器核。所述限制单元,还用于当非易失性内存的第三内存带宽大小大于或等于非易失性内存带宽阈值,将进程组的第一时间片调整为第二时间片,第一时间片大于第二时间片,第一时间片和第二时间片均为进程组占用第一处理器核的时长。这些模块可以执行上述第二方面方法示例中的相应功能,具体参见方法示例中的详细描述,此处不做赘述。
29.第五方面,提供了一种处理器,处理器包括多个处理器核,该处理器核用于执行第一方面或第一方面任一种可能设计中的监控内存带宽的方法。处理器核可以执行上述第一方面方法示例中的第一处理器核所执行方法的操作步骤,具体参见方法示例中的详细描述,此处不做赘述。
30.第六方面,提供了一种处理器,处理器包括多个处理器核,该处理器核用于执行第二方面或第二方面任一种可能设计中的限制内存带宽的方法。处理器核可以执行上述第二方面方法示例中的第二处理器核所执行方法的操作步骤,具体参见方法示例中的详细描述,此处不做赘述。
31.第七方面,提供了一种服务器,该服务器包括至少一个如第五方面所述的处理器和主存,所述处理器包括多个处理器核,每个处理器核用于执行上述第一方面或第一方面任意一种可能的实现方式中监控内存带宽的方法的操作步骤。
32.第八方面,提供了一种服务器,该服务器包括至少一个如第六方面所述的处理器和主存,所述处理器包括多个处理器核,每个处理器核用于执行上述第二方面或第二方面任意一种可能的实现方式中限制内存带宽的方法的操作步骤。
33.第九方面,提供一种计算机可读存储介质,包括:计算机软件指令;当计算机软件指令在服务器中运行时,使得服务器执行如第一方面或第一方面任意一种可能的实现方式中所述方法的操作步骤。
34.第十方面,提供一种计算机可读存储介质,包括:计算机软件指令;当计算机软件指令在服务器中运行时,使得服务器执行如第二方面或第二方面任意一种可能的实现方式中所述方法的操作步骤。
35.第十一方面,提供一种计算机程序产品,当计算机程序产品在计算机上运行时,使得计算机执行如第一方面或第一方面任意一种可能的实现方式中所述方法的操作步骤。
36.第十二方面,提供一种计算机程序产品,当计算机程序产品在计算机上运行时,使得计算机执行如第二方面或第二方面任意一种可能的实现方式中所述方法的操作步骤。
37.本技术在上述各方面提供的实现方式的基础上,还可以进行进一步组合以提供更多实现方式。
附图说明
38.图1为本技术实施例提供的一种云环境的简化示意图;
39.图2为本技术实施例提供的一种监控内存带宽的方法的流程图;
40.图3为本技术实施例提供的一种监控内存带宽的方法的流程图;
41.图4为本技术实施例提供的一种监控内存带宽的方法的流程图;
42.图5为本技术实施例提供的一种进程迁移示意图;
43.图6为本技术实施例提供的一种限制内存带宽的方法的流程图;
44.图7为本技术实施例提供的一种限制内存带宽的方法的流程图;
45.图8为本技术实施例提供的一种动态限制内存带宽的过程的示意图;
46.图9为本技术实施例提供的一种监控内存带宽的装置的组成示意图;
47.图10为本技术实施例提供的一种限制内存带宽的装置的组成示意图;
48.图11为本技术实施例提供的一种服务器的组成示意图。
具体实施方式
49.下面将结合附图对本技术实施例的实施方式进行详细描述。
50.云环境是云计算模式下利用基础资源向用户提供云服务的实体。如图1所示,云环境100包括云数据中心110和云服务平台120。所述云数据中心110包括云服务提供商拥有的大量基础资源(包括计算资源111、存储资源112和内存资源113)。
51.计算资源111可以是大量的计算设备(例如服务器)。计算设备包括多个处理器,例如图1中所示的处理器1111和处理器1112。处理器1111是计算设备的控制中心。通常情况下,处理器1111是一个中央处理器(central processing unit,cpu),包括一个处理器核或多个处理器核,例如图1中所示的处理器核0和处理器核1。此外,处理器1111也可以是特定集成电路(application specific integrated circuit,asic),或者是被配置成一个或多个集成电路,例如:一个或多个微处理器(digital signal processor,dsp),或,一个或者多个现场可编程门阵列(field programmable gate array,fpga)。处理器核0和处理器核1可以是指处理器1111中的物理处理器核或逻辑处理器核。处理器1111可以通过运行或执行存储在存储资源112内的软件程序,以及调用存储在存储资源112和内存资源113内的数据,执行计算设备的各种功能。处理器1112可以和处理器1111具有相同物理形态的处理器,也可以和处理器1111具有不同物理形态的处理器。但处理器1112是具备计算能力的处理芯片,用于分担处理器1111的运行的进程,以减轻处理器1111的计算负担。
52.内存资源113包含非易失性内存1131和易失性内存1132。易失性内存包括随机存取存储器(random access memory,ram)。非易失性内存具有非易失、按字节存取、存储密度高、低能耗、读写性能接近动态随机存取存储器(dynamic random access memory,dram),但读写速度不对称,读远快于写,寿命有限。当电流关掉后,非易失性内存存储的数据不会消失。常见的非易失性内存包含相变存储器(phase change memory,pcm)、磁阻式存储器(magnetoresistive ram,mram)、电阻式/阻变存储器(resistive ram,rram)、铁电存储器(ferroelectric ram,feram)、赛道存储器(racetrack memory)和石墨烯存储器(graphene memory)。
53.在物理形态上,存储资源112可以是只读存储器(read-only memory,rom)或可存
储静态信息和指令的其他类型的静态存储设备,随机存取存储器(random access memory,ram)或者可存储信息和指令的其他类型的动态存储设备,也可以是电可擦可编程只读存储器(electrically erasable programmable read-only memory,eeprom)、只读光盘(compact disc read-only memory,cd-rom)或其他光盘存储、光碟存储(包括压缩光碟、激光碟、光碟、数字通用光碟、蓝光光碟等)、磁盘存储介质或者其他磁存储设备、或者能够用于携带或存储具有指令或数据结构形式的期望的程序代码并能够由计算机存取的任何其他介质,但不限于此。存储资源112可以是独立存在,还可以是通过通信总线与计算资源111相连接。存储资源112也可以和计算资源111集成在一起,不予限定。通信总线可以是工业标准体系结构(industry standard architecture,isa)总线、外部设备互连(peripheral component,pci)总线或扩展工业标准体系结构(extended industry standard architecture,eisa)总线等。该总线可以分为地址总线、数据总线、控制总线等。
54.另外,存储资源112还用于存储执行本技术方案的软件程序,并由计算资源111来控制执行。
55.用户可以通过终端设备130访问云服务平台120提供的各种服务(如:金融服务、游戏服务等)。在计算设备运行不同用户的多个服务的进程114时,多个服务的进程共享基础资源(如:计算资源111、存储资源112和内存资源113等)。
56.为了避免多个进程共享基础资源带来不公平的问题,采用资源控制组(control group,cgroup)技术将多个进程划分为不同的进程组,不同的进程组使用不同的资源(如:计算资源、存储资源和内存资源)。一个进程组包括至少一个进程。
57.资源控制组是一种资源控制机制,即将操作系统中的所有进程以组为单位划分,所有进程组以层级结构进行组织。每个进程组指定一组访问资源(如:计算资源、存储资源和内存资源)。不同的进程组访问不同的资源。例如,不同的进程组中的进程访问的内存的内存大小不同和内存的内存带宽不同。系统管理员可以通过第一文件系统接口配置每个进程组所包含的进程。第一文件系统接口用于配置进程组所包含的进程。一个用户的应用进程可以划分到同一个进程组,也可以划分到不同的进程组。进程组可以包含同一个应用的进程,也可以包含不同应用的进程。
58.处理器核在运行进程组包含的进程时既可访问易失性内存又访问非易失性内存。传统技术中,采用资源调配技术(resource director technology)识别占用大量易失性内存的内存带宽的进程并限制该进程占用易失性内存的内存带宽,以确保其他进程获取充足的内存资源。由于非易失性内存未提供内存带宽限制功能,资源调配技术无法实现对非易失性内存的内存带宽的监控和限制。本实施例提供一种监控内存带宽的方法,依据预设周期内进程组访问易失性内存所使用的内存带宽大小和内存操作预估进程组访问非易失性内存所使用的内存带宽大小,从而实现了以进程组为粒度监控非易失性内存的内存带宽,进而将非易失性内存的内存带宽大小作为限制内存带宽的依据。
59.接下来,结合图2,对本实施例提供的监控内存带宽的方法进行详细说明。
60.s201、第一处理器核获取预设周期内进程组访问易失性内存所使用的内存带宽大小,以及统计进程组在预设周期内执行的内存操作。
61.内核是一个操作系统的核心,负责管理系统的进程、内存、设备驱动程序、文件和网络系统,决定着系统的性能和稳定性。第一处理器核运行一个进程组中的进程时,可以采
用内存带宽监控(memory bandwidth monitor,mbm)技术查看内核中内存管理的信息获取预设周期内进程组访问易失性内存所使用的内存带宽大小。预设周期可以是1秒。
62.内存操作包括非易失性内存操作和易失性内存操作。进程组在预设周期内执行的内存操作可理解为进程组在预设周期内执行的内存操作所访问的内存地址。
63.在一些实施例中,第一处理器核监控文件系统的读写接口,采集在预设周期内通过文件系统的读写接口对系统中内存的内存操作,获取内存操作所访问的内存地址。由于系统中包含非易失性内存和易失性内存,内存操作所访问的内存地址包括非易失性内存的内存地址和易失性内存的内存地址。
64.在另一些实施例中,第一处理器核利用基于精准事件采样(precise event based sampling,pebs)技术采集其他访问内存的内存操作。其他访问内存的内存操作包括但不限于:将一个文件或者其它对象映射进内存的内存操作,访问共享内存的内存操作,访问文件描述符的内存操作,访问管道文件的内存操作。
65.可选的,预设周期内执行的内存操作是预设周期内全部内存操作或部分内存操作。例如,第一处理器核统计的内存操作可以是预设周期内一部分时长的内存操作。比如,一半预设周期的时长的内存操作。所述内存操作包括易失性内存的内存读写操作和非易失性内存的内存读写操作。
66.s202、第一处理器核根据内存带宽大小和统计的内存操作计算进程组访问非易失性内存所使用的内存带宽大小。
67.具体的,图3所述的方法流程是对图2中s202所包括的具体操作过程的阐述,如图所示:s2021、第一处理器核根据内存操作所访问的内存地址确定进程组访问非易失性内存的访问量和进程组访问易失性内存的访问量的比例。s2022、第一处理器核根据内存带宽大小和比例计算进程组访问非易失性内存所使用的内存带宽大小。
68.由于内存操作所访问的内存地址包括进程组执行的非易失性内存操作所访问的内存地址和进程组执行的易失性内存操作所访问的内存地址。依据内存操作所访问的内存地址可以确定内存操作所访问的内存的内存类型包括非易失性内存和易失性内存。
69.依据进程组执行非易失性内存的内存操作所访问的内存地址可以确定非易失性内存的访问量。非易失性内存的访问量可理解为进程组访问非易失性内存的内存大小。
70.依据进程组执行易失性内存的内存操作所访问的内存地址可以确定易失性内存的访问量。易失性内存的访问量可理解为进程组访问易失性内存的内存大小。
71.进而,第一处理器核根据进程组访问非易失性内存的内存大小和进程组访问易失性内存的内存大小确定进程组访问非易失性内存的访问量和进程组访问易失性内存的访问量的比例。
72.进程组访问非易失性内存所使用的内存带宽大小满足公式(1)。
73.b2=b1*(d2/d1)
ꢀꢀꢀꢀ
(1)
74.其中,b2表示预设周期内进程组访问非易失性内存所使用的内存带宽大小,b1表示预设周期内进程组访问易失性内存所使用的内存带宽大小,d1表示预设周期内进程组访问易失性内存的访问量,d2表示预设周期内进程组访问非易失性内存的访问量。d2/d1表示进程组访问非易失性内存的访问量和进程组访问易失性内存的访问量的比例。
75.可理解的,第一处理器核可以采用mbm技术查看内核中内存管理的信息获取预设
周期内进程组访问易失性内存所使用的内存带宽大小b1。d1和d2是第一处理器核采集通过文件系统的读写接口对系统中内存的内存操作和其他访问内存的内存操作获取的。
76.示例的,系统管理员可以为用户的服务进程分配唯一的标识符,第一处理器核利用该标识符监控预设周期内进程组访问易失性内存所使用的内存带宽大小,以及采样进程组执行的内存操作所访问的内存地址。具体的,第一处理器核监测到预设周期的起始时刻t1的内存带宽监控值为bo,以及预设周期的结束时刻t2的内存带宽监控值为bn,bn与bo的差的绝对值为预设周期内进程组访问易失性内存所使用的内存带宽大小。假设预设周期内进程组访问易失性内存所使用的内存带宽大小b1为10g/s,第一处理器核在预设周期内采样到60000个内存操作所访问的内存地址,其中,20000个地址为非易失性内存的地址,40000个地址为易失性内存的地址。进程组访问非易失性内存的访问量和进程组访问易失性内存的访问量的比例为20000/40000=0.5。进程组访问非易失性内存所使用的内存带宽大小为20000/40000*10g/s=5g/s。
77.如此,处理器核基于预设周期内的非易失性内存操作、易失性内存操作和进程组访问易失性内存所使用的内存带宽大小估计进程组访问易失性内存所使用的内存带宽大小,通过软件方法实现了以进程组为粒度监控非易失性内存的内存带宽,进而将非易失性内存的内存带宽大小作为限制非易失性内存的内存带宽的依据。
78.进一步的,监控到进程组访问非易失性内存所使用的内存带宽大小(简称:非易失性内存的内存带宽大小)后,可以将非易失性内存的内存带宽大小作为限制非易失性内存的内存带宽的依据,结合图4,对本实施例提供的限制内存带宽的方法进行详细说明。
79.s401、第一处理器核判断非易失性内存的内存带宽大小是否大于或等于非易失性内存带宽阈值。
80.若非易失性内存的内存带宽大小大于或等于非易失性内存带宽阈值,执行s402;若非易失性内存的内存带宽大小小于非易失性内存带宽阈值,此时,如果第一处理器核未设置过进程组的内存带宽限制,继续执行s201和s202。可选的,如果第一处理器核设置进程组的内存带宽限制,执行s403。非易失性内存带宽阈值为访问非易失性内存允许使用的内存带宽的最大值。系统管理员可以通过第二文件系统接口设置不同进程组访问非易失性内存的非易失性内存带宽阈值。例如,可以限制不同的进程组在每个预设周期内所允许使用的非易失性内存带宽。
81.s402、第一处理器核设置进程组的内存带宽限制。
82.第一处理器核设置进程组的内存带宽限制后,执行s201和s202,即继续监控进程组访问非易失性内存所使用的内存带宽大小,判断非易失性内存的内存带宽大小是否大于或等于非易失性内存带宽阈值。
83.s403、第一处理器核解除进程组的内存带宽限制。
84.第一处理器核解除进程组的内存带宽限制的方法可以是设置进程组的内存带宽限制的反向操作。第一处理器核解除进程组的内存带宽限制后,执行s201和s202,即继续监控进程组访问非易失性内存所使用的内存带宽大小,判断非易失性内存的内存带宽大小是否大于或等于非易失性内存带宽阈值。
85.下面对第一处理器核设置进程组的内存带宽限制的具体实现方式进行详细说明。
86.在第一种可能的实现方式中,第一处理器核将进程组的第一易失性内存带宽阈值
调整为第二易失性内存带宽阈值。其中,第一易失性内存带宽阈值大于第二易失性内存带宽阈值,第一易失性内存带宽阈值和第二易失性内存带宽阈值均指进程组访问易失性内存允许使用的内存带宽的最大值。第一处理器核可以调用第三文件系统接口调整进程组访问易失性内存允许使用的内存带宽的最大值。
87.在一些实施例中,第一处理器核可以以调节步长为0.2g/s的粒度调节第一易失性内存带宽阈值。例如,若第i预设周期内的非易失性内存的内存带宽大小大于或等于非易失性内存带宽阈值,第一处理器核将第一易失性内存带宽阈值减小0.2g/s,得到第三易失性内存带宽阈值,第三易失性内存带宽阈值大于第二易失性内存带宽阈值。进而,第一处理器核获取第i 1预设周期内的非易失性内存的内存带宽大小,若第i 1预设周期内的非易失性内存的内存带宽大小大于或等于非易失性内存带宽阈值,第一处理器核将第三易失性内存带宽阈值继续减小0.2g/s,得到第四易失性内存带宽阈值,第四易失性内存带宽阈值大于第二易失性内存带宽阈值。若第i 1预设周期内的非易失性内存的内存带宽大小小于非易失性内存带宽阈值,无需再设置进程组的内存带宽限制。i为整数。系统管理员可以根据业务需要等因素设置调节步长。
88.如果第一处理器核以0.2g/s的粒度调节第一易失性内存带宽阈值,直到第一易失性内存带宽阈值减小到了第二易失性内存带宽阈值,但是非易失性内存的内存带宽大小仍然大于或等于非易失性内存带宽阈值,第一处理器执行第二种可能的实现方式,即第一处理器核将进程组包含的进程从运行进程组的第一处理器核迁移到第二处理器核。
89.可理解的,第二易失性内存带宽阈值就是限制进程组访问易失性内存所使用的内存带宽的最大限制。系统管理员可以通过第三文件系统接口设置第一易失性内存带宽阈值。系统管理员可以是业务部署的人员。例如,系统管理员采用易失性内存的内存带宽分配(memory bandwidth allocation,mba)技术通过第三文件系统接口为进程组设置第一易失性内存带宽阈值。
90.由于降低了进程组使用的易失性内存的内存带宽的最大值,也就是限制进程组访问易失性内存,进程组使用的易失性内存的内存带宽随之降低,从而进程组使用易失性内存和非易失性内存的总的内存带宽大小也随之降低,间接地进程组使用的非易失性内存的内存带宽也随之降低,实现限制非易失性内存的内存带宽到任意值。
91.在第二种可能的实现方式中,第一处理器核将进程组包含的进程从运行进程组的第一处理器核迁移到第二处理器核,第二处理器核运行该进程组中迁移出的进程。第二处理器核可以是运行进程较少的第一处理器核。从第一处理器核迁移到第二处理器核的进程的个数可以由系统管理员设置或系统自行确定。第一处理器核每次可以迁移一个进程,也可以迁移两个进程,不予限定。如果第一处理器核将进程组包含的一半的进程迁移到第二处理器核,非易失性内存的内存带宽大小仍然大于或等于非易失性内存带宽阈值,第一处理器执行第三种可能的实现方式,即第一处理器核将进程组的第一时间片调整为第二时间片,第一时间片大于第二时间片。
92.由于减少了第一处理器核运行的进程组包含的进程的个数,进程组对易失性内存和非易失性内存的内存操作便随之减少,进程组使用易失性内存和非易失性内存的总的内存带宽大小也随之降低,间接地进程组使用的非易失性内存的内存带宽也随之降低,达到限制非易失性内存的内存带宽到任意值。
93.在一些实施例中,第一处理器核和第二处理器核属于numa系统中一个或多个numa节点。可理解的,第一处理器核和第二处理器核属于numa系统中同一个numa节点,或者第一处理器核和第二处理器核属于numa系统中不同的numa节点。
94.通常,numa系统包括多个节点,每个节点包括多个处理器核。一个处理器包含多个物理处理器核。每个物理处理器核还可以分为两个逻辑处理器核。一个物理处理器中的逻辑处理器核可以划分为多个numa节点(简称:节点)。
95.值得说明的是,第一处理器核可以物理处理器核也可以是逻辑处理器核。若第一处理器核是一个物理处理器核,该第一处理器核包含多个逻辑处理器核。第一处理器核和第二处理器核可以是同一个处理器中的核,也可以是不同处理器中的核。
96.示例的,如图5所示,处理器包含8个处理器核,8个处理器核可以是物理处理器核也可以是逻辑处理器核。8个处理器核被划分为了2个节点。假设处理器核1运行进程组,处理器核1可以将进程组中的一个进程从处理器核1迁移到处理器核2。或者,处理器核1可以将进程组中的进程从处理器核1迁移到处理器核5。
97.在第三种可能的实现方式中,第一处理器核将进程组的第一时间片调整为第二时间片,第一时间片大于第二时间片,第一时间片和第二时间片均为进程组占用第一处理器核的时长。第一处理器核可以调用文件系统的接口调整进程组占用第一处理器核的时长。
98.由于降低了分配给进程组的第一处理器核运行进程组中的进程的时长,从而缩短了第一处理器核运行进程组中的进程的时长,进程组对易失性内存和非易失性内存的内存操作便随之减少,进程组使用易失性内存和非易失性内存的总的内存带宽大小也随之降低,间接地进程组使用的非易失性内存的内存带宽也随之降低,达到限制非易失性内存的内存带宽到任意值。
99.第一处理器核根据进程组在第i预设周期内使用的非易失性内存带宽大小和非易失性内存带宽阈值来加强或放松对该进程组的限制,从而允许该进程组在第i 1预设周期内使用更少或更多的非易失性内存带宽资源。
100.从而,通过限制措施控制进程组访问易失性内存所使用的内存带宽大小,间接限制进程组访问非易失性内存所使用的内存带宽大小。避免由于进程组、容器或者虚拟机使用过多的非易失性内存带宽,影响其他进程组、容器或者虚拟机无法访问非易失性内存,解决了邻位干扰故障扩散导致的业务性能劣化甚至中断的问题。
101.上述实施例中,第一处理器核从三种可能的实现方式中任选一种限制进程组所使用的非易失性内存的内存带宽。但是,限制进程组所使用的非易失性内存的内存带宽后,非易失性内存的内存带宽大小可能仍然大于或等于非易失性内存带宽阈值。此时,第一处理器核还可以动态限制非易失性内存的内存带宽,如图6所示,本实施例还提供一种动态限制内存带宽的方法。
102.s601、第一处理器核获取预设周期内进程组访问非易失性内存所使用的第一内存带宽大小。
103.s602、第一处理器核判断非易失性内存的第一内存带宽大小是否大于或等于非易失性内存带宽阈值。
104.若进程组访问非易失性内存所使用的第一内存带宽大小大于或等于非易失性内存带宽阈值,执行s603。若进程组访问非易失性内存所使用的第一内存带宽大小小于非易
失性内存带宽阈值,执行s604。
105.s603、第一处理器核将进程组的第一易失性内存带宽阈值调整为第二易失性内存带宽阈值。执行s604。
106.s604、第一处理器核获取预设周期内进程组访问非易失性内存所使用的第二内存带宽大小。
107.s605、第一处理器核判断非易失性内存的第二内存带宽大小是否大于或等于非易失性内存带宽阈值。
108.若进程组访问非易失性内存所使用的第二内存带宽大小大于或等于非易失性内存带宽阈值,执行s606。若进程组访问非易失性内存所使用的第二内存带宽大小小于非易失性内存带宽阈值,执行s607。
109.可选的,如果第一处理器核将进程组的第一易失性内存带宽阈值调整为第二易失性内存带宽阈值后,进程组访问非易失性内存所使用的第二内存带宽大小小于非易失性内存带宽阈值,第一处理器核还可以根据调节步长将进程组的第二易失性内存带宽阈值调整为第一易失性内存带宽阈值。例如,业务需求增加时,第一处理器核还可以根据调节步长调节进程组的第二易失性内存带宽阈值至第一易失性内存带宽阈值。
110.s606、第一处理器核将进程组包含的进程从运行进程组的第一处理器核迁移到第二处理器核。执行s607。
111.s607、第一处理器核获取预设周期内进程组访问非易失性内存所使用的第三内存带宽大小。
112.s608、第一处理器核判断非易失性内存的第三内存带宽大小是否大于或等于非易失性内存带宽阈值。
113.若进程组访问非易失性内存所使用的第三内存带宽大小大于或等于非易失性内存带宽阈值,执行s609。若进程组访问非易失性内存所使用的第三内存带宽大小小于非易失性内存带宽阈值,执行s610。
114.可选的,如果第一处理器核将进程组包含的进程从运行进程组的第一处理器核迁移到第二处理器核后,进程组访问非易失性内存所使用的第三内存带宽大小小于非易失性内存带宽阈值,第一处理器核还可以将进程组包含的进程从第二处理器核迁移到第一处理器核。
115.s609、第一处理器核将进程组的第一时间片调整为第二时间片。执行s610。
116.第一处理器核获取进程组访问非易失性内存所使用的内存带宽大小(包括第一内存带宽大小、第二内存带宽大小和第三内存带宽大小)的具体方法可以参考s201和s202的详细阐述,不予赘述。s603的详细解释可以参考上述在第一种可能的实现方式的阐述。s606的详细解释可以参考上述在第二种可能的实现方式的阐述。s609的详细解释可以参考上述在第三种可能的实现方式的阐述。
117.需要说明的是,第一处理器核利用三种可能的实现方式中一种方式限制进程组所使用的非易失性内存的内存带宽后,周期性地监测进程组所使用的非易失性内存的内存带宽大小。第一处理器核可以在相邻的预设周期内获取非易失性内存的内存带宽大小,也可以在非相邻的预设周期内获取非易失性内存的内存带宽大小。例如,第一处理器核在第i预设周期内获取进程组访问非易失性内存所使用的第一内存带宽大小,第一处理器核可以在
第i 1预设周期内获取进程组访问非易失性内存所使用的第二内存带宽大小,第一处理器核也可以在第i 2预设周期内获取进程组访问非易失性内存所使用的第二内存带宽大小。i为整数。第一处理器获取非易失性内存的内存带宽大小间隔的周期个数不予限定。
118.上述实施例中,第一处理器核采用动态方式限制非易失性内存的内存带宽。在限制非易失性内存的内存带宽后,若非易失性内存的内存带宽小于非易失性内存带宽阈值,还可以增加进程组的内存带宽,即解除对非易失性内存的内存带宽的限制,使得进程组有充足的可用资源。如图7所示,本实施例还提供一种动态限制内存带宽的方法。
119.s610、第一处理器核获取预设周期内进程组访问非易失性内存所使用的第四内存带宽大小。
120.s611、第一处理器核确定非易失性内存的第四内存带宽大小小于非易失性内存带宽阈值。执行s612。
121.s612、第一处理器核将进程组的第二时间片调整为第一时间片。执行s613。
122.第一处理器核将进程组的第二时间片调整为第一时间片,即增加了进程组占用处理器核的时长,从而进程组对易失性内存和非易失性内存的内存操作便随之增加,进程组使用易失性内存和非易失性内存的总的内存带宽大小也随之提升,间接地进程组使用的非易失性内存的内存带宽也随之提升,使得进程组有充足的可用资源。具体的调节方法是将进程组的第一时间片调整为第二时间片的反向过程,具体的可以参考上述第三种可能的实现方式的具体阐述。
123.s613、第一处理器核获取预设周期内进程组访问非易失性内存所使用的第五内存带宽大小。
124.s614、第一处理器核确定非易失性内存的第五内存带宽大小小于非易失性内存带宽阈值。执行s615。
125.s615、第一处理器核将进程组包含的进程从第二处理器核迁移到第一处理器核。执行s616。
126.可理解的,从第二处理器核迁移到第一处理器核的进程是第一处理器核从第一处理器核迁移到第二处理器核的进程组包含的进程。具体的迁移方式可以参考上述第二种可能的实现方式的具体阐述。由于增加了处理器核运行的进程组包含的进程的个数,进程组对易失性内存和非易失性内存的内存操作便随之增加,进程组使用易失性内存和非易失性内存的总的内存带宽大小也随之增加,间接地进程组使用的非易失性内存的内存带宽也随之提升,使得进程组有充足的可用资源。
127.s616、第一处理器核获取预设周期内进程组访问非易失性内存所使用的第六内存带宽大小。
128.s617、第一处理器核确定非易失性内存的第六内存带宽大小小于非易失性内存带宽阈值。执行s618。
129.s618、第一处理器核将进程组的第二易失性内存带宽阈值调整为第一易失性内存带宽阈值。第一处理器核继续监测预设周期内进程组访问非易失性内存所使用的内存带宽大小。由于增加了进程组使用的易失性内存的内存带宽的最大值,从而进程组使用易失性内存和非易失性内存的总的内存带宽大小也随之增加,间接地进程组使用的非易失性内存的内存带宽也随之提升,使得进程组有充足的可用资源。第一处理器核可以根据调节步长
增加易失性内存带宽阈值至第一易失性内存带宽阈值。根据调节步长增加易失性内存带宽阈值的方法是降低易失性内存带宽阈值的反向过程,具体的调节易失性内存带宽阈值方式可以参考上述第一种可能的实现方式的具体阐述。
130.第一处理器核获取进程组访问非易失性内存所使用的内存带宽大小(包括第四内存带宽大小、第五内存带宽大小和第六内存带宽大小)的具体方法可以参考s201和s202的详细阐述,不予赘述。
131.示例的,如图8中的(a)所示,在用户态,系统管理员通过文件系统中不同的接口配置进程组、设置非易失性内存带宽阈值和设置易失性内存带宽阈值。例如,系统管理员通过第一文件系统接口配置进程组。系统管理员通过第二文件系统接口设置非易失性内存带宽阈值。系统管理员通过第三文件系统接口设置第一易失性内存带宽阈值。
132.第一处理器核采用mbm技术查看内核中内存管理的信息获取预设周期内进程组访问易失性内存所使用的内存带宽大小,以及采集通过文件系统的读写接口对系统中内存的内存操作和其他访问内存的内存操作。第一处理器核中的监控模块根据内存带宽大小和统计的内存操作计算进程组访问非易失性内存所使用的内存带宽大小。若非易失性内存的内存带宽大小大于或等于非易失性内存带宽阈值,第一处理器核中的限制模块采用上述调整易失性内存带宽阈值、迁移进程和调整进程组的占用第一处理器核的时间片中任一种设置进程组的内存带宽限制。
133.假设非易失性内存带宽阈值b2’为5gb/s。若进程组使用的非易失性内存带宽b2为3gb/s,此时,进程组使用的非易失性内存带宽3gb/s低于非易失性内存带宽阈值5gb/s,即b2=3gb/s《b2’=5gb/s,不限制进程组使用的非易失性内存带宽。
134.若进程组使用的非易失性内存带宽为15gb/s,此时,进程组使用的非易失性内存带宽15gb/s大于非易失性内存带宽阈值5gb/s,即b2=15gb/s》b2’=5gb/s。如图8中的(b)所示,第一处理器核调节易失性内存带宽阈值b1’,即将进程组的第一易失性内存带宽阈值调整为第二易失性内存带宽阈值。
135.调节易失性内存带宽阈值(最大限制)后,进程组使用的非易失性内存带宽为12gb/s。进程组使用的非易失性内存带宽12gb/s大于非易失性内存带宽阈值5gb/s,即b2=12gb/s》b2’=5gb/s,第一处理器核迁移进程组的进程,即将进程组包含的进程从运行进程组的第一处理器核迁移到第二处理器核。
136.迁移进程后,进程组使用的非易失性内存带宽为6gb/s。进程组使用的非易失性内存带宽6gb/s大于非易失性内存带宽阈值5gb/s,即b2=6gb/s》b2’=5gb/s,第一处理器核调节进程组占用第一处理器核的时长,即将进程组的第一时间片调整为第二时间片。例如,第一时间片为预设周期的时长。第二时间片为预设周期的时长的83%。
137.调节进程组占用第一处理器核的时长(最大限制)后,进程组使用的非易失性内存带宽为1gb/s。进程组使用的非易失性内存带宽1gb/s小于非易失性内存带宽阈值5gb/s,即b2=1gb/s《b2’=5gb/s。第一处理器核调节进程组占用第一处理器核的时长,即将进程组的第二时间片调整为第一时间片。
138.调节进程组占用第一处理器核的时长后,进程组使用的非易失性内存带宽为2gb/s。进程组使用的非易失性内存带宽2gb/s小于非易失性内存带宽阈值5gb/s,即b2=2gb/s《b2’=5gb/s。第一处理器核迁移进程组的进程,即将进程组包含的进程从运行进程组的第
二处理器核迁移到第一处理器核。
139.迁移进程后,进程组使用的非易失性内存带宽为3gb/s。进程组使用的非易失性内存带宽3gb/s小于非易失性内存带宽阈值5gb/s,即b2=3gb/s《b2’=5gb/s。第一处理器核调节易失性内存带宽阈值,即将进程组的第二易失性内存带宽阈值调整为第一易失性内存带宽阈值。
140.可以理解的是,为了实现上述实施例中功能,服务器包括了执行各个功能相应的硬件结构和/或软件模块。本领域技术人员应该很容易意识到,结合本技术中所公开的实施例描述的各示例的单元及方法步骤,本技术能够以硬件或硬件和计算机软件相结合的形式来实现。某个功能究竟以硬件还是计算机软件驱动硬件的方式来执行,取决于技术方案的特定应用场景和设计约束条件。
141.上文中结合图1至图8,详细描述了根据本实施例所提供的监控内存带宽的方法和限制内存带宽的方法,下面将结合图9至图11描述根据本实施例所提供的监控内存带宽的装置、限制内存带宽的装置和服务器。
142.图9为本实施例提供的可能的监控内存带宽的装置的结构示意图。这些监控内存带宽的装置可以用于实现上述方法实施例中处理器核的功能,因此也能实现上述方法实施例所具备的有益效果。在本实施例中,该监控内存带宽的装置可以是如图1所示的处理器核0,还可以是应用于服务器的模块(如芯片)。
143.如图9所示,监控内存带宽的装置900包括获取单元910、监控单元920和限制单元930。监控内存带宽的装置900用于实现上述图2、图3或图4中所示的方法实施例中第一处理器核的功能。
144.当监控内存带宽的装置900用于实现图2所示的方法实施例中第一处理器核的功能时:获取单元910用于实现s201中第一处理器核所执行的功能;监控单元920用于实现s202中第一处理器核所执行的功能。
145.当监控内存带宽的装置900用于实现图3所示的方法实施例中第一处理器核的功能时:获取单元910用于实现s201中第一处理器核所执行的功能;监控单元920用于实现s2021和s2022中第一处理器核所执行的功能。
146.当监控内存带宽的装置900用于实现图4所示的方法实施例中第一处理器核的功能时:获取单元910用于实现s201中第一处理器核所执行的功能;监控单元920用于实现s202中第一处理器核所执行的功能;限制单元930用于实现s401、s402和s403中第一处理器核所执行的功能。
147.有关上述获取单元910、监控单元920和限制单元930更详细的描述可以直接参考图2、图3或图4所示的方法实施例中相关描述直接得到,这里不加赘述。
148.图10为本实施例提供的可能的限制内存带宽的装置的结构示意图。这些限制内存带宽的装置可以用于实现上述方法实施例中处理器核的功能,因此也能实现上述方法实施例所具备的有益效果。在本实施例中,该限制内存带宽的装置可以是如图1所示的处理器核0,还可以是应用于服务器的模块(如芯片)。
149.如图10所示,限制内存带宽的装置1000包括获取单元1010和限制单元1020。限制内存带宽的装置1000用于实现上述图6或图7中所示的方法实施例中第一处理器核的功能。
150.当限制内存带宽的装置1000用于实现图6所示的方法实施例中第一处理器核的功
能时:获取单元1010用于实现s601、s604、s607和s610中第一处理器核所执行的功能;限制单元1020用于实现s602、s603、s605、s606、s608和s609中第一处理器核所执行的功能。
151.当限制内存带宽的装置1000用于实现图7所示的方法实施例中第一处理器核的功能时:获取单元1010用于实现s610、s613和s616中第一处理器核所执行的功能;限制单元1020用于实现s611、s612、s614、s615、s617和s618中第一处理器核所执行的功能。
152.有关上述获取单元1010和限制单元1020更详细的描述可以直接参考图6或图7所示的方法实施例中相关描述直接得到,这里不加赘述。
153.可以理解的是,本实施例中的处理器可以是中央处理单元(central processing unit,cpu),还可以是其它通用处理器、数字信号处理器(digital signal processor,dsp)、专用集成电路(application specific integrated circuit,asic)、现场可编程门阵列(field programmable gate array,fpga)或者其它可编程逻辑器件、晶体管逻辑器件,硬件部件或者其任意组合。通用处理器可以是微处理器,也可以是任何常规的处理器。
154.处理器还可以是图形处理器(graphics processing unit,gpu)、神经网络处理器(neural network processing unit,npu)、微处理器、特定应用集成电路(application-specific integrated circuit,asic)、或一个或多个用于控制本技术方案程序执行的集成电路。
155.图11为本实施例提供的一种服务器1100的结构示意图。如图所示,服务器1100包括处理器1110、总线1120、通信接口1150、主存1130和存储器1140。
156.应理解,在本实施例中,处理器1110可以是中央处理器(central processing unit,cpu),该处理器1110还可以是其他通用处理器、数字信号处理器(digital signal processing,dsp)、专用集成电路(application-specific integrated circuit,asic)、现场可编程门阵列(field-programmable gate array,fpga)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者是任何常规的处理器等。
157.通信接口1150用于实现服务器1100与外部设备或器件的通信。
158.总线1120可以包括一通路,用于在上述组件(如处理器1110、主存1130和存储器1140)之间传送信息。总线1120除包括数据总线之外,还可以包括电源总线、控制总线和状态信号总线等。但是为了清楚说明起见,在图中将各种总线都标为总线1120。
159.作为一个示例,服务器1100可以包括多个处理器。处理器可以是一个多核(multi-cpu)处理器。这里的处理器可以指一个或多个设备、电路、和/或用于处理数据(例如计算机程序指令)的计算单元。处理器1110可以监控运行的进程组在预设周期内访问易失性内存所使用的内存带宽大小,以及统计进程组在预设周期内执行的内存操作,根据内存带宽大小和统计的内存操作计算进程组访问非易失性内存所使用的内存带宽大小。若非易失性内存的内存带宽大小大于或等于非易失性内存带宽阈值,设置进程组的内存带宽限制。监控非易失性内存的内存带宽大小和设置进程组的内存带宽限制的具体的过程可以参考上述方法实施例中相关描述直接得到,这里不加赘述。
160.值得说明的是,图11中仅以服务器1100包括1个处理器1110和1个主存1130为例,此处,处理器1110和主存1130分别用于指示一类器件或设备,具体实施例中,可以根据业务需求确定每种类型的器件或设备的数量。
161.存储器1140可以用于存储云环境中的相关信息,例如,磁盘,如机械硬盘或固态硬盘。
162.上述服务器1100可以是一个通用设备或者是一个专用设备。例如,服务器1100可以是基于x86、arm的服务器,也可以为其他的专用服务器,如策略控制和计费(policy control and charging,pcc)服务器等。本技术实施例不限定服务器1100的类型。
163.应理解,根据本实施例的服务器1100可对应于本实施例中的监控内存带宽的装置900和限制内存带宽的装置1000,并可以对应于执行根据图2至图4、以及图6和图7中任一方法中的相应主体,并且装置中的各个模块的上述和其它操作和/或功能分别为了实现图2至图4、以及图6和图7中的各个方法的相应流程,为了简洁,在此不再赘述。
164.本实施例还提供一种处理器,该处理器的结构如图11所示,包括多个处理器核,用于实现如图2至图4、以及图6和图7所述方法的操作步骤,为了避免重复,在此不再赘述。
165.本实施例中的方法步骤可以通过硬件的方式来实现,也可以由处理器执行软件指令的方式来实现。软件指令可以由相应的软件模块组成,软件模块可以被存放于随机存取存储器(random access memory,ram)、闪存、只读存储器(read-only memory,rom)、可编程只读存储器(programmable rom,prom)、可擦除可编程只读存储器(erasable prom,eprom)、电可擦除可编程只读存储器(electrically eprom,eeprom)、寄存器、硬盘、移动硬盘、cd-rom或者本领域熟知的任何其它形式的存储介质中。一种示例性的存储介质耦合至处理器,从而使处理器能够从该存储介质读取信息,且可向该存储介质写入信息。当然,存储介质也可以是处理器的组成部分。处理器和存储介质可以位于asic中。另外,该asic可以位于网络设备或终端设备中。当然,处理器和存储介质也可以作为分立组件存在于网络设备或终端设备中。
166.在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。所述计算机程序产品包括一个或多个计算机程序或指令。在计算机上加载和执行所述计算机程序或指令时,全部或部分地执行本技术实施例所述的流程或功能。所述计算机可以是通用计算机、专用计算机、计算机网络、网络设备、用户设备或者其它可编程装置。所述计算机程序或指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,所述计算机程序或指令可以从一个网站站点、计算机、服务器或数据中心通过有线或无线方式向另一个网站站点、计算机、服务器或数据中心进行传输。所述计算机可读存储介质可以是计算机能够存取的任何可用介质或者是集成一个或多个可用介质的服务器、数据中心等数据存储设备。所述可用介质可以是磁性介质,例如,软盘、硬盘、磁带;也可以是光介质,例如,数字视频光盘(digital video disc,dvd);还可以是半导体介质,例如,固态硬盘(solid state drive,ssd)。
167.以上所述,仅为本技术的具体实施方式,但本技术的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本技术揭露的技术范围内,可轻易想到各种等效的修改或替换,这些修改或替换都应涵盖在本技术的保护范围之内。因此,本技术的保护范围应以权利要求的保护范围为准。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献