Memory management and control method and device, and storage medium

By creating requests for resource instances in high-performance computing applications, determining instance specifications and memory bandwidth supplement specifications, finding and controlling the target physical host for memory bandwidth isolation, the problem of memory access performance bottlenecks in the existing technology is solved and higher memory access efficiency is achieved.

WO2025066805A1PCT designated stage expired Publication Date: 2025-04-03HANGZHOU ALICLOUD FEITIAN INFORMATION TECH CO LTD
View PDF 5 Cites 0 Cited by

Patent Information

Application Number
PCT/CN2024/116419
Authority / Receiving Office
WO · WO
Patent Type
Applications
Current Assignee / Owner
Priority Date
2023-09-28
Filing Date
2024-09-02
Publication Date
2025-04-03

AI Technical Summary

Technical Problem

When the prior art allocates more memory capacity to high-performance computing applications to improve memory access performance, there is a bottleneck, and it is impossible to continue to improve the memory access performance of the application after the memory capacity reaches a certain amount.

Method used

When receiving a resource instance creation request of a specified type, determine the instance specifications, obtain pre-calibrated memory bandwidth supplement specifications, find the target physical host that meets the instance specifications and supplement specifications, and control the target physical host to create resource instances and perform memory bandwidth isolation to improve memory access performance.

Benefits of technology

It has achieved priority to isolate sufficient memory bandwidth for resource instances, make full use of memory bandwidth, break through the bottleneck of memory access performance, and improve memory access performance for memory bandwidth-sensitive applications.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN2024116419_03042025_PF_FP_ABST
    Figure CN2024116419_03042025_PF_FP_ABST
Patent Text Reader

Abstract

Embodiments of the present disclosure provide a memory management and control method and device, and a storage medium. Supplementary specifications for ensuring a memory bandwidth can be respectively pre-calibrated for various instance specifications. On this basis, an instance specification corresponding to a resource instance requested to be created can be determined on the basis of a resource instance creation request of a specified type initiated by a user; a supplementary specification pre-calibrated for the instance specification is acquired; a target physical host that can satisfy the instance specification and the supplementary specification is searched for; the target physical host is controlled to create the resource instance on the basis of the instance specification and the supplementary specification, and to perform memory bandwidth isolation for the resource instance. In this way, it can be supported that a sufficient memory bandwidth is first isolated for some resource instances, and the isolated memory bandwidth is fully utilized, so that these resource instances can obtain higher memory access efficiency, and the bottleneck of memory access performance is broken through. In particular, the memory access performance of various applications sensitive to the memory bandwidth can be improved.
Need to check novelty before this filing date? Find Prior Art

Description

Memory management method, device and storage medium

[0001] This disclosure claims priority to the Chinese patent application filed with the China Patent Office on September 28, 2023, with application number 202311284195.2 and application name “A memory management method, device and storage medium”, the entire contents of which are incorporated by reference into this disclosure. Technical Field

[0002] The present disclosure relates to the field of computer technology, and in particular to a memory management method, device, and storage medium. Background Art

[0003] Different high-performance computing (HPC) applications have different requirements for the host computers that perform the calculations. Some HPC applications, such as ls-dyna, require a high host operating frequency; some have high memory performance requirements; and some have high network latency requirements.

[0004] Currently, for HPC applications with high memory performance requirements, more memory capacity is typically allocated to them in the hope of improving their memory access performance. However, this approach of stacking memory capacity for HPC applications has a bottleneck: for some HPC applications, once the stacked memory capacity reaches a certain level, further stacking will no longer improve the memory access performance of the HPC application.

[0005] Summary of the Invention

[0006] Various aspects of the present disclosure provide a memory management method, device, and storage medium to improve the memory access performance of an application.

[0007] The present disclosure provides a memory management method applicable to a management node, the method comprising:

[0008] Upon receiving a request to create a resource instance of a specified type, determining the instance specification corresponding to the resource instance requested to be created;

[0009] Obtaining a supplementary specification pre-calibrated for the instance specification for guaranteeing memory bandwidth;

[0010] Find a target physical host that meets the instance specifications and the supplementary specifications;

[0011] The target physical host is controlled to create a resource instance according to the instance specification and the supplementary specification and perform memory bandwidth isolation for the resource instance.

[0012] The present disclosure also provides a memory management method applicable to a physical host, the method comprising:

[0013] Receive a resource instance creation instruction sent by the control node, including the instance specifications corresponding to the resource instance to be created and the supplementary specifications for ensuring memory bandwidth;

[0014] Invoke the required processor cores and isolate the required memory bandwidth according to the supplementary specifications;

[0015] Invoke other required physical resources except processor cores according to the instance specifications;

[0016] A resource instance is created based on the called processor core and the other physical resources.

[0017] The embodiment of the present disclosure further provides a physical device, including a memory, a processor, and a communication component;

[0018] The memory is used to store one or more computer instructions;

[0019] The processor is coupled to the memory and the communication component, and is configured to execute the one or more computer instructions to perform the aforementioned memory management method.

[0020] An embodiment of the present disclosure further provides a computer-readable storage medium storing computer instructions, which, when executed by one or more processors, causes the one or more processors to execute the aforementioned memory management method.

[0021] In the embodiment disclosed herein, in this embodiment, supplementary specifications for guaranteeing memory bandwidth can be pre-calibrated for various instance specifications. Based on this, users can be supported to initiate resource instance creation requests of specified types to trigger the memory management and control scheme provided by the embodiment. For this type of special resource instance creation request, the instance specification corresponding to the resource instance requested to be created can be determined; the supplementary specification pre-calibrated for the instance specification can be obtained; and the target physical host that can meet the instance specification and the supplementary specification can be found; and the target physical host can be controlled to create the resource instance according to the instance specification and the supplementary specification, and memory bandwidth can be isolated for the resource instance. In this way, it can support the priority isolation of sufficient memory bandwidth for some resource instances, and make full use of the isolated memory bandwidth, so that these resource instances can obtain higher memory access efficiency and break through the bottleneck of memory access performance. In particular, it can improve the memory access performance of various applications that are sensitive to memory bandwidth. BRIEF DESCRIPTION OF THE DRAWINGS

[0022] The drawings described herein are used to provide a further understanding of the present disclosure and constitute a part of the present disclosure. The exemplary embodiments of the present disclosure and their descriptions are used to explain the present disclosure and do not constitute an improper limitation of the present disclosure. In the drawings:

[0023] FIG1 is a logical diagram of a memory management and control method provided by an exemplary embodiment of the present disclosure;

[0024] FIG2 is a flow chart of a memory management and control method provided by an exemplary embodiment of the present disclosure;

[0025] FIG3 is a logic diagram of an optional implementation of a memory management and control method provided by an exemplary embodiment of the present disclosure;

[0026] FIG4 is a flowchart illustrating an implementation method for calibrating processor core usage rules and required memory bandwidth for instance specifications, provided by an exemplary embodiment of the present disclosure;

[0027] FIG5 is a flow chart of another memory management method provided by an exemplary embodiment of the present disclosure;

[0028] FIG6 is a flowchart of a memory management method provided by another exemplary embodiment of the present disclosure;

[0029] FIG7 is a schematic structural diagram of a physical device provided by yet another exemplary embodiment of the present disclosure. DETAILED DESCRIPTION

[0030] To make the objectives, technical solutions, and advantages of the present disclosure more clear, the technical solutions of the present disclosure will be clearly and completely described below in conjunction with the specific embodiments of the present disclosure and the corresponding drawings. Obviously, the described embodiments are only part of the embodiments of the present disclosure, not all of the embodiments. Based on the embodiments of the present disclosure, all other embodiments obtained by ordinary technicians in this field without making creative efforts are within the scope of protection of the present disclosure.

[0031] Before describing in detail the technical solutions provided by the various embodiments of the present disclosure, several technical concepts involved in the present disclosure are briefly explained as follows.

[0032] High-performance computing (HPC) refers to computing technologies that provide significantly greater computing power than traditional computers and servers. HPC emphasizes the use of distributed resources to combine storage, applications, computing power, and network resources to accomplish tasks that would be impossible otherwise. HPC can typically process terabytes, petabytes, or even zettabytes of data, and can do so in near real time, delivering results in minutes or hours rather than days or weeks.

[0033] HPC applications can be understood as applications that run using HPC technology. HPC applications are typically heavy-duty, placing significant pressure on computing resources, and many require multi-node parallel computing.

[0034] A resource instance refers to a computing unit built for an application. An application can have multiple resource instances, each of which includes basic computing components such as processor cores, memory, operating system, network, and disk. Common resource instances include virtual machines and containers.

[0035] Instance specifications can be understood as the specifications of a resource instance, including the specifications of various computing components allocated to the resource instance, such as processor cores, memory, and network. For example, the specifications of a virtual machine may be 2 CPU cores, 2GB of memory, and 500M / S of network bandwidth.

[0036] Memory bandwidth, also known as memory transfer rate, is used to measure the ability of a processor core or its combination to move data from memory during the reading and writing process. It is often also called the transfer rate or data recovery rate.

[0037] The technical solutions provided by various embodiments of the present disclosure are described in detail below with reference to the accompanying drawings.

[0038] Figure 1 is a logical diagram of a memory management method provided by an exemplary embodiment of the present disclosure. Referring to Figure 1 , the memory management method of this embodiment can be implemented by the collaboration of a management node and a physical host. The management node can be an existing node used to manage physical hosts and resource instances. This embodiment can modify this existing node to enable it to execute the memory management method provided by this embodiment.

[0039] The physical host in this embodiment can be a physical machine or a bare metal server. A bare metal server is a physical server without an operating system or virtualization software pre-installed. Similar to dedicated physical servers in the cloud, a bare metal server combines the flexibility and elasticity of a virtual machine with the performance advantages of a physical machine, enabling ultra-strong and stable computing power, helping to address users' strong demand for high-performance computing. Bare metal servers possess the characteristics and advantages of physical machines, including high-performance computing capabilities and secure physical isolation. However, bare metal servers are not traditional physical machines. Instead, they are a new type of computing server product built based on virtualization technology, retaining the elasticity of ordinary cloud servers and the performance and characteristics of physical machines. The differences between bare metal servers and physical machines will not be further explained; please refer to existing public information for further information. It should be understood that in this embodiment, both bare metal servers and physical machines can support the creation of resource instances, but the instance types of resource instances created on bare metal servers and physical machines may differ, depending on the instantiation technology used on the bare metal servers and physical machines. Illustratively, the resource instances in this embodiment may include virtual machines or containers, etc. Of course, the instance types supported in this embodiment are not limited thereto and are not exhaustively listed here.

[0040] As mentioned in the background, many current applications, especially HPC applications, have high requirements for memory access performance. In existing technologies, physical resources are typically allocated to resource instances by a virtual machine manager (VMM). During this allocation process, the primary focus is on the resource instance's computing power delivery quality, i.e., assigning processor cores that meet the computing power requirements. Memory allocation, however, is only concerned with delivering the required memory capacity for the resource instance, but does not address memory access capabilities.

[0041] In response to user requests for increased memory, we currently allocate more memory to the resource instance specified, based on the memory capacity originally allocated to the resource instance, in the hope of improving the resource instance's memory access performance. However, some HPC applications, such as the fluid dynamics simulation application Fluent and the continuum mechanics simulation application Star-CCM, do not have high memory requirements. Allocating more memory to these applications will not improve their memory access performance.

[0042] During the research process, the inventors found that such applications that cannot improve memory access performance by stacking memory capacity usually have relatively high requirements for memory bandwidth, that is, such applications need to access memory data as efficiently as possible per unit time.

[0043] To this end, this embodiment proposes an inventive concept for optimizing memory bandwidth for resource instances in such applications, so as to break through the memory access performance bottleneck of such applications.

[0044] The following describes in detail the memory management method provided in this embodiment from the perspectives of the management node and the physical host.

[0045] FIG2 is a flow chart of a memory control method provided by an exemplary embodiment of the present disclosure. The memory control method shown in FIG2 can be applied to a control node. The method can be executed by a control device. The control device can be implemented as software, hardware, or a combination of software and hardware. The control device can be integrated into the aforementioned control node. Referring to FIG2, the method may include:

[0046] Step 200: upon receiving a request to create a resource instance of a specified type, determining the instance specification corresponding to the resource instance requested to be created;

[0047] Step 201: Obtain a supplementary specification pre-calibrated for the instance specification for guaranteeing memory bandwidth;

[0048] Step 202: Find a target physical host that meets the instance specifications and the supplementary specifications.

[0049] Step 203: Control the target physical host to create a resource instance according to the instance specification and the supplementary specification and perform memory bandwidth isolation for the resource instance.

[0050] Referring to Figure 1, this embodiment supports users initiating resource instance creation requests of specified types. A resource instance creation request of a specified type indicates that the user desires to enhance the memory bandwidth of the resource instance being created. In this embodiment, by specifying a request type, users can initiate resource instance creation requests of a specified type when they desire enhanced memory bandwidth. In actual applications, the management and control node can provide users with a console where they can select a request type and perform other configuration operations to generate resource instance creation requests. It should be understood that users typically initiate requests on an application-by-application basis. For applications that desire enhanced memory bandwidth, users can configure multiple resource instance creation requests for each application in the console to request the creation of multiple resource instances for that application. In each of these resource instance creation requests, users can select a request type for each request. For ease of description, this embodiment will explain the memory management solution from the perspective of a single resource instance creation request. Users can select different request types for different resource instance creation requests within the same application. However, this embodiment will primarily describe the handling of resource instance creation requests of a specified type.

[0051] Referring to Figure 2, in step 200, the management and control node may receive a resource instance creation request of a specified type initiated by a user, and parse out the instance specifications corresponding to the resource instance requested to be created. Among them, the instance specifications may be configured by the user in the resource instance creation request by performing configuration operations in the user interface of the control platform mentioned above. The instance specifications here may include the specifications of various computing components such as processor cores, memory, network, etc. required for the resource instance. It should be understood that the instance specifications generally specify the amount of resources occupied by each type, such as how many processor cores are required, how much memory capacity is occupied, etc.

[0052] Furthermore, in this embodiment, the field can also be subdivided, and the user can configure the field identifier to the resource instance creation request by performing a configuration operation in the user interface of the control platform mentioned above. In this way, in step 200, the target field corresponding to the target application targeted by the resource instance creation request can be determined; among the various instance specifications contained under the target field, the instance specification corresponding to the resource instance requested to be created by the resource instance creation request is searched. By carrying the field identifier, a more accurate query basis can be provided for the subsequent step 201. Among them, the field in this embodiment refers to the application field, for example, the mechanical simulation field, the financial field or the e-commerce field. The memory bandwidth requirements of the same instance specification in different fields may be different. For this reason, this embodiment proposes to subdivide the instance specifications from the field level.

[0053] In this embodiment, supplementary specifications for guaranteeing memory bandwidth are pre-calibrated for various instance specifications. Compared with traditional instance specifications, the supplementary specifications in this embodiment can supplement the restrictions on the resources required to be occupied by resource instances from the perspective of resource occupation methods. In this embodiment, the supplementary specifications may include processor core usage rules and the required memory bandwidth. Among them, the memory bandwidth calibrated for the instance specification can meet the requirements of the corresponding resource instance for memory bandwidth sensitivity. Therefore, the memory bandwidth calibrated for the instance specification will usually exceed the memory bandwidth that can be provided to the corresponding resource instance under the traditional resource instance creation method. The calibrated processor core usage rules can ensure in terms of physical performance that the processor core used by the resource instance is capable of occupying the calibrated memory bandwidth.

[0054] The processor core usage rules in this embodiment are used to describe which processor cores should be occupied to create a resource instance. The processor core usage rules may include but are not limited to the number of processor cores used, the structural position of each processor core used in the memory organization structure, or the memory access method adopted by each processor core used. Among them, the memory organization structure may include at least one layer of memory group, and the memory access method includes intra-group access or cross-group access. As mentioned above, the instance specification usually only limits the number of processor cores required, but does not limit which processor cores should be occupied to meet this number. The processor core usage rules in this embodiment additionally limit which processor cores are used to meet the number of processor cores specified in the instance specification.

[0055] FIG3 is a logical diagram of an optional implementation of a memory management method provided by an exemplary embodiment of the present disclosure. Referring to FIG3 , optionally, the memory organization architecture in the physical host in this embodiment can be CPU socket (CPU slot) - core chiplet CCD (Core Chiplet Die) - processor module unit CCX (CPU Comp lex) - processor core. Among them, CPU socket, CCD and CCX correspond to memory groups respectively, and there is a hierarchical relationship between the three. Generally, a physical host may contain multiple CPU sockets, a CPU socket may contain multiple CCDs, a CDD may contain multiple CCXs, and a CCX may contain multiple processor cores. In addition to processor resources, a memory group must also contain memory resources. Moreover, in addition to defining the above-mentioned memory organization structure from a hardware-oriented perspective, the memory organization architecture can also be further optimized through NUMA (Non Uniform Memory Access) technology. Among them, NUMA nodes can also serve as a layer of memory groups. Based on the memory organization architecture, processor cores achieve higher access efficiency when accessing memory within the same group, meaning higher access efficiency is achieved with intra-group access. However, processor cores achieve lower access efficiency when accessing memory in different groups, meaning lower access efficiency with cross-group access. It's worth noting that access efficiency is influenced by multiple factors, including memory bandwidth, access path length, and the read / write capabilities of the processor core.

[0056] Refer to the exemplary memory organization architecture in Figure 3. Several exemplary processor core usage rules may be:

[0057] Use 8 CCDs in the same socket, each CCD provides 8 processor cores, a total of 64 processor cores, all 64 processor cores use intra-group access mode;

[0058] Use four CCXs in the same socket, each CCX providing eight processor cores, for a total of 32 processor cores. The processor cores in two CCXs use intra-group access, while the processor cores in the other two CCXs use cross-group access (for this example, refer to virtual machine 2 in Figure 3).

[0059] Two sockets are used, each with two CCXs. Each CCX provides eight processor cores, for a total of 32 processor cores. All 32 processor cores use intra-group access (for this example, refer to virtual machine 1 in Figure 3).

[0060] It should be understood that the above-mentioned processor core usage rules are merely exemplary and this embodiment is not limited thereto.

[0061] The implementation method of pre-calibrating supplementary specifications for various instance specifications will be described in detail later and will not be explained in detail here. It should be understood that this embodiment does not limit the implementation method of this pre-calibration link, and any implementation method that can ensure the rationality of the calibration can be used in this embodiment. In addition, the specification items included in the supplementary specifications in this embodiment are not limited to processor core usage rules and the required memory bandwidth. The supplementary specifications may also include other specification items that can be used to ensure memory bandwidth. No further examples are given here.

[0062] Based on this, referring to FIG. 2 , in step 201 , a supplementary specification pre-calibrated for the instance specification determined in step 200 may be obtained.

[0063] Following the further optimization proposed in step 200 above, if the user's selected target domain is also parsed in step 200, then in step 201, the supplementary specifications calibrated for the instance specification in the target domain can be obtained. While the same instance specifications may exist in different domains, the supplementary specifications calibrated for the same instance specifications in different scenario domains may not be exactly the same. This is because resource instances of the same specifications in different domains may have different memory access requirements. Thus, by introducing domains, more suitable supplementary specifications can be found for the resource instances requested by the user.

[0064] Of course, it should be understood that the field segmentation may not be performed in this embodiment, and it will not affect the solution of the technical problems in this embodiment.

[0065] Continuing to refer to Figure 2, in step 202, a target physical host that meets the instance specifications determined in step 200 and the supplementary specifications determined in step 201 can be searched. As mentioned above, the control node in this embodiment can be used to manage resource instances and physical hosts. In this way, the control node has a perceptual perspective of the resource status on all physical hosts. In actual applications, the control node can autonomously record the resource status on each physical host. Of course, each physical host can also actively report its own resource status to the control node. Based on this, in step 202, the control node can select a target physical host that is capable of responding to the resource instance creation request in step 200 from the physical hosts it controls.

[0066] Since the resource instance creation request has a guaranteed requirement for memory bandwidth, in step 202 , the management and control node selects a physical host that can meet the required instance specifications and the required supplementary specifications as the target physical host.

[0067] Still taking the example of the supplementary specifications including the processor core usage rules and the required memory bandwidth, in an exemplary search solution:

[0068] You can search for physical hosts whose remaining resources meet the required instance specifications, whose unoccupied processor cores meet the processor core usage rules, and whose non-isolated memory bandwidth is greater than or equal to the memory bandwidth, as candidate physical hosts.

[0069] Determine the upper limit of memory bandwidth supported by the candidate physical host under the processor core usage rule;

[0070] From the candidate physical hosts, select a physical host whose supported memory bandwidth upper limit is greater than or equal to the memory bandwidth as the target physical host.

[0071] In this exemplary search scheme, the physical host is evaluated from two aspects: processor core usage rules and memory bandwidth. Among them, the unoccupied processor cores can meet the processor core usage rules, which means that the number of unoccupied processor cores and the memory groups to which they belong can both meet the processor core usage rules. For example, if the current processor core usage rule is "use two sockets, each socket has 2 CCXs, each CCX provides 8 processor cores, a total of 32 processor cores, and all 32 processor cores use intra-group access", although there are currently 32 unoccupied processor cores on physical host A, but these 32 unoccupied processor cores are all in the same socket. In this case, physical host A will not meet the current processor core usage rule.

[0072] In addition, in this exemplary search scheme, it is also evaluated whether each candidate physical host can support the currently required memory bandwidth in terms of physical performance. Here, the main purpose is to evaluate whether the candidate physical host can achieve the currently required memory bandwidth in terms of physical performance when performing memory access according to the current processor core usage rules. The reason for this evaluation link is that the physical performance of different physical hosts may be different. When performing memory access according to the same processor core usage rules, some physical hosts may not be able to support the current memory bandwidth. This is mainly because the upper limit of the memory bandwidth that can be achieved in terms of physical performance will be affected by multiple physical levels such as bus bandwidth, bus frequency, and number of channels, and different physical hosts have different capabilities at these physical levels.

[0073] Furthermore, in this exemplary search solution, a physical host memory access performance database can be pre-built, and the upper limit of memory bandwidth supported by the candidate physical host under the processor core usage rules can be queried from the pre-built physical host memory access performance database. The physical host memory access performance database can record the upper limit of memory bandwidth supported by the physical host under various processor core usage rules.

[0074] The following is an optional solution for building a physical host access performance database:

[0075] Under various specified host types, select the physical host to be tested;

[0076] Set multiple processor core usage rules on a single physical host to be tested;

[0077] On a single physical host, test cases are used to determine the upper limit of memory access performance that can be achieved when accessing memory according to various processor core usage rules. The upper limit of memory access performance includes the upper limit of memory bandwidth.

[0078] The memory access performance upper limit that can be achieved under various processor core usage rules is recorded under various physical hosts to build a physical host memory access performance database.

[0079] In this optional implementation, separate tests are performed for different host types. It should be understood that physical hosts within the same host type have similar physical performance differences, and test results can be shared. Therefore, in practice, a single physical host can be selected for testing within a single host type. However, this is not a limitation, and multiple physical hosts can also be selected for testing within a single host type.

[0080] In this optional implementation, multiple processor core usage rules can be set for a single physical host to be tested. The processor core usage rules set in this step should ensure that they cover all pre-calibrated processor core usage rules for various instance specifications. This ensures that the relevant memory bandwidth limit can be retrieved from the physical host memory access performance database during step 202 to serve as the basis for evaluating candidate physical hosts.

[0081] In this optional construction scheme, test tools such as stream, Memtest or Fio can be used to perform tests separately under a single physical host to be tested according to the various processor core usage rules that are set. The principles of these test tools are not explained in detail here. Currently, these test tools are only exemplary, and the test tools that can be used in this optional construction scheme are not limited to them. It should be understood that in this optional construction scheme, these test tools are used to measure the memory access performance limit that the physical host can achieve in terms of physical performance. The memory access performance limit can at least include the memory bandwidth limit. In addition, it can also include other measurement results such as access delay.

[0082] In this way, in this optional construction scheme, the upper limit of memory bandwidth that can be achieved by each physical host to be tested under the set multiple processor core usage rules can be measured and recorded in the physical host memory access performance database.

[0083] It is worth noting that the above optional construction scheme is exemplary. In this exemplary search scheme, other construction schemes can also be used to construct a physical host memory access performance database, for example, statistics based on empirical data, etc., and it is not limited to the above optional construction scheme.

[0084] In addition, in this embodiment, the search scheme for the target physical host is not limited to this, and other search schemes can also be used to implement step 202. For example, a physical host that does not occupy any physical resources can be directly used as a candidate physical host, and the memory access performance of each candidate physical host can be evaluated to see whether it can meet the current processor core usage rules and the required memory bandwidth, and then the target physical host is selected. No further examples are given here.

[0085] In this way, the selected target physical host will meet the required instance specifications and supplementary specifications.

[0086] On this basis, continuing to refer to FIG. 2 , in step 203 , the target physical host may be controlled to create a resource instance according to the required instance specifications and supplementary specifications and perform memory bandwidth isolation for the resource instance.

[0087] That is, the control node in this embodiment can dispatch received resource instance creation requests of a specified type to an appropriate physical host based on steps 200-202, and control the selected physical host to respond to the resource instance creation request. Because the control node fully considers the memory bandwidth enhancement requirement expressed in the resource instance creation request during steps 200-201, the selected physical host can fully meet the user's memory bandwidth enhancement requirement for the resource instance.

[0088] In step 203, the management and control node may send a resource instance creation instruction to the target physical host hit in step 202, and carry the instance specifications and supplementary specifications required for the resource instance in the resource instance creation instruction. Of course, the resource instance creation request may also carry other information, such as the life cycle of the instance, etc., which are not enumerated here.

[0089] In this way, the target physical host can respond to the resource instance creation instruction and create a resource instance that meets the user's needs. The processing logic on the physical host side will be separately described in the embodiments below. Based on the resource instance creation instruction sent to the target physical host, the control node in this embodiment can control the target physical host to isolate sufficient memory bandwidth for the resource instance to use, thereby meeting the memory bandwidth requirements of the resource instance.

[0090] In summary, in this embodiment, supplementary specifications for guaranteeing memory bandwidth can be pre-calibrated for various instance specifications. Based on this, users can be supported to initiate resource instance creation requests of specified types to trigger the memory management and control scheme provided by the embodiment. For this type of special resource instance creation request, the instance specification corresponding to the resource instance requested to be created can be determined; the supplementary specifications pre-calibrated for the instance specification can be obtained; and the target physical host that can meet the instance specification and the supplementary specification can be found; and the target physical host can be controlled to create resource instances according to the instance specification and the supplementary specification, and memory bandwidth can be isolated for the resource instance. In this way, it can support the priority isolation of sufficient memory bandwidth for some resource instances, and make full use of the isolated memory bandwidth, so that these resource instances can obtain higher memory access efficiency and break through the bottleneck of memory access performance. In particular, it can improve the memory access performance of various applications that are sensitive to memory bandwidth.

[0091] FIG4 is a flow chart of an implementation method for calibrating supplementary specifications for instance specifications according to an exemplary embodiment of the present disclosure. Referring to FIG4 , an optional calibration scheme may include the following steps:

[0092] Step 400: Set multiple candidate processor core usage rules under instance specifications;

[0093] Step 401: Create test instances according to multiple candidate processor core usage rules;

[0094] Step 402: Run each test instance separately to measure memory access performance data under each test instance, where the memory access performance data includes the occupied memory bandwidth;

[0095] Step 403: Select target test cases whose memory access performance data meets the specified selection criteria from each test instance;

[0096] Step 404: Based on the processor core usage rules and the occupied memory bandwidth corresponding to the target test case, calibrate supplementary specifications for the instance specifications.

[0097] It should be understood that the above steps 400 to 404 should be executed before step 201 in FIG. 1 to ensure that a query basis can be provided for step 201 .

[0098] Furthermore, following the preferred domains introduced in the previous embodiment, this embodiment allows for the selection of representative applications within different domains as measurement targets. Each representative application requires the creation of resource instances, and each resource instance to be created corresponds to an instance specification. This embodiment allows for calibration within various instance specifications. Since the calibration methods for each instance specification are similar, for ease of description, this embodiment describes the calibration scheme from the perspective of the instance specification corresponding to a resource instance within a representative application.

[0099] Referring to Figure 4, in step 400, a variety of candidate processor core usage rules can be set under the instance specifications. It should be understood that the various candidate processor core usage rules set in step 400 should comply with the requirements for the number of processor cores in the current instance specifications. In the case where each virtual processing core (VCPU) in the default resource instance needs to exclusively occupy a physical processor core, the number of processor cores occupied in each candidate processor core usage rule should be equal to the number of virtual processing cores to be deployed in the resource instance corresponding to the current instance specification. Under this premise, there may be differences in the structural position of each processor core configured in each candidate processor core usage rule set for the current instance specification in the memory organization structure, as well as the memory access method adopted by each processor core used.

[0100] For example, if 32 VCPUs are required in a resource instance under the current instance specifications, the core usage rules for each candidate set for the current instance specifications will require all 32 cores to be used. The location of the 32 cores in the memory organization and the memory access method used by each core can be configured as needed.

[0101] On this basis, in step 401, test instances can be created respectively according to a variety of candidate processor core usage rules. The process of creating a test instance here can generally include: initiating a test instance creation request to the physical host according to the current instance specifications to be tested and the selected processor core usage rules, so as to control the physical host to create a test instance according to the instance specifications and the processor core usage rules. Among them, the test instance is used to test the memory bandwidth that can be occupied under the corresponding processor core usage rules. The test instance here can be established according to the relevant requirements of the aforementioned representative application under the current instance specifications. Of course, the processor core used by the established test instance complies with the corresponding candidate processor core usage rules.

[0102] Continuing with step 402, each test instance created in step 401 can be run separately. It should be understood that running a test instance here refers to running the application functionality of the selected representative application deployed under the current instance specifications. For example, if the representative application is a fluent application, one or more test instances can be created for the application, and computing tasks can be issued to the application. These test instances will then execute the computing tasks. In other words, these test instances are used to test the application functionality of the representative application in real time.

[0103] In step 402, the memory access performance data of each test instance can be measured during the operation of the test instance. In this embodiment, parameters related to memory access performance can be recorded separately by each processor core used during the operation of the test instance. In actual applications, the processor core can implement the recording function here through existing components such as system energy monitoring counters. The physical host currently used for testing can summarize these parameters to calculate the memory access performance data corresponding to the test instance. Among them, the memory access performance data can at least include the occupied memory bandwidth. In addition, other data such as access delay can also be included, which are not enumerated here.

[0104] The memory bandwidth available to different processor cores on a physical host varies, influenced by factors such as the host's memory organization and the internal structure of the physical CPU. In step 402, the memory bandwidth available to the representative application is tested under various processor core usage rules.

[0105] Based on this, in step 403, target test cases whose memory access performance data meets the specified selection criteria are selected from each test instance. The specified selection criteria can be set based on actual needs, for example, to minimize access latency or maximize memory bandwidth, etc., but are not limited here. In step 403, an appropriate processor core combination is selected for the current instance specifications to ensure that a sufficiently high memory bandwidth is available for the current instance specifications.

[0106] In a typical case, if the number of VCPUs required to be deployed under the current instance specification is less than the number of processor cores in a single socket, generally, if only processor cores in the same socket are selected, then no matter how they are combined, at most they can only occupy the memory bandwidth that can be allocated to a single socket (generally, the memory bandwidth in a physical host is evenly distributed among each socket). In this embodiment, by setting the processor core usage rules more flexibly, some processor cores can be selected from multiple sockets. Since different processor cores in a single socket can occupy different proportions of memory bandwidth, if the processor cores selected in each socket can occupy a relatively large proportion of the memory bandwidth in the corresponding socket, then the memory bandwidth that can be occupied by selecting processor cores in multiple sockets will exceed the memory bandwidth that can be allocated to a single socket. Thus, for instance specifications with higher memory bandwidth requirements, in step 403 of this embodiment, a test instance that adopts the aforementioned method of selecting processor cores in multiple sockets will be selected as the target test instance.

[0107] Accordingly, in step 404, the processor core usage rules and memory bandwidth occupied corresponding to the target test case can be calibrated to the processor core usage rules and required memory bandwidth occupied corresponding to the current instance specification. Thus, in the aforementioned typical case, the processor core usage rules calibrated for the current instance specification will generally select processor cores from multiple sockets to ensure that the current instance specification utilizes sufficient memory bandwidth.

[0108] Based on this, processor core usage rules and required memory bandwidth can be calibrated for various instance sizes in different domains. Based on this calibration scheme, calibration results can be determined for various instance sizes to match the actual application needs of the domain. This ensures that relevant applications can utilize sufficient memory bandwidth for the relevant instance sizes, thereby enhancing memory bandwidth and improving memory access performance.

[0109] It should be understood that the calibration scheme provided in this embodiment is merely exemplary. Other calibration schemes can also be used to complete the calibration. For example, the required memory bandwidth for various instance specifications can be manually calibrated based on experience. Then, based on the calibrated memory bandwidth, the processor core usage rules that can achieve this memory bandwidth can be found to complete the calibration. Further implementation examples are not provided here.

[0110] FIG5 is a flow chart of another memory management method provided by an exemplary embodiment of the present disclosure. Referring to FIG5 , the method may include:

[0111] Step 500: upon receiving a request to create a resource instance of a specified type, determining the instance specification corresponding to the resource instance requested to be created;

[0112] Step 501: Obtain supplementary specifications pre-calibrated for instance specifications;

[0113] Step 502: Find a target physical host that meets the instance specifications and the supplementary specifications.

[0114] Step 503: Control the target physical host to create a resource instance according to the instance specification and the supplementary specification and perform memory bandwidth isolation for the resource instance;

[0115] Step 504: After the target physical host performs memory bandwidth isolation for the resource instance, if it is detected that there is still unisolated memory bandwidth on the target physical host, the remaining processor cores and memory resources on the target physical host are used to respond to subsequently received resource instance creation requests of specified type and / or non-specified type.

[0116] For steps 500 to 503 , reference may be made to the relevant descriptions in the aforementioned embodiment, and will not be further described here to avoid repetition. In this embodiment, based on step 504 , a further improved solution is provided.

[0117] Referring to step 504, after memory bandwidth isolation for the resource instance is completed on the target physical host, there will typically be some remaining memory bandwidth on the target physical host. In this embodiment, the control node can continue to schedule this remaining memory bandwidth. In other words, the remaining memory bandwidth on the target physical host can be allocated to other resource instances.

[0118] During their research, the inventors discovered that resource instances with memory-enhanced requirements typically require more than 50% of the memory bandwidth on a physical host. This results in a physical host being assigned to host a memory-enhanced resource instance, but since the remaining memory bandwidth is less than 50%, it is typically not assigned to host another memory-enhanced resource instance. To address this issue, in this embodiment, the management and control node can schedule non-memory-enhanced resource instances to be created on the target physical host, thereby fully utilizing the remaining physical resources on the target physical host and improving the utilization rate of the target physical host's physical resources.

[0119] Of course, if there is a memory-enhanced resource instance with a relatively small memory bandwidth requirement, the target physical host in this embodiment can still be hit to host the creation work of this type of resource instance.

[0120] Based on this, in this embodiment, the memory bandwidth occupancy requirements of memory bandwidth-enhanced resource instances can be prioritized. Under this premise, the remaining physical resources and memory bandwidth on the physical host can be fully utilized through reasonable scheduling or migration of small-specification instances or shared instances to improve the utilization rate of physical resources and memory bandwidth on the physical host.

[0121] Figure 6 is a flowchart of a memory management method provided by another exemplary embodiment of the present disclosure. The method shown in Figure 6 can be executed by a memory management device, which can be implemented as software, hardware, or a combination of software and hardware, and can be integrated into a physical host.

[0122] The host components that can function as the memory management device in this embodiment may vary across different types of physical hosts. For example, if the physical host is a standard physical machine, the virtual machine manager (VMM), such as a hypervisor, deployed within the physical machine can function as the memory management device in this embodiment. That is, the memory management method provided in this embodiment can be executed by the virtual machine manager within the physical machine. This is, of course, merely exemplary, and this embodiment is not limited thereto.

[0123] Referring to FIG6 , the memory management method provided in this embodiment may include:

[0124] Step 600: Receive a resource instance creation instruction sent by the control node, including the instance specifications corresponding to the resource instance to be created and the supplementary specifications for ensuring memory bandwidth.

[0125] Step 601: Call the required processor cores and isolate the required memory bandwidth according to the supplementary specification;

[0126] Step 602: Invoke other required physical resources except the processor core according to the instance specifications;

[0127] Step 603: Create a resource instance based on the called processor core and other physical resources.

[0128] Regarding the processing logic of the control node before sending the resource instance creation instruction to the physical host in this embodiment, please refer to the relevant description in the previous embodiment and will not be elaborated here. It should be understood that the physical host in this embodiment can be understood as the target physical host hit by the control node in the previous embodiment.

[0129] In this embodiment, after receiving a resource instance creation instruction that includes supplementary specifications, the physical host triggers execution of subsequent steps 601-604. In actual applications, if the received resource instance creation instruction includes supplementary specifications, the physical host can respond to the instruction using the conventional resource instance creation method, eliminating the need to consider special aspects related to memory bandwidth guarantees.

[0130] Referring to Figure 6, in step 601, the required processor cores are called and the required memory bandwidth is isolated according to the supplementary specifications determined in step 600. It should be understood that the selected processor cores must comply with the supplementary specifications. If the instance specifications include other requirements for processor cores, these should also be considered in step 601 to ensure that the selected processor cores meet user requirements.

[0131] In step 602, other required physical resources other than the processor core may be called according to the instance specifications. The other required physical resources here may include but are not limited to physical resources such as memory and network, which are not enumerated here.

[0132] After the physical resources are selected, a resource instance may be created in step 603 , and the memory bandwidth isolated in step 601 may be associated with the resource instance for occupancy by the resource instance.

[0133] In actual applications, the memory bandwidth in the physical host is time-shared and multiplexed. The memory bandwidth isolation in this embodiment can be understood as allocating part of the memory bandwidth in the physical host to the resource instance created in step 603. This part of the memory bandwidth is no longer allowed to be time-shared and multiplexed to ensure that the resource instance can always occupy sufficient memory bandwidth.

[0134] In an exemplary solution, the supplementary specifications may include processor core usage rules and required memory bandwidth. Based on this, the aforementioned step 601 may be specifically implemented as follows:

[0135] The required processor core can be called according to the processor core usage rules;

[0136] According to the memory bandwidth determined in step 600, an upper limit of the memory bandwidth occupied may be allocated to each called processor core, and the sum of the upper limits of the memory bandwidth allocated to each processor core is greater than or equal to the memory bandwidth;

[0137] Under each processor core, memory bandwidth is isolated according to the allocated memory bandwidth upper limit for use by resource instances.

[0138] It should be understood that the supplementary specifications included in the resource instance creation instruction sent by the control node only indicate the memory bandwidth required for the resource instance to be created. The specific memory bandwidth allocated to each processor core is allocated autonomously by the physical host, specifically by the virtual machine manager within the physical host.

[0139] Typically, the memory bandwidth upper limit allocated to each called processor core needs to be smaller than the memory bandwidth upper limit recorded in the processor core's memory access performance upper limit to avoid problems such as insufficient actual occupied memory bandwidth due to unreasonable allocation.

[0140] The above isolation scheme is merely exemplary, and this embodiment is not limited thereto. For example, in other possible isolation schemes, the upper limit of memory bandwidth supported by the current physical host under the current processor core usage rules can be directly queried in the aforementioned physical host memory access performance data block. This upper limit of memory bandwidth supported by the physical host in terms of physical performance can then be isolated for exclusive use in the currently created resource instance. Further examples are not provided here.

[0141] In summary, in this embodiment, after the control node issues a resource instance creation instruction, the physical host can create a resource instance in accordance with the instance specifications, processor core usage rules, and required memory bandwidth specified in the resource instance creation instruction, and perform memory bandwidth isolation for the resource instance. This ensures that the created resource instance can occupy sufficient memory bandwidth during its operation on the physical host. Moreover, through this isolation mechanism, other resource instances on the physical host are restricted from interfering with the memory bandwidth usage status of the memory bandwidth-enhanced resource instance, thereby ensuring the quality of memory bandwidth redemption for such resource instances and effectively improving the memory access performance of such resource instances.

[0142] It should be noted that some of the processes described in the above embodiments and the accompanying drawings include multiple operations that appear in a specific order. However, it should be clearly understood that these operations may not be executed in the order in which they appear in this document or may be executed in parallel. The sequence numbers of the operations, such as 201 and 202, are merely used to distinguish between different operations and do not represent any execution order. In addition, these processes may include more or fewer operations, and these operations may be executed sequentially or in parallel.

[0143] FIG7 is a schematic diagram of a physical device according to another exemplary embodiment of the present disclosure. As shown in FIG7 , the computing device includes a memory 70 , a processor 71 , and a communication component 72 . The processor 71 is coupled to the memory 70 and the communication component 72 .

[0144] In some designs, the physical device may serve as the control node in the aforementioned embodiments. In this case, the processor 71 may be configured to execute a computer program in the memory 70 to:

[0145] Upon receiving a request to create a resource instance of a specified type, determining the instance specification corresponding to the resource instance requested to be created;

[0146] Obtaining a supplementary specification pre-calibrated for the instance specification for guaranteeing memory bandwidth;

[0147] Find a target physical host that meets the instance specifications and the supplementary specifications;

[0148] The target physical host is controlled to create a resource instance according to the instance specification and the supplementary specification and perform memory bandwidth isolation for the resource instance.

[0149] In an optional embodiment, the supplementary specification includes processor core usage rules and required memory bandwidth.

[0150] In an optional embodiment, when controlling the target physical host to create a resource instance according to the instance specification and the supplementary specification, the processor 71 may be specifically configured to:

[0151] Controlling the target physical host to create a resource instance according to the instance specification and the processor core usage rule;

[0152] Controlling the target physical host to constrain the memory bandwidth upper limit of the resource instance to be greater than or equal to the memory bandwidth;

[0153] The target physical host is controlled to isolate memory bandwidth for use by the resource instance according to the memory bandwidth upper limit.

[0154] In an optional embodiment, when pre-calibrating the supplementary specifications for the instance specifications, the processor 71 may be specifically configured to:

[0155] Under the instance specifications, setting multiple candidate processor core usage rules;

[0156] Creating test instances respectively according to the multiple candidate processor core usage rules;

[0157] Running each test instance separately to measure memory access performance data under each test instance, wherein the memory access performance data includes occupied memory bandwidth;

[0158] Selecting, from the various test instances, target test cases whose memory access performance data meets specified selection criteria;

[0159] The supplementary specification is calibrated for the instance specification based on the processor core usage rule and the occupied memory bandwidth corresponding to the target test case.

[0160] In an optional embodiment, when searching for a target physical host that meets the instance specification and the supplementary specification, the processor 71 may be specifically configured to:

[0161] Searching for a physical host whose remaining resources meet the instance specifications, whose unoccupied processor cores can meet the processor core usage rules, and whose non-isolated memory bandwidth is greater than or equal to the memory bandwidth, as a candidate physical host;

[0162] querying a pre-built physical host memory access performance database for a memory bandwidth upper limit supported by the candidate physical host under the processor core usage rule;

[0163] From the candidate physical hosts, a physical host whose supported memory bandwidth upper limit is greater than or equal to the memory bandwidth is selected as the target physical host.

[0164] In an optional embodiment, when pre-building the physical host memory access performance database, the processor 71 may be specifically configured to:

[0165] Under various specified host types, select the physical host to be tested;

[0166] Set multiple processor core usage rules on a single physical host to be tested;

[0167] On a single physical host to be tested, using test cases to respectively measure the upper limit of memory access performance that can be achieved when memory access is performed according to the multiple processor core usage rules, wherein the upper limit of memory access performance includes a memory bandwidth upper limit;

[0168] The memory access performance upper limits that can be achieved under various processor core usage rules are recorded under various physical hosts respectively, so as to construct the physical host memory access performance database.

[0169] In an optional embodiment, the processor core usage rules include the number of processor cores used, the structural position of each processor core used in the memory organization structure and / or the memory access method adopted by each processor core used; wherein the memory organization structure may include at least one layer of memory group, and the memory access method includes intra-group access or cross-group access.

[0170] In an optional embodiment, when determining the instance specification corresponding to the resource instance requested to be created, the processor 71 may be specifically configured to:

[0171] Determining a target domain corresponding to a target application targeted by the resource instance creation request;

[0172] Searching for the instance specification corresponding to the resource instance requested to be created by the resource instance creation request among the instance specifications contained in the target domain;

[0173] Among them, the supplementary specifications calibrated for the same instance specifications in different fields are not exactly the same.

[0174] In an optional embodiment, the physical host is a bare metal server or a physical machine, and the resource instance includes a virtual machine or a container.

[0175] In an optional embodiment, the processor 71 may also be configured to:

[0176] After the target physical host performs memory bandwidth isolation for the resource instance, if it is detected that there is still unisolated memory bandwidth on the target physical host, the remaining processor cores and memory resources on the target physical host will be used to respond to subsequently received resource instance creation requests of specified type and / or non-specified type.

[0177] In some other designs, the physical device may serve as the physical host in the aforementioned embodiments. In this case, the processor 71 may be configured to execute the computer program in the memory 70 to:

[0178] Receive a resource instance creation instruction sent by the management and control node, including the instance specifications corresponding to the resource instance to be created and the supplementary specifications for ensuring memory bandwidth;

[0179] Invoke the required processor cores and isolate the required memory bandwidth according to the supplementary specifications;

[0180] Invoke other required physical resources except processor cores according to the instance specifications;

[0181] A resource instance is created based on the called processor core and the other physical resources.

[0182] In an optional embodiment, the supplementary specification includes processor core usage rules and required memory bandwidth. When the processor 71 calls the required processor core and isolates the required memory bandwidth according to the supplementary specification, it can be specifically configured to:

[0183] calling the required processor core according to the processor core usage rule;

[0184] According to the memory bandwidth, an upper limit of the memory bandwidth occupied is allocated to each called processor core, and the sum of the upper limits of the memory bandwidth allocated to each processor core is greater than or equal to the memory bandwidth;

[0185] Under each of the processor cores, memory bandwidth is isolated according to the allocated memory bandwidth upper limit for use by the resource instance.

[0186] Furthermore, as shown in Figure 7 , the physical device also includes other components such as a power supply component 73. Figure 7 only schematically shows some components, which does not mean that the physical device only includes the components shown in Figure 7 .

[0187] It is worth noting that the technical details in the above-mentioned embodiments of the physical device can be referred to the relevant description in the aforementioned method embodiment. In order to save space, they will not be repeated here, but this should not cause any loss of the scope of protection of the present disclosure.

[0188] Accordingly, an embodiment of the present disclosure further provides a computer-readable storage medium storing a computer program, which, when executed, can implement the steps performed in the above method embodiment.

[0189] Accordingly, an embodiment of the present disclosure further provides a computer program, which, when executed by a processor, implements the steps performed in the above method embodiment.

[0190] The memory in FIG. 7 is used to store computer programs and can be configured to store various other data to support operations on the computing platform. Examples of such data include instructions for any application or method operating on the computing platform, contact data, phone book data, messages, images, videos, etc. The memory can be implemented by any type of volatile or non-volatile storage device or a combination thereof, such as static random access memory (SRAM), electrically erasable programmable read-only memory (EEPROM), erasable programmable read-only memory (EPROM), programmable read-only memory (PROM), read-only memory (ROM), magnetic memory, flash memory, magnetic disk, or optical disk.

[0191] The communication component in Figure 7 above is configured to facilitate wired or wireless communication between the device where the communication component is located and other devices. The device where the communication component is located can access a wireless network based on a communication standard, such as WiFi, 2G, 3G, 4G / LTE, 5G and other mobile communication networks, or a combination thereof. In an exemplary embodiment, the communication component receives a broadcast signal or broadcast-related information from an external broadcast management system via a broadcast channel. In an exemplary embodiment, the communication component also includes a near field communication (NFC) module to facilitate short-range communication. For example, the NFC module can be implemented based on radio frequency identification (RFID) technology, infrared data association (IrDA) technology, ultra-wideband (UWB) technology, Bluetooth (BT) technology and other technologies.

[0192] The power supply assembly in Figure 7 provides power to various components of the device in which the power supply assembly is located. The power supply assembly may include a power management system, one or more power supplies, and other components associated with generating, managing, and distributing power to the device in which the power supply assembly is located.

[0193] Those skilled in the art will appreciate that the embodiments of the present disclosure may be provided as methods, systems, or computer program products. Therefore, the present disclosure may take the form of a complete hardware embodiment, a complete software embodiment, or an embodiment combining software and hardware. Furthermore, the present disclosure may take the form of a computer program product implemented on one or more computer-usable storage media (including but not limited to magnetic disk storage, CD-ROM, optical storage, etc.) containing computer-usable program code.

[0194] The present disclosure is described with reference to the flowcharts and / or block diagrams of the methods, devices (systems), and computer program products according to the embodiments of the present disclosure. It should be understood that each process and / or box in the flowchart and / or block diagram, as well as the combination of the processes and / or boxes in the flowchart and / or block diagram, can be implemented by computer program instructions. These computer program instructions can be provided to a processor of a general-purpose computer, a special-purpose computer, an embedded processor, or other programmable data processing device to produce a machine, so that the instructions executed by the processor of the computer or other programmable data processing device produce a device for implementing the functions specified in one or more processes in the flowchart and / or one or more boxes in the block diagram.

[0195] These computer program instructions may also be stored in a computer-readable memory that can direct a computer or other programmable data processing device to operate in a specific manner, so that the instructions stored in the computer-readable memory produce a product including an instruction device that implements the functions specified in one or more processes in the flowchart and / or one or more boxes in the block diagram.

[0196] These computer program instructions can also be loaded onto a computer or other programmable data processing device so that a series of operating steps are executed on the computer or other programmable device to produce a computer-implemented process, so that the instructions executed on the computer or other programmable device provide steps for implementing the functions specified in one or more processes in the flowchart and / or one or more boxes in the block diagram.

[0197] In a typical configuration, a computing device includes one or more processors (CPUs), input / output interfaces, network interfaces, and memory.

[0198] Memory may include non-permanent storage in a computer-readable medium, random access memory (RAM) and / or non-volatile memory in the form of read-only memory (ROM) or flash RAM. Memory is an example of a computer-readable medium.

[0199] Computer-readable media includes permanent and non-permanent, removable and non-removable media that can be implemented by any method or technology to store information. The information can be computer-readable instructions, data structures, program modules, or other data. Examples of computer storage media include, but are not limited to, phase-change memory (PRAM), static random access memory (SRAM), dynamic random access memory (DRAM), other types of random access memory (RAM), read-only memory (ROM), electrically erasable programmable read-only memory (EEPROM), flash memory or other memory technologies, compact disc read-only memory (CD-ROM), digital versatile disc (DVD) or other optical storage, magnetic cassettes, magnetic disk storage or other magnetic storage devices, or any other non-transmission media that can be used to store information that can be accessed by a computing device. As defined herein, computer-readable media does not include transitory computer-readable media (transitory media), such as modulated data signals and carrier waves.

[0200] It should also be noted that the terms "comprises," "includes," or any other variations thereof are intended to encompass non-exclusive inclusion, such that a process, method, commodity, or apparatus that includes a series of elements includes not only those elements but also other elements not explicitly listed, or includes elements inherent to such process, method, commodity, or apparatus. In the absence of further limitations, an element defined by the phrase "comprises a ..." does not exclude the presence of other identical elements in the process, method, commodity, or apparatus that includes the element.

[0201] It should be noted that the user information (including but not limited to user device information, user personal information, etc.) and data (including but not limited to data used for analysis, stored data, displayed data, etc.) involved in this disclosure are all information and data authorized by the user or fully authorized by all parties, and the collection, use and processing of relevant data must comply with the relevant laws, regulations and standards of relevant countries and regions, and provide corresponding operation entrances for users to choose to authorize or refuse.

[0202] The foregoing is merely an embodiment of the present disclosure and is not intended to limit the present disclosure. Various modifications and variations are possible for those skilled in the art. Any modifications, equivalent substitutions, improvements, etc. made within the spirit and principles of the present disclosure shall be included within the scope of protection of the present disclosure.

Claims

1. A memory management and control method, applicable to a management and control node, the method comprising: Upon receiving a request to create a resource instance of a specified type, determining an instance specification corresponding to the resource instance requested to be created; Obtaining a supplementary specification pre-calibrated for the instance specification for guaranteeing memory bandwidth; Find a target physical host that meets the instance specification and the supplementary specification; The target physical host is controlled to create a resource instance according to the instance specification and the supplementary specification, so as to perform memory bandwidth isolation for the resource instance.

2. The method according to claim 1, wherein: The supplementary specifications include rules for processor core usage and required memory bandwidth.

3. The method according to claim 2, wherein: Controlling the target physical host to create a resource instance according to the instance specification and the supplementary specification, including: Controlling the target physical host to create a resource instance according to the instance specification and the processor core usage rule; Controlling the target physical host to constrain the memory bandwidth upper limit of the resource instance to be greater than or equal to the memory bandwidth; The target physical host is controlled to isolate memory bandwidth according to the memory bandwidth upper limit for use by the resource instance.

4. The method according to claim 2, wherein: The process of pre-calibrating the supplementary specification for the instance specification comprises: Under the instance specifications, setting a plurality of candidate processor core usage rules; Creating test instances respectively according to the plurality of candidate processor core usage rules; Running each test instance respectively to measure memory access performance data under each test instance, wherein the memory access performance data includes the occupied memory bandwidth; Selecting, from the various test instances, a target test case whose memory access performance data meets a specified selection criterion; The supplementary specification is calibrated for the instance specification based on the processor core usage rule corresponding to the target test case and the occupied memory bandwidth.

5. The method according to claim 2, wherein: Finding a target physical host that meets the instance specification and the supplementary specification includes: Find a physical host whose remaining resources meet the instance specifications, whose unoccupied processor cores can meet the processor core usage rules, and whose non-isolated memory bandwidth is greater than or equal to the memory bandwidth, as a candidate physical host; querying, from a pre-built physical host memory access performance database, an upper limit of memory bandwidth supported by the candidate physical host under the processor core usage rule; From the candidate physical hosts, a physical host whose supported memory bandwidth upper limit is greater than or equal to the memory bandwidth is selected as the target physical host.

6. The method according to claim 5, wherein: The process of pre-building the physical host memory access performance database includes: Under various specified host types, select the physical host to be tested; Set various processor core usage rules on a single physical host to be tested; Under a single physical host to be tested, using test cases to respectively determine the upper limits of memory access performance that can be achieved when memory access is performed according to the plurality of processor core usage rules, wherein the upper limit of memory access performance includes an upper limit of memory bandwidth; The upper limits of memory access performance that can be achieved under various processor core usage rules are recorded under various physical hosts respectively to construct the physical host memory access performance database.

7. The method according to any one of claims 2 to 6, wherein: The processor core usage rules include the number of processor cores used, the structural position of each processor core used in the memory organization structure and / or the memory access method used by each processor core used; wherein the memory organization structure may include at least one layer of memory group, and the memory access method includes intra-group access or cross-group access.

8. The method according to any one of claims 1 to 7, wherein: Determine the instance specifications corresponding to the resource instance requested to be created, including: Determine a target domain corresponding to a target application targeted by the resource instance creation request; Searching for the instance specification corresponding to the resource instance requested to be created by the resource instance creation request among the instance specifications contained in the target domain; Among them, the supplementary specifications calibrated for the same instance specifications in different fields are not exactly the same.

9. The method according to any one of claims 1 to 8, wherein: The physical host adopts a bare metal server or a physical machine, and the resource instance includes a virtual machine or a container.

10. The method according to any one of claims 1 to 9, wherein: Also includes: After the target physical host performs memory bandwidth isolation for the resource instance, if it is monitored that there is still unisolated memory bandwidth on the target physical host, the remaining processor cores and memory resources on the target physical host are used to respond to subsequently received resource instance creation requests of specified type and / or non-specified type.

11. A memory management method, wherein: Applicable to a physical host, the method comprises: Receive a resource instance creation instruction sent by the management and control node, wherein the resource instance creation instruction includes an instance specification corresponding to the resource instance to be created and a supplementary specification for ensuring memory bandwidth; Invoke the required processor cores and isolate the required memory bandwidth according to the supplemental specification; Invoke other required physical resources except the processor core according to the instance specifications; A resource instance is created based on the called processor core and other physical resources.

12. The method according to claim 11, wherein: The supplementary specification includes the processor core usage rules and the required memory bandwidth. The required processor core is called according to the supplementary specification and the required memory bandwidth is isolated, including: Calling the required processor core according to the processor core usage rule; According to the memory bandwidth, an upper limit of the memory bandwidth occupied is allocated to each called processor core, and the sum of the upper limits of the memory bandwidth allocated to each processor core is greater than or equal to the memory bandwidth; Under each of the processor cores, memory bandwidth is isolated according to the allocated memory bandwidth upper limit for use by the resource instance.

13. A physical device comprising a memory, a processor, and a communication component; The memory is used to store one or more computer instructions; The processor is coupled to the memory and the communication component, and is used to execute the one or more computer instructions to execute the memory management method described in any one of claims 1-12.

14. A computer-readable storage medium storing computer instructions, which, when executed by one or more processors, causes the one or more processors to execute the memory management method according to any one of claims 1 to 12.

15. A computer program, which, when executed by a processor, implements the steps of the method according to any one of claims 1 to 12.

Citation Information

Patent Citations

  • Service quality assurance method for cloud computing server power consumption and resource competition cooperative control

    CN108574600A

  • A multidimensional resource isolation system for improving isolation between tasks of different priorities

    CN109542603A

  • Distributed heterogeneous resource pool scheduling method and device, server and storage medium

    CN116360994A

  • Resource scheduling method and database

    CN116743760A

  • Predictively provisioning cloud computing resources for virtual machines

    US20170075709A1