IP Library › Granted Patent US 11,372,594
Granted Patent B2
US 11,372,594 · App. 17/209,914 · Granted Jun 28, 2022

Method and apparatus for scheduling memory access request, device and storage medium

Inventors: Yu Hou (Beijing, CN); Shiyong Li (Beijing, CN); Junfang Zhao (Beijing, CN); Yueji Liu (Beijing, CN)
Assignee: BEIJING BAIDU NETCOM SCIENCE AND TECHNOLOGY CO., LTD.
G06F3/0659G06F3/0604G06F3/0647G06F3/0653G06F3/0676G06F3/0679
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 11,372,594
App. No.
17/209,914
Granted
Jun 28, 2022
Kind
B2
Abstract

The present disclosure provides a method and apparatus for scheduling a memory access request, an electronic device and a storage medium. The method may include: acquiring monitoring data of at least one service module; determining a target service module from the at least one service module based on the monitoring data; determining a target NUMA node matching the target service module from a preset NUMA node set, based on the monitoring data; and sending a memory access request of the target service module to the target NUMA node.

Claims (78)

1. A method for scheduling a memory access request, the method comprising:

acquiring monitoring data of at least one service module;

determining a target service module from the at least one service module based on the monitoring data;

determining a target Non-Uniform Memory Architecture (NUMA) node matching the target service module from a preset NUMA node set, based on the monitoring data; and

sending a memory access request of the target service module to the target NUMA node;

wherein the determining a target NUMA node matching the target service module from a preset NUMA node set, based on the monitoring data, comprises:

determining an amount of memory occupied by the target service module in respective NUMA nodes in the NUMA node set; and

determining the target NUMA node based on a memory access bandwidth and/or the amount of memory occupied by the respective NUMA nodes.

2. The method according to claim 1 , wherein the determining a target service module from the at least one service module based on the monitoring data, comprises:

determining, based on the monitoring data, at least one of: a number of memory access, the memory access bandwidth, time waiting to access memory, time waiting to access CPU, time waiting to access cache, or data volume of different memory data types;

determining a memory access delay sensitivity value of the at least one service module based on the determined information; and

determining the target service module from the at least one service module, based on the memory access delay sensitivity value.

3. The method according to claim 1 , wherein the method further comprises:

acquiring hardware resource information of the target NUMA node;

determining a resource utilization rate of the target NUMA node based on the monitoring data and the hardware resource information;

determining a spare NUMA node of the target NUMA node from the NUMA node set, in response to determining that the resource utilization rate is greater than a preset threshold; and

forwarding part of the memory access request sent to the target NUMA node to the spare NUMA node.

4. The method according to claim 3 , wherein the determining a spare NUMA node of the target NUMA node from the NUMA node set, comprises:

determining resource utilization rates of NUMA nodes in the NUMA node set; and

determining the spare NUMA node of the target NUMA node from the NUMA node set, based on the resource utilization rates of the NUMA nodes.

5. The method according to claim 1 , wherein the method further comprises:

determining operating status information of the target service module based on the monitoring data;

determining whether the target service module meets a preset condition based on the operating status information;

determining a remote memory corresponding to the target service module, in response to that the target service module does not meet the preset condition; and

migrating data in the remote memory to a local memory of the target service module.

6. An electronic device for scheduling a memory access request, comprising:

at least one processor; and

a memory communicatively connected to the at least one processor;

wherein the memory stores instructions executable by the at least one processor, and the instructions, when executed by the at least one processor, cause the at least one processor to perform operations, comprising:

acquiring monitoring data of at least one service module;

determining a target service module from the at least one service module based on the monitoring data;

determining a target Non-Uniform Memory Architecture (NUMA) node matching the target service module from a preset NUMA node set, based on the monitoring data; and

sending a memory access request of the target service module to the target NUMA node;

wherein the determining a target NUMA node matching the target service module from a preset NUMA node set, based on the monitoring data, comprises:

determining an amount of memory occupied by the target service module in respective NUMA nodes in the NUMA node set; and

determining the target NUMA node based on a memory access bandwidth and/or the amount of memory occupied by the respective NUMA nodes.

7. The electronic device according to claim 6 , wherein the determining a target service module from the at least one service module based on the monitoring data, comprises:

determining, based on the monitoring data, at least one of: a number of memory access, the memory access bandwidth, time waiting to access memory, time waiting to access CPU, time waiting to access cache, or data volume of different memory data types;

determining a memory access delay sensitivity value of the at least one service module based on the determined information; and

determining the target service module from the at least one service module, based on the memory access delay sensitivity value.

8. The electronic device according to claim 6 , wherein the operations further comprise:

acquiring hardware resource information of the target NUMA node;

determining a resource utilization rate of the target NUMA node based on the monitoring data and the hardware resource information;

determining a spare NUMA node of the target NUMA node from the NUMA node set, in response to determining that the resource utilization rate is greater than a preset threshold; and

forwarding part of the memory access request sent to the target NUMA node to the spare NUMA node.

9. The electronic device according to claim 8 , wherein the determining a spare NUMA node of the target NUMA node from the NUMA node set, comprises:

determining resource utilization rates of NUMA nodes in the NUMA node set; and

determining the spare NUMA node of the target NUMA node from the NUMA node set, based on the resource utilization rates of the NUMA nodes.

10. The electronic device according to claim 6 , wherein the operations further comprise:

determining operating status information of the target service module based on the monitoring data;

determining whether the target service module meets a preset condition based on the operating status information;

determining a remote memory corresponding to the target service module, in response to that the target service module does not meet the preset condition; and

migrating data in the remote memory to a local memory of the target service module.

11. A non-transitory computer readable storage medium, storing computer instructions, wherein the computer instructions are used to cause the computer to perform operations, comprising:

acquiring monitoring data of at least one service module;

determining a target service module from the at least one service module based on the monitoring data;

determining a target Non-Uniform Memory Architecture (NUMA) node matching the target service module from a preset NUMA node set, based on the monitoring data; and

sending a memory access request of the target service module to the target NUMA node;

wherein the determining a target NUMA node matching the target service module from a preset NUMA node set, based on the monitoring data, comprises:

determining an amount of memory occupied by the target service module in respective NUMA nodes in the NUMA node set; and

determining the target NUMA node based on a memory access bandwidth and/or the amount of memory occupied by the respective NUMA nodes.

12. The non-transitory computer readable storage medium according to claim 11 , wherein the determining a target service module from the at least one service module based on the monitoring data, comprises:

determining, based on the monitoring data, at least one of: a number of memory access, the memory access bandwidth, time waiting to access memory, time waiting to access CPU, time waiting to access cache, or data volume of different memory data types;

determining a memory access delay sensitivity value of the at least one service module based on the determined information; and

determining the target service module from the at least one service module, based on the memory access delay sensitivity value.

13. The non-transitory computer readable storage medium according to claim 11 , wherein the operations further comprise:

acquiring hardware resource information of the target NUMA node;

determining a resource utilization rate of the target NUMA node based on the monitoring data and the hardware resource information;

determining a spare NUMA node of the target NUMA node from the NUMA node set, in response to determining that the resource utilization rate is greater than a preset threshold; and

forwarding part of the memory access request sent to the target NUMA node to the spare NUMA node.

14. The non-transitory computer readable storage medium according to claim 13 , wherein the determining a spare NUMA node of the target NUMA node from the NUMA node set, comprises:

determining resource utilization rates of NUMA nodes in the NUMA node set; and

determining the spare NUMA node of the target NUMA node from the NUMA node set, based on the resource utilization rates of the NUMA nodes.

15. The non-transitory computer readable storage medium according to claim 11 , wherein the operations further comprise:

determining operating status information of the target service module based on the monitoring data;

determining whether the target service module meets a preset condition based on the operating status information;

determining a remote memory corresponding to the target service module, in response to that the target service module does not meet the preset condition; and

migrating data in the remote memory to a local memory of the target service module.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Mar 23, 2021
From: HOU, YU; LI, SHIYONG; ZHAO, JUNFANG; LIU, YUEJI
To: BEIJING BAIDU NETCOM SCIENCE AND TECHNOLOGY CO., LTD.
Reel/Frame 055690/0897 →
Priority Claims (1)
CN 202010856106.7 · Aug 24, 2020 · national
Continuity (1)
Related Publication 20210208819A1 · Jul 8, 2021