CN114528075A - Numa系统的性能调优方法、装置及计算机设备 - Google Patents

Numa系统的性能调优方法、装置及计算机设备 Download PDF

Info

Publication number
CN114528075A
CN114528075A CN202111630836.6A CN202111630836A CN114528075A CN 114528075 A CN114528075 A CN 114528075A CN 202111630836 A CN202111630836 A CN 202111630836A CN 114528075 A CN114528075 A CN 114528075A
Authority
CN
China
Prior art keywords
numa
node
test
memory
local memory
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
CN202111630836.6A
Other languages
English (en)
Inventor
赵肖凡
杨有桂
刘付东
陈才
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Phytium Technology Co Ltd
Original Assignee
Phytium Technology Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Phytium Technology Co Ltd filed Critical Phytium Technology Co Ltd
Priority to CN202111630836.6A priority Critical patent/CN114528075A/zh
Publication of CN114528075A publication Critical patent/CN114528075A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • G06F9/4843Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
    • G06F9/4881Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5011Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals
    • G06F9/5016Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals the resource being the memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5027Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Debugging And Monitoring (AREA)

Abstract

本发明公开一种NUMA系统的性能调优方法、系统及计算机设备,该方法包括:获取待调NUMA系统中的节点信息;获取当前测试需求所需的内存量以及NUMA节点量;根据获取的所述节点信息以及所述内存量、NUMA节点量进行NUMA节点的调用,并将调用的NUMA节点绑定对应本地内存。本发明具有实现方法简单、执行效率高且效果好、兼容性强等优点,能够充分结合NUMA系统的架构特性实现高效性能调优。

Description

NUMA系统的性能调优方法、装置及计算机设备
技术领域
本发明涉及NUMA(Non-Uniform Memory Access,非一致存储访问结构)系统,尤其涉及一种NUMA系统的性能调优方法、装置及计算机设备。
背景技术
目前主流及常用的CPU系统为X86的CPU架构,且多为SMP(Symmetric Multi-Processor,对称多处理器结构)结构,而SMP结构中的核数较少,如图1所示,在SMP结构中多个CPU是对称工作的,各CPU之间无主次或从属关系,各CPU共享相同的物理内存,每个CPU访问内存中的任何地址所需时间都是相同的,各类测试程序及应用只需直接运行。但随着当前对计算性能、存储性能等要求的不断提升,需要使用的CPU数量不断增加,而同时内存访问冲突也将迅速增加,最终会造成CPU资源的浪费,使CPU性能的有效性大大降低。
基于NUMA架构的NUMA系统可以解决传统SMP系统的上述问题。NUMA即为非一致存储访问结构,是一种分布式存储器访问方式,处理器可以同时访问不同的存储器地址,从而大幅度提高并行性。如图2所示,NUMA系统的节点通常是由一组CPU和本地内存组成,由于每个结点都有自己的本地内存,每个结点访问本地内存和访问其它结点的远地内存的延迟是不同的,每个核访问内存的时间取决于内存相对于处理器的位置,访问本地内存(本节点内)会更快一些。虽然NUMA架构基于可以同时访问不同的存储器地址,可以大幅提高并行性,但是系统中各节点的状态不同,如不同CPU节点的繁忙程度、IO接口的等待时长等可能不同,系统在各方面的性能也可能并没有达到所需要求,如CPU性能、带宽性能、网络性能等,因而在NUMA系统实际使用过程中需要进行系统的性能优化。
现有技术中针对于NUMA架构的性能优化存在多种实现方式,但是均会存在以下问题:
1、实现复杂。需要重新编写新的软件函数,进行多种判断与操作,而函数功能比较复杂,且需要调用各类底层接口及库文件,工作量较大且实现复杂,可操作性不强。
2、成本较高。需要通过低速接口进行判定与操作NUMA节点从而实现优化,而占用低速接口会造成一定程度的浪费,提升整体系统成本。
3、兼容性不强。由于通常需要在一种或者一类操作系统下编写函数,当更新系统或者更新平台后会存在移植问题,因而兼容性不强。
例如针对于NUMA架构的性能优化,现有技术中常用的一种方式即是通过测试出存在性能瓶颈的节点,针对存在性能瓶颈的节点执行优化,但是该类方式不仅会存在上述调优实现复杂、成本较高且兼容性不强等问题,同时系统性能还易于发生波动,系统无法维持稳定的性能。
发明内容
本发明要解决的技术问题就在于:针对现有技术存在的技术问题,本发明提供一种实现方法简单、执行效率高且效果好、兼容性强的NUMA系统的性能调优方法、装置及计算机设备,能够充分结合NUMA系统的架构特性实现高效性能调优。
为解决上述技术问题,本发明提出的技术方案为:
一种NUMA系统的性能调优方法,包括:
获取待调NUMA系统中的节点信息;
获取当前测试需求所需的内存量以及NUMA节点量;
根据获取的所述节点信息以及所述内存量、所述NUMA节点量进行NUMA节点的调用,并将调用的NUMA节点绑定对应本地内存。
进一步的,所述节点信息为待调NUMA系统中的指定部分节点信息。
进一步的,所述获取待调NUMA系统中的节点信息还包括:根据获取的所述节点信息,确定待调NUMA系统中CPU节点划分状态和/或本地内存使用状态。
进一步的,当执行CPU计算性能测试时,调用所有NUMA节点并绑定对应本地内存;当执行内存带宽测试时,根据线程数和/或核数绑定确定所需NUMA节点并绑定对应本地内存。
进一步的,当执行PCIE/IO测试时,调用靠近IO/PCIE的NUMA节点并绑定对应本地内存。
进一步的,还包括实时监测待调NUMA系统的运行状态,根据监测结果调整绑定本地内存的NUMA节点。
进一步的,所述根据监测结果调整绑定本地内存的节点包括:不断调整绑定本地内存的NUMA节点,直至待调NUMA系统的运行状态达到预期状态。
一种NUMA系统的性能调优装置,包括:
第一获取模块,用于获取待调NUMA系统中的节点信息;
第二获取模块,用于获取当前测试需求所需的内存量以及NUMA节点量;
调优模块,用于根据获取的所述节点信息以及所述内存量、NUMA节点量进行NUMA节点的调用,并将调用的NUMA节点绑定对应本地内存。
进一步的,还包括实时调整模块,用于实时监测待调NUMA系统的运行状态,根据监测结果调整绑定本地内存的NUMA节点。
一种计算机设备,包括处理器以及存储器,所述存储器用于存储计算机程序,所述处理器用于执行所述计算机程序,所述处理器用于执行所述计算机程序以执行如上述方法。
与现有技术相比,本发明的优点在于:
1、本发明通过获取节点信息以及获取所需的内存量、NUMA节点量,根据节点信息以及所需的内存量、NUMA节点量来确定NUMA节点的调用,并将所需NUMA节点绑定对应本地内存,能够结合NUAM架构的特性,依据不同测试需求来灵活的对NUMA系统中CPU核及本地内存进行绑定,可以满足不同测试需求的同时防止跨节点访问,避免核间的动态迁移导致应用程序的性能下降,从而提高系统的性能稳定性,减小系统的波动,实现NUMA系统的性能优化。
2、本发明不仅实现操作简单,且实现成本低、工作量小,无需调用或者启用其他低速接口,也无需重新构建函数,因而不会增加新的工作量,同时兼容性较强,可以兼容各类操作系统。
附图说明
图1是传统SMP架构的结构原理示意图。
图2是NUMA结构的结构原理示意图。
图3是本发明实施例1NUMA系统的性能调优方法的实现流程示意图。
图4是在具体应用实施例中NUMA架构的结构示意图。
图5是本发明实施例1NUMA系统的性能调优装置的结构示意图。
图6是本发明实施例2NUMA系统的性能调优方法的实现流程示意图。
图7是本发明实施例2在具体应用实施例中实现性能调优的实现流程示意图。
图8是本发明实施例2NUMA系统的性能调优装置的结构示意图。
具体实施方式
以下结合说明书附图和具体优选的实施例对本发明作进一步描述,但并不因此而限制本发明的保护范围。
实施例1:
如图3所示,本实施例NUMA系统的性能调优方法的步骤包括:
S01.接收对待调NUMA系统的测试请求;
S02.获取待调NUMA系统中的节点信息;
S03.根据接收到的测试请求的类型以及获取的节点信息确定当前测试需求所需NUMA节点量;
S04.控制根据获取的节点信息以及确定的NUMA节点量配置测试时需要使用的NUMA节点,并将需要使用的NUMA节点绑定对应本地内存。
NUMA作为一种非均匀内存访问架构,其是一种分布式存储器访问方式。在NUMA系统内所有内存被分为若干块,同时系统内拥有多条内存总线,处理器通过每个内存总线与一块内存相连构成一个组,各内存总线与内存块对应构成多个组,其中由每个组作为一个节点,处于该节点内的内存即为本地内存,每个节点通常即是由一组CPU和本地内存组成,其他节点对应的内存则为远地内存。在NUMA系统中处理器可以同时访问不同的存储器地址,内存访问时间取决于处理器的内存位置,如CPU与自己的内存物理上距离更近,访问速度更快,而访问远地内存的速度相对更慢,因而处理器能够快速的访问在同一单元的内存。
本实施例在执行NUMA系统的性能调优时,当接收到对待调NUMA系统的测试请求时,通过如通过软件命令查看或直接通过产品图纸等方式获取节点信息,以使得可以确定出当前NUMA系统内CPU节点划分状态、本地内存状态等,同时通过分析当前测试需求获取所需的NUMA节点量,根据节点信息以及所需的NUMA节点量来确定NUMA节点的调用,以及将所需NUMA节点绑定对应本地内存,能够结合NUAM架构的特性,依据不同测试需求来灵活的对NUMA系统中CPU核及本地内存进行绑定,即通过配置使得将当前测试程序及应用绑定到指定核上运行,可以满足不同测试需求的同时防止跨节点访问,避免核间的动态迁移导致应用程序的性能下降,提高系统的性能稳定性,减小系统的波动,实现NUMA系统的性能优化,同时能够提升测试结果,不仅实现简单且兼容性强,在调优过程中无需调用或者启用其他低速接口。
本实施例上述性能调优步骤S01~S04具体可通过NUMA系统内的处理器实现,即将能够实现上述性能调优步骤S01~S04功能的软件模块嵌入NUMA系统内的处理器中,由处理器接收对待调NUMA系统的测试请求,当接收到对待调NUMA系统的测试请求时,则启动后续步骤S02~S04步骤,以进行NUMA系统的性能调优,当未接收到测试请求时,则处于待机状态。可以理解的是,除采用NUMA系统内的处理器实现性能调优控制外,当然也可以根据实际需求采用其他额外的处理器或控制器来实现上述性能调优步骤。
本实施例步骤S02中节点信息具体可以通过调用软件命令的形式获取得到,如通过NUMA系统中的numactl-H命令等获取得到;或者可以先通过产品原始设计图纸或者产品手册等原始数据获取得到节点信息后进行存储,当接收到对待调NUMA系统的测试请求时则直接从预先存储的数据中读取出所需的节点信息,甚至还可以通过外部数据输入的方式来获取节点信息。
在NUMA系统中每个节点包括有一组CPU和本地内存,CPU节点划分状态即为各CPU与节点之间的对应划分状态,即各CPU分别划分为哪些节点,当获取到NUMA系统内各节点的信息(节点所对应的CPU、本地内存使用情况等)后,即可通过该节点信息确定出CPU与各节点之间的对应关系,也即CPU节点划分状态,如通过NUMA系统中如numactl-H命令即可以直接查看到当前NUAM操作系统主要节点信息,包括CPU节点划分以及本地内存使用情况信息等。
本实施例中,上述节点信息具体为待调NUMA系统中的指定部分节点信息,如可以为NUMA系统中的主要/关键节点,主要/关键节点即为NUMA系统中起主要/关键作用的节点,主要/关键节点的确定可依据实际NUMA系统的架构特性进行,具体获取哪些节点的信息可以根据实际需求确定,可以是主要/关键节点,也可以是其他需要关注的节点,甚至可以直接获取系统内所有节点的信息以获取全面的节点状态。节点信息的信息类型可以为节点的运行状态(如是否在运行)、节点的划分情况、是否使用本地内存等等,以使得通过获取节点的信息,可以确定出系统内CPU节点的划分情况以及本地内存的使用情况。节点信息的信息类型除上述以外,当然也可以依据实际需求配置其他信息类型,以获取更为全面的NUMA系统内节点状态、本地内存使用状态。
本实施例中,获取待调NUMA系统中的节点信息还包括:根据获取的节点信息,确定待调NUMA系统中CPU节点划分状态、本地内存使用状态。当获取NUMA系统中的节点信息后,由该节点信息可以分析出待调NUMA系统中CPU节点划分状态、本地内存使用状态,CPU节点划分状态即为NUMA节点与CPU之间的对应划分关系,本地内存使用状态即为哪些本地内存已使用、哪些本地内存尚未使用。每个NUMA节点可以对应多个CPU节点,不同的节点绑定方式所得到的访存效率是不同的,由CPU节点划分状态可以判断出不同节点的访问效率。结合上述CPU节点划分状态、本地内存使用状态,即可以确定出符合当前测试需求的节点绑定方式,以使得达到系统最优性能。
不同测试类型下所需要的NUMA节点量是不同的,本实施例当接收到测试请求后,首先由步骤S02获取节点信息,步骤S03根据测试请求类型以及节点信息确定需要的NUMA节点量,步骤S04再控制根据获取的节点信息以及确定的NUMA节点量配置测试时需要使用的NUMA节点,并将NUMA节点与本地内存绑定。该NUMA节点的配置即为将所需的NUMA节点配置为测试所需的节点,使得在后续测试过程中,启动该配置的各NUMA节点来执行测试任务中所需的测试进程及线程;将NUMA节点与本地内存绑定即为将NUMA节点与本地内存进行对应,使得当测试进程及线程使用该节点时会相应的使用所绑定的本地内存,从而使得测试进程及线程均在调用配置的节点及本地内存中使用,而不会访问其他节点以及其他节点的内存,有效实现NUMA系统性能优化。
如图4所示,在NUMA架构下,多CPU对主存的访问并非对等的,每个CPU都有自己的主存,CPU与自己的主存物理上距离更近,访问速度更快,而访问远端存储器的速度相对要慢。NUMA系统使用节点(Node)来管理CPU与主存,一个NUMA系统由多个NUMA节点(Node)组成,其中每个节点(Node)可以拥有多个CPU,但是只有一个内存控制器,保证本节点(Node)的所有CPU对本节点(Node)的主存实现对等访问,而其它节点(Node)的CPU对本Node的主存访问延迟要大一些。从图4中可以看出,当前CPU总计16个核(core),每4个核(core)为一个节点(Node),每个节点(Node)分别对应一组内存,从0-3依次对应,其中node0对应PCIE最近,则外设访问时绑定该node0能够获取最优的性能。
本实施例具体采用通过软件命令等方法,获取待调NUMA系统中的节点信息,确定当前CPU的NUMA架构信息及本地内存详情。在具体应用实施例中,通过numactl-H命令查看当前NUAM操作系统主要节点信息,以获取CPU节点划分以及本地内存使用情况。当然也可以直接通过产品手册等产品信息等方式,来获取系统中关于CPU及整体架构的相关信息,整体架构即为如图4所示的系统架构信息,包括NUMA节点的位置、NUMA节点与CPU之间的对应划分关系、内存使用情况等等。
本实施例中获取待调NUMA系统中的节点信息后,进一步针对当前测试用例及应用需求,分析所需的NUMA节点量(节点数量),从而获取得到当前测试需求所需的NUMA节点量,然后依据当前获取的节点信息所需的NUMA节点量,调用不同的NUAM节点并绑定对应本地内存,以使得能够正好符合当前测试及应用需求,同时还能够防止跨路访问。
针对不同测试用例进行需求分析,测试程序的测试方向或测试内容不一样,测试要求也会存在差异,如测试SPEC2006(用于测试CPU计算性能),由于测试CPU计算性能,且程序需求内存容量较大,而测试内存带宽(STREAM),由于测试CPU带宽性能,NUMA架构CPU易出现性能飘动,上下起伏现象。本实施例在获取待调NUMA系统中的节点信息,确定出系统中CPU划分状态以及本地内存使用状态,依据当前系统中的NUMA节点状态、内存使用状态,以及当前测试需求所需的内存量、NUMA节点量来确定调用的NUMA节点,同时绑定对应的本地内存,以使得在待调NUMA系统当前状态下能够获得最优的性能。
如对于CPU的常用测试程序,当对于计算性能(SPEC2006)、内存带宽(STREAM)、网络性能、读写性能等方面进行测试时,依据上述不同测试需求、特性来调用不同的NUAM节点以及进行节点绑定操作,以使得匹配计算性能(SPEC2006)、内存带宽(STREAM)、网络性能、读写性能的不同需求。
本实施例中,当接收到CPU计算性能测试请求时,确定当前测试所需NUMA节点量为待调NUMA系统中所有未被使用的NUMA节点,控制根据节点信息将待调NUMA系统中所有未被使用的NUMA节点配置为测试所需的NUMA节点,并控制将所有测试所需的NUMA节点绑定对应本地内存,即在执行CPU计算性能测试时,通过调用所有NUMA节点并绑定对应本地内存来执行测试。上述未被使用的NUMA节点即为当前处于空闲状态、可以被调用的NUMA节点。
当接收到内存带宽测试请求时,根据待调NUMA系统中的线程数和/或核数确定当前测试需要使用的目的NUMA节点量,控制根据节点信息将待调NUMA系统中目的NUMA节点量的未被使用的NUMA节点配置为测试所需的NUMA节点并绑定对应本地内存,即内存带宽测试时,依据线程数、核数等信息来确定NUMA节点量并绑定对应本地内存来执行测试。上述未被使用的NUMA节点即为当前处于空闲状态、可以被调用的NUMA节点。
本实施例中,当接收到PCIE/IO测试请求时,确定当前测试所需NUMA节点量为距离IO/PCIE在预设范围内且未被使用的NUMA节点,控制根据节点信息将距离IO/PCIE在预设范围内的未被使用的NUMA节点配置为当前测试所需的NUMA节点并绑定对应本地内存,即PCIE/IO测试时,调用靠近IO/PCIE的NUMA节点并绑定对应本地内存来进行测试。上述未被使用的NUMA节点即为当前处于空闲状态、可以被调用的NUMA节点。
在具体应用实施例中,当执行CPU计算性能测试时,调用所有NUMA节点并绑定对应本地内存;当执行内存带宽测试时,根据线程数和/或核数绑定确定所需NUMA节点并绑定对应本地内存,其中,当执行PCIE/IO测试时,调用靠近IO/PCIE的NUMA节点并绑定对应本地内存,其他如大容量测试中,可使用相近节点及本地内存。按照上述方式,可以依据不同测试需求形成最优的调优方案,使得测试及需求尽量在本地内存执行,从而在不同测试需求下均可以防止跨节点访问,避免核间的动态迁移导致应用程序的性能下降,提高系统的性能稳定性,同时能够减小系统的波动。
本实施例上述在进行节点的绑定操作时,具体可采用命令形式实现,实现简单,且该实现命令较为常见,无需重新构建函数,因而也不会增加新的工作量,同时兼容性较强,由于仅需要简单的绑定操作,而绑定的操作命令在LINUX等操作系统中均可以直接调用,即可以兼容各类操作系统。
如图5所示,本实施例进一步包括NUMA系统的性能调优装置,包括:
接收模块,用于接收对待调NUMA系统的测试请求;
获取模块,用于获取待调NUMA系统中的节点信息;
确定模块,用于接收到的所述测试请求的类型以及获取的所述节点信息确定当前测试需求所需NUMA节点量;
调优模块,用于控制根据获取的所述节点信息以及确定的所述NUMA节点量配置测试时需要使用的NUMA节点,并将需要使用的NUMA节点绑定对应本地内存。
本实施例中,获取模块还包括根据获取的所述节点信息,确定待调NUMA系统中CPU节点划分状态、本地内存使用状态等。
本实施例NUMA系统的性能调优装置与上述NUMA系统的性能调优方法为一一对应,两者具有相同的原理及效果,在此不再一一赘述。
本实施例还提供计算机设备,包括处理器以及存储器,存储器用于存储计算机程序,处理器用于执行计算机程序,处理器用于执行计算机程序以执行上述NUMA系统的性能调优方法。
实施例2:
如图6所述,本实施例NUMA系统的性能调优方法的步骤包括:
S01.获取待调NUMA系统中的节点信息;
S02.获取当前测试需求所需的内存量以及NUMA节点量;
S03.根据获取的所述节点信息以及所述内存量、所述NUMA节点量进行NUMA节点的调用,并将调用的NUMA节点绑定对应本地内存;
S04.实时监测待调NUMA系统的运行状态,根据监测结果调整绑定本地内存的NUMA节点。
本实施例中,在执行NUMA系统的性能调优时,通过获取节点信息,以使得可以确定出当前NUMA系统内CPU节点划分状态、本地内存状态等,同时通过分析当前测试需求获取所需的内存量、NUMA节点量,根据节点信息以及所需的内存量、NUMA节点量来确定NUMA节点的调用,以及将所需NUMA节点绑定对应本地内存,能够结合NUAM架构的特性,依据不同测试需求来灵活的对NUMA系统中CPU核及本地内存进行绑定,即通过配置使得将当前测试程序及应用绑定到指定核上运行,可以满足不同测试需求的同时防止跨节点访问,避免核间的动态迁移导致应用程序的性能下降,提高系统的性能稳定性,减小系统的波动,实现NUMA系统的性能优化,同时通过实时监测系统的运行状态,根据运行状态来进一步对绑定的NUMA节点进行调整,使得能够实时达到系统最优状态。
本实施例中,上述节点信息具体为待调NUMA系统中的指定部分节点信息,如可以为NUMA系统中的主要/关键节点,主要/关键节点即为NUMA系统中起主要/关键作用的节点,主要/关键节点的确定可依据实际NUMA系统的架构特性进行,具体获取哪些节点的信息可以根据实际需求确定,可以是主要/关键节点,也可以是其他需要关注的节点,甚至可以直接获取系统内所有节点的信息以获取全面的节点状态。节点信息的信息类型可以为节点的运行状态(如是否在运行)、节点的划分情况、是否使用本地内存等等,以使得通过获取节点的信息,可以确定出系统内CPU节点的划分情况以及本地内存的使用情况。节点信息的信息类型除上述以外,当然也可以依据实际需求配置其他信息类型,以获取更为全面的NUMA系统内节点状态、本地内存使用状态。
本实施例中,获取待调NUMA系统中的节点信息还包括:根据获取的节点信息,确定待调NUMA系统中CPU节点划分状态、本地内存使用状态。当获取NUMA系统中的节点信息后,由该节点信息可以分析出待调NUMA系统中CPU节点划分状态、本地内存使用状态,CPU节点划分状态即为NUMA节点与CPU之间的对应划分关系,本地内存使用状态即为哪些本地内存已使用、哪些本地内存尚未使用。每个NUMA节点可以对应多个CPU节点,不同的节点绑定方式所得到的访存效率是不同的,如图4所示,由CPU节点划分状态可以判断出不同节点的访问效率。结合上述CPU节点划分状态、本地内存使用状态,即可以确定出符合当前测试需求的节点绑定方式,以使得达到系统最优性能。
本实施例具体采用通过软件命令等方法,获取待调NUMA系统中的节点信息,确定当前CPU的NUMA架构信息及本地内存详情。在具体应用实施例中,通过numactl-H命令查看当前NUAM操作系统主要节点信息,以获取CPU节点划分以及本地内存使用情况。当然也可以直接通过产品手册等产品信息等方式,来获取系统中关于CPU及整体架构的相关信息,整体架构即为如图4所示的系统架构信息,包括NUMA节点的位置、NUMA节点与CPU之间的对应划分关系、内存使用情况等等。
本实施例中获取待调NUMA系统中的节点信息后,进一步针对当前测试用例及应用需求,分析所需的内存量(内存容量)及NUMA节点量(节点数量),从而获取得到当前测试需求所需的内存量、NUMA节点量,然后依据当前获取的节点信息所需的内存量、NUMA节点量,调用不同的NUAM节点并绑定对应本地内存,以使得能够正好符合当前测试及应用需求,同时还能够防止跨路访问。
针对不同测试用例进行需求分析,测试程序的测试方向或测试内容不一样,测试要求也会存在差异,如测试SPEC2006(用于测试CPU计算性能),由于测试CPU计算性能,且程序需求内存容量较大,而测试内存带宽(STREAM),由于测试CPU带宽性能,NUMA架构CPU易出现性能飘动,上下起伏现象。本实施例在获取待调NUMA系统中的节点信息,确定出系统中CPU划分状态以及本地内存使用状态,依据当前系统中的NUMA节点状态、内存使用状态,以及当前测试需求所需的内存量、NUMA节点量来确定调用的NUMA节点,同时绑定对应的本地内存,以使得在待调NUMA系统当前状态下能够获得最优的性能。
如对于CPU的常用测试程序,当对于计算性能(SPEC2006)、内存带宽(STREAM)、网络性能、读写性能等方面进行测试时,依据上述不同测试需求、特性来调用不同的NUAM节点以及进行节点绑定操作,以使得匹配计算性能(SPEC2006)、内存带宽(STREAM)、网络性能、读写性能的不同需求。
在具体应用实施例中,当执行CPU计算性能测试时,调用所有NUMA节点并绑定对应本地内存;当执行内存带宽测试时,根据线程数和/或核数绑定确定所需NUMA节点并绑定对应本地内存,其中,当执行PCIE/IO测试时,调用靠近IO/PCIE的NUMA节点并绑定对应本地内存,其他如大容量测试中,可使用相近节点及本地内存。按照上述方式,可以依据不同测试需求形成最优的调优方案,使得测试及需求尽量在本地内存执行,从而在不同测试需求下均可以防止跨节点访问,避免核间的动态迁移导致应用程序的性能下降,提高系统的性能稳定性,同时能够减小系统的波动。
本实施例上述在进行节点的绑定操作时,具体可采用命令形式实现,实现简单,且该实现命令较为常见,无需重新构建函数,因而也不会增加新的工作量,同时兼容性较强,由于仅需要简单的绑定操作,而绑定的操作命令在LINUX等操作系统中均可以直接调用,即可以兼容各类操作系统。
本实施例中,步骤S04中监测的运行状态可以为CPU利用率、内存使用率以及线程运行方式等任意一种或多种,具体可以依据实际需求配置,通过监测系统的运行状态以确定当前节点绑定方案下CPU、内存等的使用状态,从而可以判断出CPU、内存等是否达到了最优利用状态。
本实施例中,步骤S04中根据监测结果调整绑定本地内存的节点包括:不断调整绑定本地内存的NUMA节点,直至待调NUMA系统的运行状态达到预期状态,以使得测试进程及线程能够尽量在调用节点及本地内存使用,从而使得待调NUMA系统的运行状态能够实时调整至最优,保持待调NUMA系统实时处于最优状态。上述在监测系统的运行状态时,具体可监测CPU利用率、内存使用率以及线程运行方式等信息。
在具体应用实施例中,上述监测时可以通过各类监控插件及命令,进行CPU利用率、内存使用率以及线程运行方式等进行监测,并判断是否符合预期,如果不符合则调整绑定的节点,使得测试应用均在绑定节点及本地内存上进行使用,防止跨节点访问,避免核间的动态迁移导致应用程序的性能下降。上述监控插件包括但不限于资源管理器、htop命令等。
在具体应用实施例中,步骤S04的具体步骤为:
S401.判断的当前待调NUMA系统的运行状态是否达到预期状态,如果是转入步骤S402,否则退出当前调优步骤;
S402.调整当前调用的NUMA节点并绑定对应本地内存,返回步骤S02。
在具体应用实施例中,可以根据测试得分与理论依据进行对比,分析当前系统是否已达理论值,若已达理论值,证明此次优化达标;若不达标分析测试程序,重新调整绑定节点、监测使用状态,重复上述步骤,直至系统能够发挥最大性能。
以下在具体应用实施例中实现NUMA系统的性能调优为例,对本实施例上述方法进行进一步说明。
如图7所示,本实施例实现NUMA系统的性能调优的详细步骤为:
步骤S01:通过软件命令(numactl-H命令)获取待调NUMA系统的节点信息,确定出当前CPU节点划分状态以及本地内存使用状态;
步骤S02:针以当前测试用例及应用需求,分析所需内存容量及NUMA节点数量,获取当前测试需求所需的内存量以及NUMA节点量;
步骤S03:根据当前节点信息、所需内存容量及NUMA节点数量,调用不同的NUAM节点,并绑定对应本地内存,以进行测试及应用;
上述直行绑定的绑定命令具体可采用numactl、taskset等方式。
步骤S04.实时监控测试及使用状态,如CPU利用率、内存使用率以及线程运行方式进行监测等,并判断是否有效,即是否符合预期,如果为否则调整绑定的节点,返回步骤S03,直至判断到为有效,使得测试应用均在绑定节点及本地内存上进行使用而达到最优,当前即为系统最优状态。
如图8所示,本实施例进一步包括NUMA系统的性能调优装置,包括:
第一获取模块,用于获取待调NUMA系统中的节点信息;
第二获取模块,用于获取当前测试需求所需的内存量以及NUMA节点量;
调优模块,用于根据获取的节点信息以及内存量、NUMA节点量进行NUMA节点的调用,并将所需NUMA节点绑定对应本地内存;
实时调整模块,用于实时监测待调NUMA系统的运行状态,根据监测结果调整绑定本地内存的NUMA节点。
本实施例中,第一获取模块还包括根据获取的所述节点信息,确定待调NUMA系统中CPU节点划分状态、本地内存使用状态等。
如图8所示,本实施例中实时调整模块包括:
判断单元,用于判断的当前待调NUMA系统的运行状态是否达到预期状态,如果是转入调整单元,否则退出当前调优;
调整单元,用于调整当前调用的NUMA节点并绑定对应本地内存,返回执行第二获取模块,以重新执行调用NUMA节点及本地内存的绑定。
本实施例NUMA系统的性能调优装置与上述NUMA系统的性能调优方法为一一对应,两者具有相同的原理及效果,在此不再一一赘述。
本实施例还提供计算机设备,包括处理器以及存储器,存储器用于存储计算机程序,处理器用于执行计算机程序,处理器用于执行计算机程序以执行上述NUMA系统的性能调优方法。
本领域技术人员可以理解,上述计算机设备的描述仅仅是示例,并不构成对计算机设备的限定,可以包括比上述描述更多或更少的部件,或者组合某些部件,或者不同的部件,例如可以包括输入输出设备、网络接入设备、总线等。所称处理器可以是中央处理单元(Central Processing Unit,CPU),还可以是其他通用处理器、数字信号处理器(DigitalSignal Processor,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现成可编程门阵列(Field-Programmable Gate Array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等,处理器是计算机设备的控制中心,利用各种接口和线路连接整个计算机设备的各个部分。
存储器可用于存储计算机程序和/或模块,处理器通过运行或执行存储在存储器内的计算机程序和/或模块,以及调用存储在存储器内的数据,实现计算机设备的各种功能。存储器可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需的应用程序(比如声音播放功能、图像播放功能等)等;存储数据区可存储根据手机的使用所创建的数据(比如音频数据、电话本等)等。此外,存储器可以包括高速随机存取存储器,还可以包括非易失性存储器,例如硬盘、内存、插接式硬盘,智能存储卡(SmartMedia Card,SMC),安全数字(Secure Digital,SD)卡,闪存卡(FlashCard)、至少一个磁盘存储器件、闪存器件、或其他易失性固态存储器件。
所述计算机设备集成的模块/单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明实现上述实施例方法中的全部或部分流程,也可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一计算机可读存储介质中,该计算机程序在被处理器执行时,可实现上述各个基于模板标注的分布式爬虫方法实施例的步骤。其中,所述计算机程序包括计算机程序代码,所述计算机程序代码可以为源代码形式、对象代码形式、可执行文件或某些中间形式等。所述计算机可读介质可以包括:能够携带所述计算机程序代码的任何实体或装置、记录介质、U盘、移动硬盘、磁碟、光盘、计算机存储器、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、电载波信号、电信号以及软件分发介质等。
上述只是本发明的较佳实施例,并非对本发明作任何形式上的限制。虽然本发明已以较佳实施例揭露如上,然而并非用以限定本发明。因此,凡是未脱离本发明技术方案的内容,依据本发明技术实质对以上实施例所做的任何简单修改、等同变化及修饰,均应落在本发明技术方案保护的范围内。

Claims (17)

1.一种NUMA系统的性能调优方法,其特征在于,包括:
接收对待调NUMA系统的测试请求;
获取待调NUMA系统中的节点信息;
根据接收到的所述测试请求的类型以及获取的所述节点信息,确定当前测试需求所需NUMA节点量;
控制根据获取的所述节点信息以及确定的所述NUMA节点量配置测试时需要使用的NUMA节点,并将需要使用的NUMA节点绑定对应本地内存。
2.根据权利要求1所述的NUMA系统的性能调优方法,其特征在于,所述节点信息为待调NUMA系统中的指定部分节点的节点信息。
3.根据权利要求1所述的NUMA系统的性能调优方法,其特征在于,所述节点信息包括节点分布信息、CPU节点划分状态信息以及节点内本地内存的使用状态中任意一种或两种以上。
4.根据权利要求1所述的NUMA系统的性能调优方法,其特征在于,所述测试请求包括CPU计算性能测试请求、内存带宽测试请求、PCIE测试请求、IO测试请求中任意一种。
5.根据权利要求1~4中任意一项所述的NUMA系统的性能调优方法,其特征在于,当接收到CPU计算性能测试请求时,确定当前测试所需NUMA节点量为待调NUMA系统中所有未被使用的NUMA节点,控制根据所述节点信息将待调NUMA系统中所有未被使用的NUMA节点配置为测试所需的NUMA节点,并控制将所有测试所需的NUMA节点绑定对应本地内存。
6.根据权利要求1~4中任意一项所述的NUMA系统的性能调优方法,其特征在于,当接收到内存带宽测试请求时,根据待调NUMA系统中的线程数和/或核数确定当前测试需要使用的目的NUMA节点量,控制根据所述节点信息将待调NUMA系统中目的NUMA节点量的未被使用的NUMA节点配置为测试所需的NUMA节点并绑定对应本地内存。
7.根据权利要求1~4中任意一项所述的NUMA系统的性能调优方法,其特征在于,当接收到PCIE/IO测试请求时,确定当前测试所需NUMA节点量为距离IO/PCIE在预设范围内且未被使用的NUMA节点,控制根据所述节点信息将距离IO/PCIE在预设范围内的未被使用的NUMA节点配置为当前测试所需的NUMA节点并绑定对应本地内存。
8.根据权利要求1~4中任意一项所述的NUMA系统的性能调优方法,其特征在于,还包括实时监测待调NUMA系统的运行状态,根据监测结果调整绑定本地内存的NUMA节点。
9.根据权利要求8所述的NUMA系统的性能调优方法,其特征在于,所述根据监测结果调整绑定本地内存的节点包括:
判断待调NUMA系统的运行状态是否达到预期状态;
如果判断到未达到预期状态则调整当前所使用的NUMA节点,并将调整后的NUMA节点绑定本地内存,如果判断到达到预期状态则停止调整。
10.一种NUMA系统的性能调优装置,其特征在于,包括:
接收模块,用于接收对待调NUMA系统的测试请求;
获取模块,用于获取待调NUMA系统中的节点信息;
确定模块,用于根据接收到的所述测试请求的类型以及获取的所述节点信息,确定当前测试需求所需的NUMA节点量;
获取模块,用于获取待调NUMA系统中的节点信息;
调优模块,用于根据获取的所述节点信息以及确定的所述NUMA节点量分配测试时需要使用的NUMA节点,并将需要使用的NUMA节点绑定对应本地内存。
11.根据权利要求10所述的NUMA系统的性能调优装置,其特征在于,所述获取模块获取的节点信息包括节点分布信息、CPU节点划分状态信息以及节点内本地内存的使用状态中任意一种或两种以上。
12.根据权利要求10所述的NUMA系统的性能调优装置,其特征在于,当所述接收模块接收到CPU计算性能测试请求时,所述确定模块确定当前测试所需NUMA节点量为待调NUMA系统中所有未被使用的NUMA节点;所述调优模块控制根据所述节点信息将待调NUMA系统中所有未被使用的NUMA节点配置为测试所需的NUMA节点,并控制将所有测试所需的NUMA节点绑定对应本地内存。
13.根据权利要求10所述的NUMA系统的性能调优装置,其特征在于,当所述接收模块接收到内存带宽测试请求时,所述确定模块根据待调NUMA系统中的线程数和/或核数确定当前测试需要使用的目的NUMA节点量,所述调优模块控制根据所述节点信息将待调NUMA系统中目的NUMA节点量的未被使用的NUMA节点配置为测试所需的NUMA节点并绑定对应本地内存。
14.根据权利要求10所述的NUMA系统的性能调优装置,其特征在于,当所述接收模块接收到PCIE/IO测试请求时,所述确定模块确定当前测试所需NUMA节点量为距离IO/PCIE在预设范围内且未被使用的NUMA节点,所述调优模块控制根据所述节点信息将与IO/PCIE在预设范围的未被使用的NUMA节点配置为当前测试所需的NUMA节点并绑定对应本地内存。
15.根据权利要求10~14中任意一项所述的NUMA系统的性能调优装置,其特征在于,还包括实时调整模块,用于实时监测待调NUMA系统的运行状态,根据监测结果调整绑定本地内存的NUMA节点。
16.根据权利要求15所述的NUMA系统的性能调优装置,其特征在于,所述实时调整模块包括:
判断单元,用于判断待调NUMA系统的运行状态是否达到预期状态;
调整迭代单元,用于如果所述判断单元判断到未达到预期状态则调整当前所使用的NUMA节点,并将调整后的NUMA节点绑定本地内存,如果所述判断单元判断到达到预期状态则停止调整。
17.一种计算机设备,包括处理器以及存储器,所述存储器用于存储计算机程序,所述处理器用于执行所述计算机程序,其特征在于,所述处理器用于执行所述计算机程序以执行如权利要求1~9中任意一项所述方法。
CN202111630836.6A 2021-12-28 2021-12-28 Numa系统的性能调优方法、装置及计算机设备 Pending CN114528075A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202111630836.6A CN114528075A (zh) 2021-12-28 2021-12-28 Numa系统的性能调优方法、装置及计算机设备

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202111630836.6A CN114528075A (zh) 2021-12-28 2021-12-28 Numa系统的性能调优方法、装置及计算机设备

Publications (1)

Publication Number Publication Date
CN114528075A true CN114528075A (zh) 2022-05-24

Family

ID=81620658

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202111630836.6A Pending CN114528075A (zh) 2021-12-28 2021-12-28 Numa系统的性能调优方法、装置及计算机设备

Country Status (1)

Country Link
CN (1) CN114528075A (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2023240719A1 (zh) * 2022-06-15 2023-12-21 长鑫存储技术有限公司 内存测试方法及装置、存储介质及电子设备

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2023240719A1 (zh) * 2022-06-15 2023-12-21 长鑫存储技术有限公司 内存测试方法及装置、存储介质及电子设备

Similar Documents

Publication Publication Date Title
US11150826B2 (en) Multi-threaded dynamic per-file read-ahead cache for deduplication system
CN113590508B (zh) 动态可重构的内存地址映射方法及装置
CN111104208A (zh) 进程调度管理方法、装置、计算机设备及存储介质
CN114490085B (zh) 一种网卡配置方法、装置、设备及存储介质
CN112732501B (zh) 一种测试方法及多处理器soc芯片
CN112035397A (zh) 包括fpga的电子系统及其操作方法
CN114528075A (zh) Numa系统的性能调优方法、装置及计算机设备
JP5969122B2 (ja) ホストバスアダプタおよびシステム
CN115033356A (zh) 一种基于异构可重构的动态资源调度方法及系统
CN113094172A (zh) 应用于分布式存储系统的服务器管理方法和装置
CN113760457A (zh) 一种虚拟机资源分配方法、装置、电子设备及存储介质
US20080005726A1 (en) Methods and systems for modifying software applications to implement memory allocation
US6598105B1 (en) Interrupt arbiter for a computing system
GB2516435A (en) Embedded memory management scheme for real-time applications
CN111767114A (zh) 创建云主机的方法和装置、计算机系统和可读存储介质
US11656905B2 (en) Delegation control based on program privilege level and page privilege level
CN115525582A (zh) 基于页的内联计算引擎的任务管理和数据调度方法及系统
US11853798B2 (en) Disaggregated memory pool assignment
CN111177027A (zh) 动态随机存取存储器、内存管理方法、系统及存储介质
CN117519957A (zh) 一种数据处理方法及装置
CN115562830A (zh) 主机总线适配器调优方法及装置、电子设备、存储介质
CN1097783C (zh) 数据处理的系统和方法以及带有这类系统的通信系统
CN117311910B (zh) 一种高性能虚拟密码机运行方法
CN113342853B (zh) 流式数据处理方法和系统
CN114691216A (zh) 串口指令优化方法、装置、设备及计算机存储介质

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination