CN116737481B - 针对自动numa平衡特性中扫描大小的操作系统优化方法 - Google Patents
针对自动numa平衡特性中扫描大小的操作系统优化方法 Download PDFInfo
- Publication number
- CN116737481B CN116737481B CN202310980082.XA CN202310980082A CN116737481B CN 116737481 B CN116737481 B CN 116737481B CN 202310980082 A CN202310980082 A CN 202310980082A CN 116737481 B CN116737481 B CN 116737481B
- Authority
- CN
- China
- Prior art keywords
- memory bandwidth
- memory
- operating system
- numa
- automatic
- 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.)
- Active
Links
- 238000000034 method Methods 0.000 title claims abstract description 14
- 238000005457 optimization Methods 0.000 title claims abstract description 8
- 238000012360 testing method Methods 0.000 claims description 16
- 238000011056 performance test Methods 0.000 claims description 10
- 230000005540 biological transmission Effects 0.000 claims description 3
- 238000012546 transfer Methods 0.000 claims description 3
- 230000003068 static effect Effects 0.000 claims description 2
- 238000011161 development Methods 0.000 description 4
- 230000009286 beneficial effect Effects 0.000 description 3
- 230000007547 defect Effects 0.000 description 2
- 238000010586 diagram Methods 0.000 description 2
- 238000011156 evaluation Methods 0.000 description 2
- 238000012545 processing Methods 0.000 description 2
- 101100498818 Arabidopsis thaliana DDR4 gene Proteins 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000013507 mapping Methods 0.000 description 1
- 238000013508 migration Methods 0.000 description 1
- 230000005012 migration Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000001960 triggered effect Effects 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/22—Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing
- G06F11/2205—Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing using arrangements specific to the hardware being tested
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/22—Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing
- G06F11/2273—Test methods
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/0223—User address space allocation, e.g. contiguous or non contiguous base addressing
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L43/00—Arrangements for monitoring or testing data switching networks
- H04L43/08—Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters
- H04L43/0876—Network utilisation, e.g. volume of load or congestion level
- H04L43/0894—Packet rate
-
- Y—GENERAL 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
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE 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/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computer Hardware Design (AREA)
- Quality & Reliability (AREA)
- Environmental & Geological Engineering (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Debugging And Monitoring (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
Abstract
针对自动NUMA平衡特性中扫描大小的操作系统优化方法,包括如下步骤:获取操作系统的近似实际内存带宽值;通过下述公式确定扫描大小:扫描大小=近似实际内存带宽×k/最小扫描周期;其中,k为可调整的内存带宽控制因子,基于实际需要控制在总内存带宽的一定百分比范围内;使用国产操作系统提供的sysctl工具设置扫描大小的值,并开启自动NUMA平衡特性。本发明首次提出了内存带宽性能与自动NUMA平衡中页面扫描速率之间的内在关联,使用内存带宽控制因子k来指导页面扫描速率,该指标更具有物理和现实意义。
Description
技术领域
本发明涉及操作系统自动NUMA平衡性能优化技术领域,具体涉及针对自动NUMA平衡特性中扫描大小的操作系统优化方法。
背景技术
随着计算机系统的不断发展,NUMA(Non Uniform Memory Access,非一致性内存访问)架构已经成为高性能计算机系统中常用的一种架构,它的特点是不同的处理器或处理器组件访问不同的内存区域的速度不同,即内存访问的延迟不一致。相比于传统的对称多处理(SMP)架构,NUMA架构可以支持更大的内存容量和更高的内存带宽,适用于需要处理大量数据和高并发的计算密集型应用程序。
近年来,随着国产操作系统软件生态的蓬勃发展,越来越多的企业选择基于国产操作系统部署业务,这对国产操作系统的性能提出较高要求。由于NUMA的大规模应用及其固有特点,CPU访问远端内存时存在性能惩罚,进而会引发应用程序的性能问题,国产操作系统为了解决该问题,提供了自动NUMA平衡特性,它主要包含3个基本步骤:
1、周期性扫描应用的部分地址空间,解除内存映射并设置标记。
2、应用程序下一次访问数据会触发NUMA缺页中断。
3、自动NUMA平衡在此期间会收集应用的内存访问特征,包括本地访问、远端访问、共享内存访问和私有内存访问等,在处理中断时决定是否将内存页迁移到应用程序的本地内存节点。
在步骤1和2中,内存页面的解引用和缺页中断的处理会引入额外的开销,当迁移页面到本地内存带来的性能提升超过引入的额外开销时,自动NUMA平衡才能起到提升性能的作用。为了控制上述额外开销,操作系统提供了numa_balancing_scan_period_min_ms(扫描最小周期)、numa_balancing_scan_period_max_ms(扫描最大周期)、numa_balancing_scan_delay_ms(扫描延迟时长)和numa_balancing_scan_size_mb(扫描大小)四个参数来控制内存页面扫描的速度。扫描速度过快或过慢都不好:扫描过快,内存页很快迁移到本地节点,但扫描会占用较多系统的CPU资源;扫描过慢,虽然扫描占用的CPU资源少,但内存页依然分布在远端内存,应用程序的性能依然受影响。因此需要合理设置上述调节参数,才能实现该特性改善性能的初衷。
在操作系统中,上述调整参数的设置依据历史经验而设置,且自2012年代码提交后并未做改动。在此期间,内存的发展经历了DDR2、DDR3、DDR4的快速发展和商业化落地,伴随着NUMA架构的提出,服务器CPU上的内存控制器也实现了对双通道、四通道、六通道和八通道的支持,内存带宽迅速增大,因此上述调整参数并不适用于硬件性能日益增长的服务器操作系统。
发明内容
为解决已有技术存在的不足,本发明提供了一种针对自动NUMA平衡特性中扫描大小的操作系统优化方法,包括如下步骤:
步骤S1:获取操作系统的近似实际内存带宽值;
步骤S2:通过下述公式确定扫描大小:
扫描大小= 近似实际内存带宽 × k / 最小扫描周期;
其中,k为可调整的内存带宽控制因子,基于实际需要控制在总内存带宽的一定百分比范围内;
步骤S3:使用操作系统提供的sysctl工具设置扫描大小的值,并开启自动NUMA平衡特性。
其中,如果服务器不可以安装内存带宽性能测试工具,则通过如下步骤获取操作系统的近似实际内存带宽值:
步骤S11:获取内存条的内存数据传输频率;
步骤S12:获取内存条的数据位宽;
步骤S13:获取当前服务器实际使用的内存通道个数;
步骤S14:通过如下公式确定近似实际内存带宽值:
单通道理论内存带宽 = 内存数据传输频率 × 数据位宽 ÷ 8;
理论总内存带宽 = 单通道理论内存带宽 × 内存通道个数;
近似实际内存带宽 = 理论总内存带宽 × 80%。
其中,如果服务器可以安装内存带宽性能测试工具,则通过如下步骤获取操作系统的近似实际内存带宽值:设置静态数组的大小,编译测试程序,运行测试工具,通过COPY、SCALE、SUM及TRIAD四种操作获取操作测试结果,选择多核测试中四种操作测试结果中最小值作为近似实际内存带宽值。
本发明首次提出了内存带宽性能与自动NUMA平衡中页面扫描速率之间的内在关联,使用内存带宽控制因子k来指导页面扫描速率,该指标更具有物理和现实意义。基于两者的内在关联,自动NUMA平衡特性中的扫描大小参数不再依据过时的历史经验,而是根据服务器内存带宽性能的近似实际值,并按照本发明提出的算法进行设置,更加科学和合理。
附图说明
图1:本发明的针对自动NUMA平衡特性中扫描大小的操作系统优化方法的实现逻辑图。
图2:本发明的在可以安装内存带宽性能测试工具的环境下近似实际内存带宽值的获取方法。
图3:本发明的在不可以安装内存带宽性能测试工具的环境下近似实际内存带宽值的获取方法。
具体实施方式
为了对本发明的技术方案及有益效果有更进一步的了解,下面结合附图详细说明本发明的技术方案及其产生的有益效果。
为了解决已有技术存在的不足,本发明提供的针对自动NUMA平衡特性设置扫描大小的方法,能够根据当前服务器的内存速率、服务器支持的内存通道数等硬件特性获取内存带宽数据,依据内存带宽按照一定的算法正确设置numa_balancing_scan_size_mb的值,从而合理设置NUMA平衡的扫描速率,提升操作系统在NUMA架构下的性能。
图1为本发明提供的针对自动NUMA平衡特性中扫描大小的操作系统优化方法的实现逻辑图,如图1所示,具体实现流程如下:
1、服务器内存带宽的计算按照服务器环境可以分为两类:可以安装内存带宽性能测试工具;不可以安装内存带宽性能测试工具。
2、场景1:可以安装内存带宽性能测试工具的环境。本发明以开源内存带宽性能测试工具STREAM(https://www.cs.virginia.edu/stream/ref.html)为例,其处理流程如图2所示。STREAM通过COPY/SCALE/SUM/TRIAD4种操作来获取内存带宽,按照其软件手册依次执行数组大小配置、编译、测试并获取测试结果。本发明选择STREAM多核测试中四种操作测试结果中的最小值作为服务器的近似实际内存带宽值。
STREAM测试工具中四种操作的含义如下:
1、COPY:执行a = b赋值操作。从b的内存地址读取数值,其结果写入到a的内存地址。
2、SCALE:执行a = qb乘法操作。从b的内存地址读取数值,与常数q相乘,其结果写入到a的内存地址。
3、SUM:执行a = b + c加法操作。从b和c的内存地址读取数值,将二者进行加法操作,其结果写入到a的内存地址。
4、TRIAD:执行a = b + qc乘法和加法混合操作。从b和c的内存地址分别读取数值,c先与常数q相乘后再与b相加,其结果写入到a的内存地址。
3、场景2:不可以安装内存带宽性能测试工具的环境。操作系统提供dmidecode工具来解码硬件信息,本发明使用该工具提供一种获取内存带宽的方式,其处理流程如图3所示。首先,使用dmidecode -t memory | grep -E "Configured.Speed"获取内存条的“内存数据传输频率”;其次, 使用dmidecode -t memory | grep "Data Width"获取内存条的“数据位宽”;最后,使用 dmidecode --type memory | grep "Memory Device" -A 9获取内存硬件信息,过滤并去除未安装的内存设备(硬件信息识别为Unknown), 随后在“Locator”或“Bank Locator”字段中寻找“CHANNEL”关键字,channel既可能为是从0开始递增的阿拉伯数字,也可能是从A开始递增的英文字母,统一将其转换为“内存通道个数”。获取以上信息后,根据本发明提出的算法1获取当前服务器的“近似实际内存带宽”:
算法1: 单通道理论内存带宽 = 内存数据传输频率 × 数据位宽 ÷ 8,
理论总内存带宽 = 单通道理论内存带宽 × 内存通道个数,
近似实际内存带宽 = 理论总内存带宽 × 80%
4、CPU扫描应用程序的地址空间时,实际上执行的是循环+内存读写操作。由于CPU的执行速度远高于内存的访问速度,因此内存带宽是限制性能的关键,为此,本发明引入可调整的内存带宽控制因子k,其设计思想是:将扫描速率(扫描大小/最小扫描周期)控制在总内存带宽的一定百分比(由k控制)范围内。本发明的推荐k值为0.03。在获取服务器的近似实际内存带宽后,本发明按照如下算法计算自动NUMA平衡中扫描大小的最优值:
算法2: 扫描大小(numa_balancing_scan_size_mb)
= 近似实际内存带宽 × k/ 最小扫描周期(numa_balancing_scan_period_min_ms),k=0.03。
5、使用国产操作系统提供的sysctl工具设置numa_balancing_scan_size_mb(扫描大小)的值, 并开启自动NUMA平衡特性。
本发明的有益效果如下:
1、首次提出了内存带宽性能与自动NUMA平衡中页面扫描速率之间的内在关联,使用内存带宽控制因子k来指导页面扫描速率,该指标更具有物理和现实意义。
2、基于两者的内在关联,自动NUMA平衡特性中的扫描大小参数不再依据过时的历史经验,而是根据服务器内存带宽性能的近似实际值,并按照本发明提出的算法进行设置,更加科学和合理。
3、能够显著提升自动NUMA平衡特性的性能。按照本发明提出的方法,使用NUMA性能评估工具autonuma-benchmark(https://github.com/pholasek/autonuma-benchmark)对安装国产操作系统的128CPU/512G内存的arm64服务器进行性能测试, numa01测试项的运行时间缩短了22.6%,表明其性能提升了22.6%。
4、针对不同场景,提供了针对操作系统内存带宽性能的评估方法。
虽然本发明已利用上述较佳实施例进行说明,然其并非用以限定本发明的保护范围,任何本领域技术人员在不脱离本发明的精神和范围之内,相对上述实施例进行各种变动与修改仍属本发明所保护的范围,因此本发明的保护范围以权利要求书所界定的为准。
Claims (1)
1.针对自动NUMA平衡特性中扫描大小的操作系统优化方法,其特征在于,包括如下步骤:
步骤S1:获取操作系统的近似实际内存带宽值;
步骤S2:通过下述公式确定扫描大小:
扫描大小= 近似实际内存带宽 × k / 最小扫描周期;
其中,k为可调整的内存带宽控制因子,基于实际需要控制在总内存带宽的一定百分比范围内;
步骤S3:使用操作系统提供的sysctl工具设置扫描大小的值,并开启自动NUMA平衡特性;
如果服务器不可以安装内存带宽性能测试工具,则通过如下步骤获取操作系统的近似实际内存带宽值:
步骤S11:获取内存条的内存数据传输频率;
步骤S12:获取内存条的数据位宽;
步骤S13:获取当前服务器实际使用的内存通道个数;
步骤S14:通过如下公式确定近似实际内存带宽值:
单通道理论内存带宽 = 内存数据传输频率 × 数据位宽 ÷ 8;
理论总内存带宽 = 单通道理论内存带宽 × 内存通道个数;
近似实际内存带宽 = 理论总内存带宽 × 80%;
如果服务器可以安装内存带宽性能测试工具,则通过如下步骤获取操作系统的近似实际内存带宽值:设置静态数组的大小,编译测试程序,运行测试工具,通过COPY、SCALE、SUM及TRIAD四种操作获取操作测试结果,选择多核测试中四种操作测试结果中最小值作为近似实际内存带宽值。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310980082.XA CN116737481B (zh) | 2023-08-07 | 2023-08-07 | 针对自动numa平衡特性中扫描大小的操作系统优化方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310980082.XA CN116737481B (zh) | 2023-08-07 | 2023-08-07 | 针对自动numa平衡特性中扫描大小的操作系统优化方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN116737481A CN116737481A (zh) | 2023-09-12 |
CN116737481B true CN116737481B (zh) | 2023-11-24 |
Family
ID=87906248
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202310980082.XA Active CN116737481B (zh) | 2023-08-07 | 2023-08-07 | 针对自动numa平衡特性中扫描大小的操作系统优化方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116737481B (zh) |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102576369A (zh) * | 2009-08-24 | 2012-07-11 | 阿玛得斯两合公司 | 对不可预测工作负荷展示可预测应答时间的连续全扫描数据存储表和分布式数据仓库 |
CN105117310A (zh) * | 2015-07-30 | 2015-12-02 | 浪潮电子信息产业股份有限公司 | 一种基于linux系统的内存读写带宽优化测试方法 |
CN114265677A (zh) * | 2021-12-15 | 2022-04-01 | 西安统信软件技术有限公司 | 一种用于负载均衡的调度方法、装置与计算设备 |
CN115421927A (zh) * | 2022-10-31 | 2022-12-02 | 统信软件技术有限公司 | 一种负载均衡方法、计算设备及存储介质 |
CN116010222A (zh) * | 2021-10-21 | 2023-04-25 | 中国移动通信集团浙江有限公司 | 内存带宽测试方法、装置、设备及计算机可读存储介质 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11586630B2 (en) * | 2020-02-27 | 2023-02-21 | Sap Se | Near-memory acceleration for database operations |
-
2023
- 2023-08-07 CN CN202310980082.XA patent/CN116737481B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102576369A (zh) * | 2009-08-24 | 2012-07-11 | 阿玛得斯两合公司 | 对不可预测工作负荷展示可预测应答时间的连续全扫描数据存储表和分布式数据仓库 |
CN105117310A (zh) * | 2015-07-30 | 2015-12-02 | 浪潮电子信息产业股份有限公司 | 一种基于linux系统的内存读写带宽优化测试方法 |
CN116010222A (zh) * | 2021-10-21 | 2023-04-25 | 中国移动通信集团浙江有限公司 | 内存带宽测试方法、装置、设备及计算机可读存储介质 |
CN114265677A (zh) * | 2021-12-15 | 2022-04-01 | 西安统信软件技术有限公司 | 一种用于负载均衡的调度方法、装置与计算设备 |
CN115421927A (zh) * | 2022-10-31 | 2022-12-02 | 统信软件技术有限公司 | 一种负载均衡方法、计算设备及存储介质 |
Non-Patent Citations (1)
Title |
---|
Scalable Task Parallelim for NUMA:A uniform abstraction for coordinated scheduling and memory management;Andi Drebes等;《ACM》;论文正文 * |
Also Published As
Publication number | Publication date |
---|---|
CN116737481A (zh) | 2023-09-12 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10452538B2 (en) | Determining task scores reflective of memory access statistics in NUMA systems | |
US6754788B2 (en) | Apparatus, method and computer program product for privatizing operating system data | |
US5860116A (en) | Memory page location control for multiple memory-multiple processor system | |
Shatdal et al. | Using shared virtual memory for parallel join processing | |
CN111124270B (zh) | 缓存管理的方法、设备和计算机程序产品 | |
Tang et al. | A data skew oriented reduce placement algorithm based on sampling | |
CN112905111A (zh) | 数据缓存的方法和数据缓存的装置 | |
CN114416310A (zh) | 一种多处理器负载均衡方法、计算设备及存储介质 | |
Holliday | Reference history, page size, and migration daemons in local/remote architectures | |
CN116737481B (zh) | 针对自动numa平衡特性中扫描大小的操作系统优化方法 | |
CN112947851A (zh) | Numa系统和系统中的页面迁移方法 | |
Niethammer et al. | An MPI interface for application and hardware aware Cartesian topology optimization | |
US20080005726A1 (en) | Methods and systems for modifying software applications to implement memory allocation | |
Zhang et al. | Design and implementation of a real-time interactive analytics system for large spatio-temporal data | |
Farreras et al. | Scalable RDMA performance in PGAS languages | |
Simon et al. | High-Performance Match-Action Table Updates from within Programmable Software Data Planes | |
CN112527264B (zh) | 基于异构平台的常量数据访问优化方法 | |
US10747515B2 (en) | Fields hotness based object splitting | |
Pose | Capability based, tightly coupled multiprocessor hardware to support a persistent global virtual memory | |
Bordawekar et al. | Communication strategies for out-of-core programs on distributed memory machines | |
CN112860530B (zh) | 一种利用非统一存储器访问架构特点提升并行化NumPy计算性能的方法 | |
US20050251795A1 (en) | Method, system, and program for optimizing code | |
CN114817311B (zh) | 应用于GaussDB数据库存储过程的并行计算方法 | |
CN114579208B (zh) | 一种Java卡的自适应调整执行速度提升方法 | |
Falahati et al. | Cross-Core Data Sharing for Energy-Efficient GPUs |
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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |