WO2021121115A1 - 一种虚拟机的numa节点调度方法、装置、设备及介质 - Google Patents

一种虚拟机的numa节点调度方法、装置、设备及介质 Download PDF

Info

Publication number
WO2021121115A1
WO2021121115A1 PCT/CN2020/135170 CN2020135170W WO2021121115A1 WO 2021121115 A1 WO2021121115 A1 WO 2021121115A1 CN 2020135170 W CN2020135170 W CN 2020135170W WO 2021121115 A1 WO2021121115 A1 WO 2021121115A1
Authority
WO
WIPO (PCT)
Prior art keywords
node
numa
virtual machine
nodes
preset
Prior art date
Application number
PCT/CN2020/135170
Other languages
English (en)
French (fr)
Inventor
刘飞
周旭
林樟龙
陈列
Original Assignee
深信服科技股份有限公司
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 深信服科技股份有限公司 filed Critical 深信服科技股份有限公司
Priority to EP20901953.8A priority Critical patent/EP4080357A4/en
Publication of WO2021121115A1 publication Critical patent/WO2021121115A1/zh

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5027Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
    • G06F9/5038Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals considering the execution order of a plurality of tasks, e.g. taking priority or time dependency constraints into consideration
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5027Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
    • G06F9/505Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals considering the load
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5061Partitioning or combining of resources
    • G06F9/5077Logical partitioning of resources; Management or configuration of virtualized resources
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5083Techniques for rebalancing the load in a distributed system
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • G06F2009/4557Distribution of virtual machine instances; Migration and load balancing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2209/00Indexing scheme relating to G06F9/00
    • G06F2209/50Indexing scheme relating to G06F9/50
    • G06F2209/5021Priority

Definitions

  • This application relates to the technical field of virtual machines, and in particular to a virtual machine NUMA node scheduling method, device, electronic equipment, and computer-readable storage medium.
  • Virtual Machine refers to a complete computer system with complete hardware system functions that is simulated by software and runs in a completely isolated environment.
  • the creation and use of a virtual machine is based on the hardware foundation of a physical machine, and the physical CPU and memory resources of the physical machine need to be used as the VCPU and memory of the virtual machine. Therefore, the scheduling of hardware resources by virtual machines is an important issue.
  • the hardware resource scheduling methods for virtual machines in the prior art often have certain deficiencies and cannot meet the increasingly abundant needs of users. In view of this, providing a solution to the above-mentioned technical problems has been urgently needed by those skilled in the art.
  • the purpose of this application is to provide a virtual machine NUMA node scheduling method, device, electronic equipment, and computer-readable storage medium, so as to perform flexible and reasonable resource scheduling according to different virtual machine application requirements to meet user needs.
  • this application discloses a virtual machine NUMA node scheduling method, including:
  • the CPU load of the NUMA node When the CPU load of the NUMA node is over-provisioned, perform NUMA node scheduling adjustment to balance the load; among them, the CPU load over-provisioning threshold of the NUMA node where the important virtual machine is located is lower than the CPU load over-provisioning of the NUMA node where the important virtual machine is not preset Threshold.
  • determining the number of corresponding NUMA nodes for each virtual machine includes:
  • the number of NUMA nodes corresponding to the virtual machine is determined according to the relationship between the preset number of VCPUs of the virtual machine and the number of single-node CPU cores.
  • the determining the number of NUMA nodes corresponding to the virtual machine according to the relationship between the preset number of VCPUs of the virtual machine and the number of single-node CPU cores includes:
  • the preset number of VCPUs is less than the total number of CPU cores of the NUMA cluster; the total number of CPU cores is the product of the number of single-node CPU cores and the total number of nodes;
  • the total number of nodes is determined as the number of NUMA nodes corresponding to the virtual machine.
  • the respectively selecting a corresponding number of NUMA nodes to initially allocate to each of the virtual machines includes:
  • the CPUs and local memory of the corresponding number of NUMA nodes are configured so as to be called by the corresponding virtual machine.
  • the selecting a corresponding number of NUMA nodes for the virtual machine includes:
  • the performing NUMA node scheduling adjustment includes:
  • the receivable node is a node whose CPU load is not over-provisioned after receiving the virtual machine migrated from the node to be optimized;
  • the switchable node is a node whose CPU load is not over-provisioned after exchanging virtual machines with the node to be optimized;
  • the node to be optimized and the switchable node are exchanged for virtual machines.
  • the migrating a virtual machine from the node to be optimized to the receivable node includes:
  • the migrating a virtual machine from the node to be optimized to the receivable node includes:
  • the virtual machine that occupies the smallest memory among the nodes to be optimized is migrated to the receivable node; wherein the virtual machines that are migrated to the receivable node do not include virtual machines carried on all NUMA nodes.
  • the virtual machine migrated to the receivable node is a non-preset important virtual machine.
  • the CPU time slice weight of the preset important virtual machine in the NUMA node is higher than that of the non-predetermined important virtual machine in this node.
  • it also includes:
  • the NUMA node where the preset important virtual machine using large page memory is located is taken as the important node
  • this application also discloses a virtual machine NUMA node scheduling device, including:
  • the quantity determining module is used to determine the corresponding NUMA node quantity for each virtual machine
  • the initial allocation module is used to select a corresponding number of NUMA nodes to be initially allocated to each of the virtual machines
  • Load monitoring module used to monitor the CPU load of each NUMA node in the NUMA cluster
  • the scheduling adjustment module is used to perform NUMA node scheduling adjustment to balance the load when the CPU load of the NUMA node is over-provisioned; wherein the CPU load over-provisioning threshold of the NUMA node where the important virtual machine is located is lower than the NUMA where the non-preset important virtual machine is located The CPU load of the node exceeds the threshold.
  • the number determining module is specifically configured to determine the number of NUMA nodes corresponding to the virtual machine according to the relationship between the preset number of VCPUs of the virtual machine and the number of single-node CPU cores.
  • the number determination module is specifically configured to: determine whether the preset number of VCPUs is less than the total number of CPU cores of the NUMA cluster; the total number of CPU cores is the ratio of the number of single-node CPU cores and the total number of nodes Product; if so, the ratio of the preset number of VCPUs to the number of single-node CPU cores is rounded up and determined as the number of NUMA nodes corresponding to the virtual machine; if not, the total number of nodes is determined as all The number of NUMA nodes corresponding to the virtual machine.
  • the initial allocation module is specifically configured to: select a corresponding number of NUMA nodes for the virtual machine; configure both the CPU and local memory of the corresponding number of NUMA nodes to be invoked by the corresponding virtual machine.
  • the initial allocation module is specifically configured to: determine whether the difference between the CPU load of the NUMA node with the lowest current CPU load and other NUMA nodes is higher than a preset difference; if so, set the current NUMA node with the lowest CPU load Assign to the virtual machine; if not, assign the NUMA node that currently has the least number of VCPUs to the virtual machine; repeat the judgment of the difference between the CPU load of the NUMA node with the lowest current CPU load and other NUMA nodes Whether it is higher than the preset difference value and subsequent steps, until the number of NUMA nodes divided for the virtual machine reaches the corresponding number.
  • the scheduling adjustment module specifically includes:
  • the selection unit is used to use the NUMA node with over-allocated CPU load as the node to be optimized
  • the first judging unit is configured to judge whether there is a receivable node in the NUMA cluster; the receivable node is a node whose CPU load is not over-provisioned after receiving the virtual machine migrated from the node to be optimized;
  • a migration unit configured to migrate a virtual machine from the node to be optimized to the receivable node when there is a receivable node
  • the second judging unit is used to judge whether there is a switchable node in the NUMA cluster when there is no receivable node; the switchable node is one whose CPU load is not over-provisioned after exchanging virtual machines with the node to be optimized node;
  • the switching unit is configured to exchange virtual machines between the to-be-optimized node and the switchable node when there is a switchable node.
  • the migration unit is specifically configured to: migrate the virtual machine to a receiving node with the lowest CPU load that does not carry a preset important virtual machine.
  • the migration unit is specifically configured to: migrate the virtual machine that occupies the smallest memory among the nodes to be optimized to the receivable node; wherein, the virtual machine that is migrated to the receivable node does not include the virtual machine that is hosted on all nodes. Virtual machine on NUMA node.
  • the virtual machine migrated to the receivable node is a non-preset important virtual machine.
  • the CPU time slice weight of the preset important virtual machine in the NUMA node is higher than that of the non-predetermined important virtual machine in this node.
  • an isolation module which is used to set the NUMA node where the preset important virtual machine using the large page memory is located as the important node when the preset important virtual machine using the large page memory is monitored; Set important services to perform isolation operations, so that the preset important services run in other NUMA nodes except the important node.
  • this application also discloses an electronic device, including:
  • Memory used to store computer programs
  • the processor is configured to execute the computer program to implement the steps of any one of the virtual machine NUMA node scheduling methods described above.
  • the present application also discloses a computer-readable storage medium in which a computer program is stored, and when the computer program is executed by a processor, it is used to implement any of the above-mentioned virtual The steps of the NUMA node scheduling method of the machine.
  • the NUMA node scheduling method for virtual machines includes: determining the number of corresponding NUMA nodes for each virtual machine; selecting a corresponding number of NUMA nodes for initial allocation to each virtual machine; monitoring the status of each NUMA node in a NUMA cluster CPU load; NUMA node scheduling adjustment is performed to balance the load when the CPU load of the NUMA node is over-provisioned; among them, the CPU load over-provisioning threshold of the NUMA node where the important virtual machine is located is lower than the CPU of the NUMA node where the important virtual machine is not preset Overload threshold.
  • this application is based on the scheduling adjustment mechanism of the virtual machine NUMA node, which can effectively achieve load balancing in the cluster, thereby balancing and improving the overall operating performance of the NUMA cluster; at the same time, this application introduces the priority mechanism of the virtual machine, which is in progress.
  • the scheduling adjustment the operating performance of the node where the important virtual machine is preset can be flexibly and conveniently guaranteed to meet the user's performance requirements for different application services, which greatly facilitates the user's use.
  • the NUMA node scheduling device, electronic equipment, and computer-readable storage medium of the virtual machine provided in this application also have the above-mentioned beneficial effects.
  • FIG. 1 is a flowchart of a NUMA node scheduling method of a virtual machine disclosed in an embodiment of the application;
  • FIG. 2 is a flowchart of a method for selecting a corresponding number of NUMA nodes for a virtual machine disclosed in an embodiment of the application;
  • FIG. 3 is a diagram of an application example for initial allocation of NUMA nodes disclosed in an embodiment of the application.
  • FIG. 5 is a structural block diagram of a NUMA node scheduling device for a virtual machine disclosed in an embodiment of the application;
  • Fig. 6 is a structural block diagram of an electronic device disclosed in an embodiment of the application.
  • the core of this application is to provide a virtual machine NUMA node scheduling method, device, electronic equipment, and computer-readable storage medium, so as to flexibly and reasonably perform resource scheduling according to different virtual machine application requirements to meet user needs.
  • an embodiment of the present application discloses a virtual machine NUMA node scheduling method, which mainly includes:
  • S101 Determine the number of corresponding NUMA nodes for each virtual machine.
  • NUMA clusters Non-uniform memory access, non-uniform memory access architecture
  • server clusters used to carry and build virtual machines can be called NUMA clusters.
  • the NUMA cluster can be specifically a hyper-converged platform system, that is, a server cluster that integrates multiple functions such as storage, computing, and networking.
  • each VCPU that is, a virtual CPU
  • the physical CPU constitutes a NUMA node of the virtual machine.
  • NUMA nodes also include memory hardware; the process of assigning NUMA nodes to a virtual machine is the process of configuring physical CPU and physical memory for it.
  • one physical CPU can be allocated to only one virtual machine, and one or more VCPUs of the virtual machine can be further constructed.
  • a physical CPU can also be allocated to multiple virtual machines at the same time, that is, provide hardware resource services for multiple virtual machines at the same time.
  • the total number of hardware resources in a NUMA cluster is fixed.
  • resource scheduling is performed for each virtual machine to allocate NUMA nodes, the number of NUMA nodes corresponding to each virtual machine can be determined first. It is easy to understand that the number of VCPUs used by virtual machines for performing different tasks is different, so the number of NUMA nodes required is not necessarily the same.
  • S102 Respectively select a corresponding number of NUMA nodes to initially allocate to each virtual machine.
  • nodes can be allocated to it based on the hardware resources of the NUMA cluster.
  • the initial allocation can be performed for each virtual machine in turn.
  • S103 Monitor the CPU load of each NUMA node in the NUMA cluster.
  • S104 Perform NUMA node scheduling adjustment when the CPU load of the NUMA node is over-allocated to balance the load.
  • the CPU load overprovisioning threshold of the NUMA node where the important virtual machine is preset is lower than the CPU load overprovisioning threshold of the NUMA node where the important virtual machine is not preset.
  • the NUMA node scheduling method of the virtual machine provided in the embodiment of the present application further performs scheduling adjustment after the initial allocation of the NUMA node of the virtual machine is completed. Specifically, considering that different virtual machines perform different tasks, the hardware resource occupancy of NUMA nodes is different, and load imbalance may occur among NUMA nodes. Therefore, it is necessary to make scheduling adjustments to balance the load.
  • this application has prioritized virtual machines that perform different tasks. Specifically, according to the user's settings, some virtual machines that are used to perform important tasks can enjoy higher priority and have an advantageous position in resource invocation, etc., and are called preset important virtual machines. In addition to these pre-set important virtual machines, other virtual machines may be referred to as non-pre-set important virtual machines.
  • the NUMA node scheduling adjustment can be carried out.
  • over-provisioning means that the CPU load of the NUMA node is heavy.
  • the actual load exceeds the CPU load over-provisioning threshold, it is over-provisioning.
  • scheduling adjustment can make the NUMA node no longer over-provisioned; for the entire NUMA cluster, scheduling adjustment can effectively balance the overall load situation of the cluster, and balance the load and load of each NUMA node. Operational performance.
  • the application should prioritize the operation performance of the NUMA node where the important virtual machine is located when performing load balancing. Therefore, the CPU load of the NUMA node where the important virtual machine is located is preset
  • the over-provisioning threshold can be lower than the CPU load over-provisioning threshold of the NUMA node where the important virtual machine is not preset.
  • the CPU load exceeds 0.9 times the number of physical CPU cores, which can be considered as an overconfiguration; when there is hyperthreading, the CPU load Exceeding 1.3 times the number of physical CPU cores can be regarded as over-provisioning.
  • the CPU load overprovisioning threshold can be lower than the threshold under the above-mentioned equivalent conditions, so as to provide a relatively favorable resource environment for the operation of the preset important virtual machines.
  • the NUMA node scheduling method for virtual machines includes: determining the corresponding number of NUMA nodes for each virtual machine; selecting a corresponding number of NUMA nodes to initially allocate to each virtual machine; monitoring the status of each NUMA node in a NUMA cluster CPU load; NUMA node scheduling adjustment is performed to balance the load when the CPU load of the NUMA node is over-provisioned; among them, the CPU load over-provisioning threshold of the NUMA node where the important virtual machine is located is lower than the CPU of the NUMA node where the important virtual machine is not preset Overload threshold.
  • this application is based on the scheduling adjustment mechanism of the virtual machine NUMA node, which can effectively achieve load balancing in the cluster, thereby balancing and improving the overall operating performance of the NUMA cluster; at the same time, this application introduces the priority mechanism of the virtual machine, which is in progress.
  • the scheduling adjustment the operating performance of the node where the important virtual machine is preset can be flexibly and conveniently guaranteed to meet the user's performance requirements for different application services, which greatly facilitates the user's use.
  • the number of NUMA nodes corresponding to the virtual machine may be determined according to the relationship between the preset number of VCPUs of the virtual machine and the number of single-node CPU cores.
  • the configuration of each NUMA node such as the number of CPU cores, is the same.
  • the preset number of VCPUs of the virtual machine is less than the total number of CPU cores of the NUMA cluster; where the total number of CPU cores is the product of the number of single-node CPU cores and the total number of nodes. If so, the ratio of the preset number of VCPUs to the number of single-node CPU cores can be rounded up to determine the number of NUMA nodes corresponding to the virtual machine; if not, the total number of nodes can be determined as the number of NUMA nodes corresponding to the virtual machine. At this time, the number of VCPUs can be divided evenly among each NUMA node.
  • the number of VCPUs of a virtual machine is greater than the number of CPU cores of a single NUMA node but less than the number of CPU cores of two NUMA nodes, the corresponding number is 2, and you can select two NUMA nodes for the virtual machine, and you can Furthermore, the VCPU required by the virtual machine is evenly distributed to the two NUMA nodes.
  • step S102 is to select a corresponding number of NUMA nodes to be initially allocated to each virtual machine, which may specifically include: selecting a corresponding number for the virtual machine NUMA nodes; configure the CPU and local memory of the corresponding number of NUMA nodes for the corresponding virtual machine to call.
  • the memory access time depends on the memory location of the processor.
  • the CPU accesses the local memory of the node faster than the non-local memory, and the remote memory access is bound to affect the access speed. Therefore, in this embodiment, when a NUMA node is initially allocated to a virtual machine, the CPU and memory resources of the same node can be specifically allocated to the virtual machine, so as to avoid the impact of remote memory access to access efficiency.
  • Figure 2 which mainly includes:
  • S201 Determine whether the difference between the CPU load of the NUMA node with the lowest CPU load and other NUMA nodes is higher than the preset difference; if yes, go to S202; if not, go to S203.
  • S202 Divide the NUMA node with the lowest current CPU load to the virtual machine; enter S204.
  • S203 Divide the NUMA node with the least number of VCPUs currently carried to the virtual machine; enter S204.
  • the current load situation of the NUMA node is specifically considered when the NUMA node is initially selected for the virtual machine, so as to achieve load balancing of the NUMA cluster. Specifically, each time a NUMA node is selected for a virtual machine, the NUMA node with the lowest current CPU load can be selected. However, if the CPU load between NUMA nodes is not much different, that is, it is not higher than the preset difference, whether to choose the NUMA node with the lowest CPU load at this time is not much different, so you can choose the NUMA node that currently has the least number of VCPUs. Among them, the preset difference may be specifically 5%.
  • S204 Determine whether the number of NUMA nodes divided by the virtual machine reaches the corresponding number; if not, proceed to S201.
  • NUMA nodes are continuously selected for the virtual machine until the corresponding number is reached.
  • FIG. 3 is a diagram of an application example for initial allocation of NUMA nodes provided by an embodiment of the present application. Specifically, FIG. 3 shows 4 virtual machines, with the number of VCPUs being 8, 14, 30, and 18 in order. Assume that there are 2 NUMA nodes in the current NUMA cluster, and each NUMA node has 14 CPU cores.
  • the number of VCPUs (8) is less than 14, so it can all be divided into NUMA1 nodes; for the virtual machine VM2, the number of VCPUs (14) is equal to 14. Therefore, all can be divided into NUMA0 nodes; for the virtual machine VM3, the number of VCPUs (30) is greater than the total number of CPU cores (28), so it can be equally divided into NUMA0 nodes and NUMA1 nodes, and each node carries 15 VCPUs for the virtual machine VM3; For the virtual machine VM4, the number of VCPUs (18) is greater than 14 but less than the total number of CPU cores (28), so it can be equally divided into NUMA0 nodes and NUMA1 nodes, and each node carries 9 VCPUs for the virtual machine VM4.
  • the process of NUMA node scheduling adjustment in step 104 can be specifically referred to FIG. 4, which mainly includes:
  • S302 Determine whether there are receivable nodes in the NUMA cluster; if yes, go to S303; if not, go to S304.
  • the receivable node is a node whose CPU load is not over-provisioned after receiving the virtual machine migrated from the node to be optimized.
  • the node and the node to be optimized can not be over-provisioned, then the node can be determined to be available.
  • the receiving node is a node used to receive the virtual machine migrated from the node to be optimized.
  • S303 Migrate the virtual machine from the node to be optimized to the receivable node.
  • the virtual machine may be migrated to a receiving node with the lowest CPU load that does not carry a preset important virtual machine.
  • the virtual machine may be migrated to a receiving node with the lowest CPU load that does not carry a preset important virtual machine.
  • migrating a virtual machine from a node to be optimized to a receivable node if there are multiple receivable nodes, it may be preferable to select the node with the lowest CPU load from the receivable nodes that do not carry the preset important virtual machine.
  • Machine migration when migrating a virtual machine from a node to be optimized to a receivable node, if there are multiple receivable nodes, it may be preferable to select the node with the lowest CPU load from the receivable nodes that do not carry the preset important virtual machine.
  • the virtual machine that occupies the smallest memory in the node to be optimized can be specifically migrated to the receivable node; wherein, the virtual machine that is migrated to the receivable node does not include the virtual machines carried on all NUMA nodes.
  • this embodiment preferably migrates the virtual machine with the smallest memory.
  • the distribution of the virtual machine in the middle of the NUMA node can also be considered.
  • the VCPUs of a virtual machine should be distributed on different NUMA nodes as much as possible. Therefore, if a virtual machine is carried on all NUMA nodes due to the large number of VCPUs, it should be selected for migration The virtual machine can be ignored.
  • the priority of the virtual machine can also be considered when selecting the virtual machine to be migrated.
  • the virtual machine migrated to the receivable node is a non-preset important virtual machine.
  • the virtual machine to be migrated can be selected from the non-preset important virtual machines.
  • S304 Determine whether there are exchangeable nodes in the NUMA cluster; if yes, proceed to S305.
  • the switchable node is a node whose CPU load is not over-provisioned after exchanging the virtual machine with the node to be optimized.
  • the node to be optimized and the non-over-provisioned NUMA node can exchange virtual machines so that the node and the node to be optimized are not over-provisioned.
  • the node is determined to be a switchable node, that is, a node used to exchange virtual machines with the node to be optimized.
  • the performance balance between the nodes to be optimized and the exchangeable nodes can be achieved by exchanging different virtual machines. Therefore, during virtual machine swapping, the virtual machine that occupies a larger memory in the node to be optimized can be swapped with the virtual machine that occupies a smaller memory in the swappable node. It is easy to understand that when there are multiple exchangeable nodes, the selection basis can refer to the selection basis of receivable nodes.
  • Cocoa will give priority to guaranteeing that NUMA nodes that carry preset important virtual machines are not over-provisioned, and NUMA that does not carry preset important virtual machines are allowed The node is over-provisioned.
  • NUMA node that carries a preset important virtual machine when a NUMA node that carries a preset important virtual machine is over-provisioned, if none of the above-mentioned receivable nodes and exchangeable nodes exist, you can still select a NUMA node that does not host a preset important virtual machine for virtual To ensure that the NUMA node that carries the important preset virtual machine is not over-provisioned, as for another NUMA node used to receive or exchange virtual machines, it can be allowed to be over-provisioned after virtual machine migration or exchange. With the situation.
  • the NUMA node scheduling method for virtual machines provided in the embodiments of the present application, it is preset that the CPU time slice weight of important virtual machines in NUMA nodes is higher than that in this node. Important virtual machines that are not preset.
  • this embodiment can also prioritize the preset important virtual machine in the use of the physical CPU.
  • the VCPU threads of different virtual machines need to call the physical CPU resources of the NUMA node according to time slices.
  • the CPU time slice weight of the preset important virtual machine can be set to a higher value, so that it is higher than the CPU time slice of the non-preset important virtual machine in the same node Weights.
  • the NUMA node scheduling method for virtual machines provided in the embodiments of this application can further provide specific resource guarantees for certain preset important virtual machines:
  • the NUMA node where the presetting important virtual machine using large page memory is located is used as the important node; the presetting important services of the NUMA cluster are isolated to make the presetting important services run on In other NUMA nodes except important nodes.
  • some pre-set important virtual machines with larger systems occupy larger memory resources, and therefore may use large page memory.
  • the huge page memory is above 4kB, which can even reach the order of gigabytes.
  • these preset important services can be isolated To other nodes to prevent the node hardware resources from competing with the preset important virtual machine. In this way, the normal operation of the cluster service can be ensured, and the computing performance of the preset important virtual machine can be ensured, thereby maximizing the performance of the cluster business.
  • an embodiment of the present application discloses a virtual machine NUMA node scheduling device, which mainly includes:
  • the quantity determining module 401 is configured to determine the corresponding number of NUMA nodes for each virtual machine
  • the initial allocation module 402 is configured to select a corresponding number of NUMA nodes to be initially allocated to each virtual machine
  • the load monitoring module 403 is used to monitor the CPU load of each NUMA node in the NUMA cluster
  • the scheduling adjustment module 404 is used to perform NUMA node scheduling adjustment to balance the load when the CPU load of the NUMA node is over-provisioned; wherein the CPU load over-provisioning threshold of the NUMA node where the important virtual machine is located is lower than that of the non-preset important virtual machine. The CPU load of the NUMA node exceeds the threshold.
  • the NUMA node scheduling device for virtual machines disclosed in the embodiments of the present application can effectively achieve load balancing in the cluster based on the scheduling adjustment mechanism for virtual machine NUMA nodes, thereby balancing and improving the overall operating performance of the NUMA cluster; at the same time,
  • This application introduces a priority mechanism for virtual machines, which can flexibly and conveniently guarantee the operating performance of nodes where important virtual machines are preset during scheduling adjustments, meet user performance requirements for different application services, and greatly facilitate user use.
  • the NUMA node scheduling apparatus of the virtual machine disclosed in the embodiment of the present application is based on the above content, and the quantity determining module 401 is specifically configured to: according to the preset number of VCPUs of the virtual machine and the single-node CPU core The size relationship of the number determines the number of NUMA nodes corresponding to the virtual machine.
  • the NUMA node scheduling apparatus for virtual machines disclosed in the embodiments of the present application is based on the above content, and the quantity determining module 401 is specifically configured to: determine whether the preset number of VCPUs is less than the total CPU cores of the NUMA cluster The total number of CPU cores is the product of the number of single-node CPU cores and the total number of nodes; if it is, the ratio of the preset number of VCPUs to the number of single-node CPU cores is rounded up to determine the number of NUMA nodes corresponding to the virtual machine; if not , The total number of nodes is determined as the number of NUMA nodes corresponding to the virtual machine.
  • the NUMA node scheduling apparatus of the virtual machine disclosed in the embodiment of the present application is based on the above content, and the initial allocation module 402 is specifically configured to: select a corresponding number of NUMA nodes for the virtual machine; The CPU and local memory of each NUMA node are configured for the corresponding virtual machine to call.
  • the NUMA node scheduling apparatus of the virtual machine disclosed in the embodiment of the present application is based on the above content
  • the initial allocation module 402 is specifically configured to: determine the current CPU load of the NUMA node and other NUMA nodes. Whether the difference in CPU load is higher than the preset difference; if so, assign the NUMA node with the lowest current CPU load to the virtual machine; if not, assign the NUMA node with the least number of VCPUs currently carried to the virtual machine; repeat execution Determine whether the difference between the CPU load of the NUMA node with the lowest CPU load and other NUMA nodes is higher than the preset difference and the subsequent steps, until the number of NUMA nodes divided for the virtual machine reaches the corresponding number.
  • the NUMA node scheduling apparatus of the virtual machine disclosed in the embodiment of the present application on the basis of the foregoing content, specifically includes the scheduling adjustment module 404:
  • the selection unit is used to use the NUMA node with over-allocated CPU load as the node to be optimized
  • the first judging unit is used to judge whether there is a receivable node in the NUMA cluster; the receivable node is a node whose CPU load is not over-provisioned after receiving the virtual machine migrated from the node to be optimized;
  • the migration unit is used to migrate the virtual machine from the node to be optimized to the receivable node when there is a receivable node;
  • the second judging unit is used to judge whether there is a switchable node in the NUMA cluster when there is no receivable node; the switchable node is a node whose CPU load is not over-provisioned after exchanging virtual machines with the node to be optimized;
  • the exchange unit is used to exchange virtual machines between the node to be optimized and the exchangeable node when there are exchangeable nodes.
  • the NUMA node scheduling device for virtual machines disclosed in the embodiments of the present application is based on the above content, and the migration unit is specifically configured to: send the CPU load to the lowest acceptable CPU load that does not carry the preset important virtual machine Node migration virtual machine.
  • the NUMA node scheduling device for virtual machines disclosed in the embodiments of the present application is based on the above content, and the migration unit is specifically configured to: migrate the virtual machine that occupies the smallest memory among the nodes to be optimized to be able to receive Nodes; among them, virtual machines migrated to receivable nodes do not include virtual machines carried on all NUMA nodes.
  • the NUMA node scheduling apparatus for virtual machines disclosed in the embodiments of the present application is based on the above content, when each NUMA node carries a preset important virtual machine, the virtual machine that can be migrated to the receiving node The machine is a non-default important virtual machine.
  • the NUMA node scheduling device for virtual machines disclosed in the embodiments of the present application presets that the CPU time slice weight of important virtual machines in NUMA nodes is higher than that of non-volatile virtual machines in this node based on the above content. Preset important virtual machines.
  • the NUMA node scheduling apparatus of the virtual machine disclosed in the embodiment of the present application on the basis of the foregoing content, further includes:
  • the isolation module is used to monitor the NUMA node where the preset important virtual machine using the large page memory is located as the important node; when the preset important virtual machine using the large page memory is monitored, it is used to isolate the preset important service of the NUMA cluster , In order to make the preset important services run in other NUMA nodes besides the important nodes.
  • an electronic device including:
  • the memory 501 is used to store computer programs
  • the processor 502 is configured to execute the computer program to implement the steps of any one of the virtual machine NUMA node scheduling methods described above.
  • the embodiment of the present application also discloses a computer-readable storage medium, and a computer program is stored in the computer-readable storage medium, and the computer program is used to implement any of the above when the computer program is executed by a processor.
  • the steps of the virtual machine NUMA node scheduling method are also disclosed.

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Stored Programmes (AREA)

Abstract

一种虚拟机的NUMA节点调度方法、装置、电子设备及计算机可读存储介质,该方法包括:为各个虚拟机分别确定对应的NUMA节点数量(S101);分别选择对应数量个NUMA节点初始分配给各个虚拟机(S102);监测NUMA集群中各个NUMA节点的CPU负载(S103);在NUMA节点的CPU负载超配时进行NUMA节点调度调整以均衡负载;其中,预设重要虚拟机所在NUMA节点的CPU负载超配阈值低于非预设重要虚拟机所在NUMA节点的CPU负载超配阈值(S104)。可有效实现集群内的负载均衡,改善NUMA集群的整体运行性能;此外,利用虚拟机的优先级机制,可更灵活方便地进行调度调整,满足用户对不同业务应用的不同性能需求。

Description

一种虚拟机的NUMA节点调度方法、装置、设备及介质
本申请要求于2019年12月18日提交中国专利局、申请号为201911312243.8、发明名称为“一种虚拟机的NUMA节点调度方法、装置、设备及介质”的中国专利申请的优先权,其全部内容通过引用结合在本申请中。
技术领域
本申请涉及虚拟机技术领域,特别涉及一种虚拟机的NUMA节点调度方法、装置、电子设备及计算机可读存储介质。
背景技术
虚拟机(Virtual Machine)是指通过软件模拟的具有完整硬件系统功能的、运行在一个完全隔离环境中的完整计算机系统。虚拟机的创建和使用基于物理机的硬件基础,需要将实体机的物理CPU、内存资源作为虚拟机的VCPU、内存。由此,虚拟机对硬件资源的调度是一个重要问题。然而,现有技术中对虚拟机的硬件资源调度方法往往存在一定的不足而无法满足用户日益丰富的需求。鉴于此,提供一种解决上述技术问题的方案,已经是本领域技术人员所亟需关注的。
发明内容
本申请的目的在于提供一种虚拟机的NUMA节点调度方法、装置、电子设备及计算机可读存储介质,以便根据不同虚拟机应用需求灵活、合理进行资源调度,满足用户需求。
为解决上述技术问题,第一方面,本申请公开了一种虚拟机的NUMA节点调度方法,包括:
为各个虚拟机分别确定对应的NUMA节点数量;
分别选择对应数量个NUMA节点初始分配给各个所述虚拟机;
监测NUMA集群中各个NUMA节点的CPU负载;
在NUMA节点的CPU负载超配时进行NUMA节点调度调整以均衡负 载;其中,预设重要虚拟机所在NUMA节点的CPU负载超配阈值低于非预设重要虚拟机所在NUMA节点的CPU负载超配阈值。
可选地,所述为各个虚拟机分别确定对应的NUMA节点数量,包括:
根据虚拟机的预设VCPU数与单节点CPU核数的大小关系,确定所述虚拟机对应的NUMA节点数量。
可选地,所述根据虚拟机的预设VCPU数与单节点CPU核数的大小关系,确定所述虚拟机对应的NUMA节点数量,包括:
判断所述预设VCPU数是否小于所述NUMA集群的总CPU核数;所述总CPU核数为所述单节点CPU核数与节点总数的乘积;
若是,则将所述预设VCPU数与所述单节点CPU核数的比值向上取整后确定为所述虚拟机对应的NUMA节点数量;
若否,则将所述节点总数确定为所述虚拟机对应的NUMA节点数量。
可选地,所述分别选择对应数量个NUMA节点初始分配给各个所述虚拟机,包括:
为虚拟机选择对应数量个NUMA节点;
对所述对应数量个NUMA节点的CPU和本地内存均进行配置以便供对应的虚拟机调用。
可选地,所述为虚拟机选择对应数量个NUMA节点,包括:
判断当前CPU负载最低的NUMA节点与其他NUMA节点的CPU负载的差值是否高于预设差值;
若是,则将当前CPU负载最低的NUMA节点划分给所述虚拟机;
若否,则将当前已承载VCPU数最少的NUMA节点划分给所述虚拟机;
重复执行所述判断当前CPU负载最低的NUMA节点与其他NUMA节点的CPU负载的差值是否高于预设差值及其后续步骤,直至为所述虚拟机划分的NUMA节点达到所述对应数量个。
可选地,所述进行NUMA节点调度调整,包括:
将CPU负载超配的NUMA节点作为待优化节点;
判断NUMA集群中是否存在可接收节点;所述可接收节点为在接收了 从所述待优化节点中迁移的虚拟机后CPU负载不超配的节点;
若存在可接收节点,则从所述待优化节点向所述可接收节点迁移虚拟机;
若不存在可接收节点,则判断所述NUMA集群中是否存在可交换节点;所述可交换节点为在与所述待优化节点交换虚拟机后CPU负载不超配的节点;
若存在可交换节点,则将所述待优化节点与所述可交换节点交换虚拟机。
可选地,所述从所述待优化节点向所述可接收节点迁移虚拟机,包括:
向没有承载预设重要虚拟机的CPU负载最低的可接收节点迁移虚拟机。
可选地,所述从所述待优化节点向所述可接收节点迁移虚拟机,包括:
将所述待优化节点中占用内存最小的虚拟机迁移至所述可接收节点;其中,向所述可接收节点迁移的虚拟机不包括承载在所有NUMA节点上的虚拟机。
可选地,当各个NUMA节点均承载有预设重要虚拟机时,向所述可接收节点迁移的虚拟机为非预设重要虚拟机。
可选地,预设重要虚拟机在NUMA节点中的CPU时间片权重高于本节点中的非预设重要虚拟机。
可选地,还包括:
当监测到使用大页内存的预设重要虚拟机时,将使用大页内存的预设重要虚拟机所在的NUMA节点作为重要节点;
对NUMA集群的预设重要服务进行隔离操作,以使所述预设重要服务运行在除所述重要节点以外的其他NUMA节点中。
第二方面,本申请还公开了一种虚拟机的NUMA节点调度装置,包括:
数量确定模块,用于为各个虚拟机分别确定对应的NUMA节点数量;
初始分配模块,用于分别选择对应数量个NUMA节点初始分配给各个所述虚拟机;
负载监测模块,用于监测NUMA集群中各个NUMA节点的CPU负载;
调度调整模块,用于在NUMA节点的CPU负载超配时进行NUMA节点调度调整以均衡负载;其中,预设重要虚拟机所在NUMA节点的CPU负载超配阈值低于非预设重要虚拟机所在NUMA节点的CPU负载超配阈值。
可选地,所述数量确定模块具体用于:根据虚拟机的预设VCPU数与单节点CPU核数的大小关系,确定所述虚拟机对应的NUMA节点数量。
可选地,所述数量确定模块具体用于:判断所述预设VCPU数是否小于所述NUMA集群的总CPU核数;所述总CPU核数为所述单节点CPU核数与节点总数的乘积;若是,则将所述预设VCPU数与所述单节点CPU核数的比值向上取整后确定为所述虚拟机对应的NUMA节点数量;若否,则将所述节点总数确定为所述虚拟机对应的NUMA节点数量。
可选地,所述初始分配模块具体用于:为虚拟机选择对应数量个NUMA节点;对所述对应数量个NUMA节点的CPU和本地内存均进行配置以便供对应的虚拟机调用。
可选地,所述初始分配模块具体用于:判断当前CPU负载最低的NUMA节点与其他NUMA节点的CPU负载的差值是否高于预设差值;若是,则将当前CPU负载最低的NUMA节点划分给所述虚拟机;若否,则将当前已承载VCPU数最少的NUMA节点划分给所述虚拟机;重复执行所述判断当前CPU负载最低的NUMA节点与其他NUMA节点的CPU负载的差值是否高于预设差值及其后续步骤,直至为所述虚拟机划分的NUMA节点达到所述对应数量个。
可选地,所述调度调整模块具体包括:
选择单元,用于将CPU负载超配的NUMA节点作为待优化节点;
第一判断单元,用于判断NUMA集群中是否存在可接收节点;所述可接收节点为在接收了从所述待优化节点中迁移的虚拟机后CPU负载不超配的节点;
迁移单元,用于在存在可接收节点时,从所述待优化节点向所述可接收节点迁移虚拟机;
第二判断单元,用于在不存在可接收节点时,判断所述NUMA集群中 是否存在可交换节点;所述可交换节点为在与所述待优化节点交换虚拟机后CPU负载不超配的节点;
交换单元,用于在存在可交换节点时,将所述待优化节点与所述可交换节点交换虚拟机。
可选地,所述迁移单元具体用于:向没有承载预设重要虚拟机的CPU负载最低的可接收节点迁移虚拟机。
可选地,所述迁移单元具体用于:将所述待优化节点中占用内存最小的虚拟机迁移至所述可接收节点;其中,向所述可接收节点迁移的虚拟机不包括承载在所有NUMA节点上的虚拟机。
可选地,当各个NUMA节点均承载有预设重要虚拟机时,向所述可接收节点迁移的虚拟机为非预设重要虚拟机。
可选地,预设重要虚拟机在NUMA节点中的CPU时间片权重高于本节点中的非预设重要虚拟机。
可选地,还包括隔离模块,用于在监测到使用大页内存的预设重要虚拟机时,将使用大页内存的预设重要虚拟机所在的NUMA节点作为重要节点;对NUMA集群的预设重要服务进行隔离操作,以使所述预设重要服务运行在除所述重要节点以外的其他NUMA节点中。
第三方面,本申请还公开了一种电子设备,包括:
存储器,用于存储计算机程序;
处理器,用于执行所述计算机程序以实现如上所述的任一种虚拟机的NUMA节点调度方法的步骤。
第四方面,本申请还公开了一种计算机可读存储介质,所述计算机可读存储介质中存储有计算机程序,所述计算机程序被处理器执行时用以实现如上所述的任一种虚拟机的NUMA节点调度方法的步骤。
本申请所提供的虚拟机的NUMA节点调度方法包括:为各个虚拟机分别确定对应的NUMA节点数量;分别选择对应数量个NUMA节点初始分配给各个所述虚拟机;监测NUMA集群中各个NUMA节点的CPU负载;在NUMA节点的CPU负载超配时进行NUMA节点调度调整以均衡负载;其中,预设重要虚拟机所在NUMA节点的CPU负载超配阈值低于非预设 重要虚拟机所在NUMA节点的CPU负载超配阈值。
可见,本申请基于对虚拟机NUMA节点的调度调整机制,可有效实现集群内的负载均衡,进而均衡和改善NUMA集群的整体运行性能;同时,本申请引入了虚拟机的优先级机制,在进行调度调整中可灵活方便地优先保障预设重要虚拟机所在节点的运行性能,满足用户对不同应用业务的性能需求,极大地便利了用户使用。本申请所提供的虚拟机的NUMA节点调度装置、电子设备及计算机可读存储介质同样具有上述有益效果。
附图说明
为了更清楚地说明现有技术和本申请实施例中的技术方案,下面将对现有技术和本申请实施例描述中需要使用的附图作简要的介绍。当然,下面有关本申请实施例的附图描述的仅仅是本申请中的一部分实施例,对于本领域普通技术人员来说,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图,所获得的其他附图也属于本申请的保护范围。
图1为本申请实施例公开的一种虚拟机的NUMA节点调度方法的流程图;
图2为本申请实施例公开的一种为虚拟机选择对应数量个NUMA节点的方法流程图;
图3为本申请实施例公开的一种进行NUMA节点初始分配的应用示例图;
图4为本申请实施例公开的一种进行NUMA节点调度调整的方法流程图;
图5为本申请实施例公开的一种虚拟机的NUMA节点调度装置的结构框图;
图6为本申请实施例公开的一种电子设备的结构框图。
具体实施方式
本申请的核心在于提供一种虚拟机的NUMA节点调度方法、装置、电子设备及计算机可读存储介质,以便根据不同虚拟机应用需求灵活、合理 进行资源调度,满足用户需求。
为了对本申请实施例中的技术方案进行更加清楚、完整地描述,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行介绍。显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
当前,现有技术中对虚拟机的硬件资源调度方法往往存在一定的不足而无法满足用户日益丰富的需求。例如,在某些特定业务场景中,用于执行一些特定重要任务的虚拟机可能需要较高的资源保障供应,而当前业界的Linux内核调度策略并不能做到这一点。鉴于此,本申请提供了一种虚拟机的NUMA节点调度方法,可有效解决上述问题。
参见图1所示,本申请实施例公开了一种虚拟机的NUMA节点调度方法,主要包括:
S101:为各个虚拟机分别确定对应的NUMA节点数量。
目前主流的服务器大都采用NUMA架构(Non-uniform memory access,非统一内存访问架构),用于承载构建虚拟机的服务器集群可称为NUMA集群。在一些具体应用场景中,从功能上来说,该NUMA集群可具体为超融合平台系统,即融合了存储、计算、网络等多功能的服务器集群。
需要说明的是,对于一个虚拟机,其每个VCPU即虚拟CPU均基于NUMA集群中的物理CPU实现,该物理CPU便构成了该虚拟机的一个NUMA节点。当然,除了CPU硬件以外,NUMA节点还包括内存硬件;为一个虚拟机分配NUMA节点的过程就是为其配置物理CPU和物理内存的过程。
还需说明的是,受制于实际应用情况,一个物理CPU可以只分配给一个虚拟机,并且可以进一步构建该虚拟机的一个或多个VCPU。一个物理CPU也可以同时分配给多个虚拟机,即为多个虚拟机同时提供硬件资源服务。
NUMA集群的硬件资源总数是固定的。在为各个虚拟机进行资源调度以分配NUMA节点时,可首先确定各个虚拟机所对应的NUMA节点数。 容易理解的是,用于执行不同任务的虚拟机所需使用的VCPU数是不同的,因此所需要的NUMA节点数也不一定相同。
S102:分别选择对应数量个NUMA节点初始分配给各个虚拟机。
对于一个虚拟机,在确定了与其对应的NUMA节点数量后,便可以基于NUMA集群的硬件资源为其进行节点分配。当虚拟机数量为多个时,可依次为各个虚拟机进行初始分配。
S103:监测NUMA集群中各个NUMA节点的CPU负载。
S104:在NUMA节点的CPU负载超配时进行NUMA节点调度调整以均衡负载。
其中,预设重要虚拟机所在NUMA节点的CPU负载超配阈值低于非预设重要虚拟机所在NUMA节点的CPU负载超配阈值。
需要说明的是,本申请实施例所提供的虚拟机的NUMA节点调度方法,在完成了对虚拟机的NUMA节点初始分配之后,还进一步进行了调度调整。具体地,考虑到不同虚拟机执行的任务不同,因而对NUMA节点的硬件资源占用情况不同,各NUMA节点之间有可能会出现负载不均衡的情况,因此有必要进行调度调整以均衡负载。
值得一提的是,本申请为了充分适应不同应用场景下的不同业务需求,而对执行不同任务的虚拟机进行来了优先级划分。具体地,根据用户的设置,一些被用于执行重要任务的虚拟机可享有较高的优先级,在资源调用等方面具有优势地位,称为预设重要虚拟机。除了这些预设重要虚拟机之外的其他虚拟机可称为非预设重要虚拟机。
当NUMA节点出现CPU负载超配时,便可进行NUMA节点调度调整。其中,超配是指NUMA节点的CPU负荷较重,当实际负荷超过CPU负载超配阈值时即为超配。对于某个超配的NUMA节点来说,调度调整可令该NUMA节点不再超配;而对于整个NUMA集群来说,调度调整则可以有效均衡集群整体的负载情况,平衡各NUMA节点的负荷与运行性能。
由于预设重要虚拟机的优先级较高,因此,本申请在进行负载均衡时,要优先保障预设重要虚拟机所在NUMA节点的运行性能,故而,预设重要虚拟机所在NUMA节点的CPU负载超配阈值可低于非预设重要虚拟机所 在NUMA节点的CPU负载超配阈值。
具体地,对于一个没有承载有预设重要虚拟机的NUMA节点来说,在没有超线程时,CPU负载超过其物理CPU核数的0.9倍可视为超配;在有超线程时,CPU负载超过其物理CPU核数的1.3倍可视为超配。
例如,对于具有14核CPU的NUMA节点,若没有超线程,则其CPU负载超过14*0.9=1260%即为超配;若有超线程,则其CPU负载超过14*1.3=1820%即为超配。
而对于承载有预设重要虚拟机的NUMA节点,其CPU负载超配阈值可均比上述同等情况下的阈值低,以便为预设重要虚拟机的运行提供相对较为有利的资源环境。
本申请实施例所提供的虚拟机的NUMA节点调度方法包括:为各个虚拟机分别确定对应的NUMA节点数量;分别选择对应数量个NUMA节点初始分配给各个虚拟机;监测NUMA集群中各个NUMA节点的CPU负载;在NUMA节点的CPU负载超配时进行NUMA节点调度调整以均衡负载;其中,预设重要虚拟机所在NUMA节点的CPU负载超配阈值低于非预设重要虚拟机所在NUMA节点的CPU负载超配阈值。
可见,本申请基于对虚拟机NUMA节点的调度调整机制,可有效实现集群内的负载均衡,进而均衡和改善NUMA集群的整体运行性能;同时,本申请引入了虚拟机的优先级机制,在进行调度调整中可灵活方便地优先保障预设重要虚拟机所在节点的运行性能,满足用户对不同应用业务的性能需求,极大地便利了用户使用。
作为一种具体实施例,在步骤S101中确定虚拟机对应的NUMA节点数量时,可具体根据虚拟机的预设VCPU数与单节点CPU核数的大小关系来确定虚拟机对应的NUMA节点数量。一般,各NUMA节点的配置如CPU核数等是相同的。
具体地,对于一个虚拟机,可判断该虚拟机的预设VCPU数是否小于NUMA集群的总CPU核数;其中,总CPU核数为单节点CPU核数与节点总数的乘积。若是,则可将预设VCPU数与单节点CPU核数的比值向 上取整后确定为虚拟机对应的NUMA节点数量;若否,则可将节点总数确定为虚拟机对应的NUMA节点数量,此时可将VCPU数平分到每个NUMA节点。
例如,若某个虚拟机的VCPU数大于单个NUMA节点的CPU核数而小于2个NUMA节点的CPU核数,则对应数量即为2,即可为该虚拟机选择2个NUMA节点,并且可进一步将该虚拟机所需的VCPU平均分配到这2个NUMA节点。
作为一种具体实施例,本申请实施例所提供的虚拟机的NUMA节点调度方法中,步骤S102即分别选择对应数量个NUMA节点初始分配给各个虚拟机,可具体包括:为虚拟机选择对应数量个NUMA节点;对对应数量个NUMA节点的CPU和本地内存均进行配置以便供对应的虚拟机调用。
如前,当前业界服务器多采用NUMA架构,在NUMA架构中内存访问时间取决于处理器的内存位置,CPU访问本节点本地内存的速度比非本地内存快一些,远地内存的访问势必会影响访问速度。由此,在本实施例中,在为虚拟机初步分配NUMA节点时,具体可将同一节点的CPU与内存资源配置给该虚拟机,以便避免因远地内存访问而影响访问效率。
其中,为虚拟机选择对应数量个NUMA节点的过程可具体参考图2,主要包括:
S201:判断当前CPU负载最低的NUMA节点与其他NUMA节点的CPU负载的差值是否高于预设差值;若是,则进入S202;若否,则进入S203。
S202:将当前CPU负载最低的NUMA节点划分给虚拟机;进入S204。
S203:将当前已承载VCPU数最少的NUMA节点划分给虚拟机;进入S204。
本实施例中在为虚拟机初始选择NUMA节点时具体考虑了NUMA节点的当前负荷情况,以便实现对NUMA集群的负荷均衡。具体地,在每一次为虚拟机选择NUMA节点时,可选择当前CPU负载最低的NUMA节点。但是,若NUMA节点间的CPU负载相差不大,即不高于预设差值,此时是否选择CPU负载最低的NUMA节点都相差不大,因此可选择当前已承 载VCPU数最少的NUMA节点。其中,预设差值可具体为5%。
S204:判断为虚拟机划分的NUMA节点是否达到对应数量个;若否,则进入S201。
通过重复执行步骤S201-S203,不断为虚拟机选择NUMA节点,直至达到对应数量个。
参见图3所示,图3为本申请实施例提供的一种进行NUMA节点初始分配的应用示例图。具体地,图3示出了4个虚拟机,其VCPU数依次是8、14、30、18。假设当前的NUMA集群中有2个NUMA节点,每个NUMA节点的CPU核数均为14。
在图3所示出的一种初始分配方法中,对于虚拟机VM1,其VCPU数(8)小于14,因此可全部划分至NUMA1节点;对于虚拟机VM2,其VCPU数(14)等于14,因此可全部划分至NUMA0节点;对于虚拟机VM3,其VCPU数(30)大于总CPU核数(28),因此可平分至NUMA0节点和NUMA1节点,每个节点为虚拟机VM3承载15个VCPU;对于虚拟机VM4,其VCPU数(18)大于14而小于总CPU核数(28),因此可同样平分至NUMA0节点和NUMA1节点,每个节点为虚拟机VM4承载9个VCPU。
作为一种具体实施例,步骤104中进行NUMA节点调度调整的过程可具体参考图4,主要包括:
S301:将CPU负载超配的NUMA节点作为待优化节点。
S302:判断NUMA集群中是否存在可接收节点;若是,则进入S303;若否,则进入S304。
其中,可接收节点为在接收了从待优化节点中迁移的虚拟机后CPU负载不超配的节点。
具体地,如果集群中存在有不超配的NUMA节点,并且通过向该不超配的NUMA节点迁移虚拟机后可使该节点与待优化节点均不超配,则可将该节点确定为可接收节点,即用于接收从待优化节点中迁移出的虚拟机的节点。
S303:从待优化节点向可接收节点迁移虚拟机。
作为一种具体实施例,可具体向没有承载预设重要虚拟机的CPU负载最低的可接收节点迁移虚拟机。具体地,在从待优化节点向可接收节点迁移虚拟机时,若可接收节点为多个,则可优选从没有承载预设重要虚拟机的可接收节点中,选择CPU负载最低的节点进行虚拟机迁移。
作为一种具体实施例,可具体将待优化节点中占用内存最小的虚拟机迁移至可接收节点;其中,向可接收节点迁移的虚拟机不包括承载在所有NUMA节点上的虚拟机。
具体地,由于内存过大的虚拟机的迁移较为繁琐,且将占用可接收节点较多的资源,因此,本实施例优选迁移占用内存最小的虚拟机。
此外,在选择待迁移的虚拟机时,除了考虑内存占用大小,还可以考虑虚拟机在NUMA节点中年的分布情况。出于业务安全性考虑,一个虚拟机的VCPU应当尽可能多地分布在不同NUMA节点上,因此,若一个虚拟机因VCPU数较大而承载在所有的NUMA节点上时,则在选择待迁移的虚拟机时可忽略该虚拟机。
除此之外,在选择待迁移虚拟机时还可以考虑虚拟机的优先级。作为一种具体实施例,当各个NUMA节点均承载有预设重要虚拟机时,向可接收节点迁移的虚拟机为非预设重要虚拟机。具体地,由于预设重要虚拟机所执行的任务较为重要,不建议频繁迁移,因此,在该情况下可从非预设重要虚拟机中选择待迁移虚拟机。
S304:判断NUMA集群中是否存在可交换节点;若是,则进入S305。
其中,可交换节点为在与待优化节点交换虚拟机后CPU负载不超配的节点。
具体地,如果集群中存在有某个不超配的NUMA节点,令待优化节点与该不超配的NUMA节点交换虚拟机后可使该节点与待优化节点均不超配,则可将该节点确定为可交换节点,即用于与待优化节点中交换虚拟机的节点。
S305:将待优化节点与可交换节点交换虚拟机。
由于不同虚拟机需占用的资源不同,因此可通过交换不同虚拟机的方式来实现对待优化节点、可交换节点的性能均衡。因此在进行虚拟机交换 时,可将待优化节点中占用内存较大的虚拟机与可交换节点中占用内存较小的虚拟机进行交换。容易理解的是,当可交换节点为多个时,其选择依据可参考可接收节点的选择依据。
此外,还需说明的是,当上述可接收节点、可交换节点均不存在时,可可优先保障承载有预设重要虚拟机的NUMA节点不超配,而允许没有承载预设重要虚拟机的NUMA节点超配。
例如,当某个承载有预设重要虚拟机的NUMA节点超配时,若上述可接收节点、可交换节点均不存在,则可依然选择一个没有承载有预设重要虚拟机的NUMA节点进行虚拟机迁移操作或者交换操作,以便确保该承载有预设重要虚拟机的NUMA节点不超配,至于用于接收或者交换虚拟机的另一个NUMA节点,则可允许在迁移或者交换虚拟机后出现超配情况。
作为一种具体实施例,在上述内容的基础上,本申请实施例所提供的虚拟机的NUMA节点调度方法中,预设重要虚拟机在NUMA节点中的CPU时间片权重高于本节点中的非预设重要虚拟机。
具体地,除了在NUMA节点调度调整时对预设重要虚拟机所在节点进行优先保障,本实施例还可以在对物理CPU的使用中对预设重要虚拟机进行优先保障。当一个NUMA节点被分配给多个虚拟机时,不同虚拟机的VCPU线程需要根据时间片分时调用该NUMA节点的物理CPU资源。如此,为了充分优化预设重要虚拟机的运行环境,可将预设重要虚拟机的CPU时间片权重设置为较高的数值,令其高于同节点中非预设重要虚拟机的CPU时间片权重。
作为一种具体实施例,在上述内容的基础上,本申请实施例所提供的虚拟机的NUMA节点调度方法,还可以进一步对某些预设重要虚拟机提供特定的资源保障:当监测到使用大页内存的预设重要虚拟机时,将使用大页内存的预设重要虚拟机所在的NUMA节点作为重要节点;对NUMA集群的预设重要服务进行隔离操作,以使预设重要服务运行在除重要节点以外的其他NUMA节点中。
具体地,一些体系较大的预设重要虚拟机所占用的内存资源较大,因此可能会使用大页内存(large page memory)。相比于一些普通虚拟机使用的 2kB的普通内存,大页内存在4kB以上,甚至可达到GB数量级。
因为NUMA集群中的一些预设重要服务往往也需要占用一定的硬件资源,如存储服务、管理服务等,因此,为了保障这类预设重要虚拟机的顺利运行,可将这些预设重要服务隔离至其他节点中,以防止与该预设重要虚拟机竞争节点硬件资源。如此既可以保障集群服务的正常运转,又可以保障该预设重要虚拟机的计算性能,进而可最大程度地提升集群业务性能。
参见图5所示,本申请实施例公开了一种虚拟机的NUMA节点调度装置,主要包括:
数量确定模块401,用于为各个虚拟机分别确定对应的NUMA节点数量;
初始分配模块402,用于分别选择对应数量个NUMA节点初始分配给各个虚拟机;
负载监测模块403,用于监测NUMA集群中各个NUMA节点的CPU负载;
调度调整模块404,用于在NUMA节点的CPU负载超配时进行NUMA节点调度调整以均衡负载;其中,预设重要虚拟机所在NUMA节点的CPU负载超配阈值低于非预设重要虚拟机所在NUMA节点的CPU负载超配阈值。
可见,本申请实施例所公开的虚拟机的NUMA节点调度装置,基于对虚拟机NUMA节点的调度调整机制,可有效实现集群内的负载均衡,进而均衡和改善NUMA集群的整体运行性能;同时,本申请引入了虚拟机的优先级机制,在进行调度调整中可灵活方便地优先保障预设重要虚拟机所在节点的运行性能,满足用户对不同应用业务的性能需求,极大地便利了用户使用。
关于上述虚拟机的NUMA节点调度装置的具体内容,可参考前述关于虚拟机的NUMA节点调度方法的详细介绍,这里就不再赘述。
在一种具体实施方式中,本申请实施例所公开的虚拟机的NUMA节点调度装置在上述内容的基础上,数量确定模块401具体用于:根据虚拟机的预设VCPU数与单节点CPU核数的大小关系,确定虚拟机对应的NUMA节点数量。
在一种具体实施方式中,本申请实施例所公开的虚拟机的NUMA节点调度装置在上述内容的基础上,数量确定模块401具体用于:判断预设VCPU数是否小于NUMA集群的总CPU核数;总CPU核数为单节点CPU核数与节点总数的乘积;若是,则将预设VCPU数与单节点CPU核数的比值向上取整后确定为虚拟机对应的NUMA节点数量;若否,则将节点总数确定为虚拟机对应的NUMA节点数量。
在一种具体实施方式中,本申请实施例所公开的虚拟机的NUMA节点调度装置在上述内容的基础上,初始分配模块402具体用于:为虚拟机选择对应数量个NUMA节点;对对应数量个NUMA节点的CPU和本地内存均进行配置以便供对应的虚拟机调用。
在一种具体实施方式中,本申请实施例所公开的虚拟机的NUMA节点调度装置在上述内容的基础上,初始分配模块402具体用于:判断当前CPU负载最低的NUMA节点与其他NUMA节点的CPU负载的差值是否高于预设差值;若是,则将当前CPU负载最低的NUMA节点划分给虚拟机;若否,则将当前已承载VCPU数最少的NUMA节点划分给虚拟机;重复执行判断当前CPU负载最低的NUMA节点与其他NUMA节点的CPU负载的差值是否高于预设差值及其后续步骤,直至为虚拟机划分的NUMA节点达到对应数量个。
在一种具体实施方式中,本申请实施例所公开的虚拟机的NUMA节点调度装置在上述内容的基础上,调度调整模块404具体包括:
选择单元,用于将CPU负载超配的NUMA节点作为待优化节点;
第一判断单元,用于判断NUMA集群中是否存在可接收节点;可接收节点为在接收了从待优化节点中迁移的虚拟机后CPU负载不超配的节点;
迁移单元,用于在存在可接收节点时,从待优化节点向可接收节点迁移虚拟机;
第二判断单元,用于在不存在可接收节点时,判断NUMA集群中是否存在可交换节点;可交换节点为在与待优化节点交换虚拟机后CPU负载不超配的节点;
交换单元,用于在存在可交换节点时,将待优化节点与可交换节点交换虚拟机。
在一种具体实施方式中,本申请实施例所公开的虚拟机的NUMA节点调度装置在上述内容的基础上,迁移单元具体用于:向没有承载预设重要虚拟机的CPU负载最低的可接收节点迁移虚拟机。
在一种具体实施方式中,本申请实施例所公开的虚拟机的NUMA节点调度装置在上述内容的基础上,迁移单元具体用于:将待优化节点中占用内存最小的虚拟机迁移至可接收节点;其中,向可接收节点迁移的虚拟机不包括承载在所有NUMA节点上的虚拟机。
在一种具体实施方式中,本申请实施例所公开的虚拟机的NUMA节点调度装置在上述内容的基础上,当各个NUMA节点均承载有预设重要虚拟机时,向可接收节点迁移的虚拟机为非预设重要虚拟机。
在一种具体实施方式中,本申请实施例所公开的虚拟机的NUMA节点调度装置在上述内容的基础上,预设重要虚拟机在NUMA节点中的CPU时间片权重高于本节点中的非预设重要虚拟机。
在一种具体实施方式中,本申请实施例所公开的虚拟机的NUMA节点调度装置在上述内容的基础上,还包括:
隔离模块,用于在监测到使用大页内存的预设重要虚拟机时,将使用大页内存的预设重要虚拟机所在的NUMA节点作为重要节点;对NUMA集群的预设重要服务进行隔离操作,以使预设重要服务运行在除重要节点以外的其他NUMA节点中。
参见图6所示,本申请实施例公开了一种电子设备,包括:
存储器501,用于存储计算机程序;
处理器502,用于执行所述计算机程序以实现如上所述的任一种虚拟机的NUMA节点调度方法的步骤。
进一步地,本申请实施例还公开了一种计算机可读存储介质,所述计算机可读存储介质中存储有计算机程序,所述计算机程序被处理器执行时用以实现如上所述的任一种虚拟机的NUMA节点调度方法的步骤。
关于上述电子设备和计算机可读存储介质的具体内容,可参考前述关于虚拟机的NUMA节点调度方法的详细介绍,这里就不再赘述。
本申请中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。对于实施例公开的设备而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。
还需说明的是,在本申请文件中,诸如“第一”和“第二”之类的关系术语,仅仅用来将一个实体或者操作与另一个实体或者操作区分开来,而不一定要求或者暗示这些实体或者操作之间存在任何这种实际的关系或者顺序。此外,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
以上对本申请所提供的技术方案进行了详细介绍。本文中应用了具体个例对本申请的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本申请的方法及其核心思想。应当指出,对于本技术领域的普通技术人员来说,在不脱离本申请原理的前提下,还可以对本申请进行若干改进和修饰,这些改进和修饰也落入本申请的保护范围内。

Claims (14)

  1. 一种虚拟机的NUMA节点调度方法,其特征在于,包括:
    为各个虚拟机分别确定对应的NUMA节点数量;
    分别选择对应数量个NUMA节点初始分配给各个所述虚拟机;
    监测NUMA集群中各个NUMA节点的CPU负载;
    在NUMA节点的CPU负载超配时进行NUMA节点调度调整以均衡负载;其中,预设重要虚拟机所在NUMA节点的CPU负载超配阈值低于非预设重要虚拟机所在NUMA节点的CPU负载超配阈值。
  2. 根据权利要求1所述的虚拟机的NUMA节点调度方法,其特征在于,所述为各个虚拟机分别确定对应的NUMA节点数量,包括:
    根据虚拟机的预设VCPU数与单节点CPU核数的大小关系,确定所述虚拟机对应的NUMA节点数量。
  3. 根据权利要求2所述的虚拟机的NUMA节点调度方法,其特征在于,所述根据虚拟机的预设VCPU数与单节点CPU核数的大小关系,确定所述虚拟机对应的NUMA节点数量,包括:
    判断所述预设VCPU数是否小于所述NUMA集群的总CPU核数;所述总CPU核数为所述单节点CPU核数与节点总数的乘积;
    若是,则将所述预设VCPU数与所述单节点CPU核数的比值向上取整后确定为所述虚拟机对应的NUMA节点数量;
    若否,则将所述节点总数确定为所述虚拟机对应的NUMA节点数量。
  4. 根据权利要求1所述的虚拟机的NUMA节点调度方法,其特征在于,所述分别选择对应数量个NUMA节点初始分配给各个所述虚拟机,包括:
    为虚拟机选择对应数量个NUMA节点;
    对所述对应数量个NUMA节点的CPU和本地内存均进行配置以便供对应的虚拟机调用。
  5. 根据权利要求4所述的虚拟机的NUMA节点调度方法,其特征在于,所述为虚拟机选择对应数量个NUMA节点,包括:
    判断当前CPU负载最低的NUMA节点与其他NUMA节点的CPU负 载的差值是否高于预设差值;
    若是,则将当前CPU负载最低的NUMA节点划分给所述虚拟机;
    若否,则将当前已承载VCPU数最少的NUMA节点划分给所述虚拟机;
    重复执行所述判断当前CPU负载最低的NUMA节点与其他NUMA节点的CPU负载的差值是否高于预设差值及其后续步骤,直至为所述虚拟机划分的NUMA节点达到所述对应数量个。
  6. 根据权利要求1所述的虚拟机的NUMA节点调度方法,其特征在于,所述进行NUMA节点调度调整,包括:
    将CPU负载超配的NUMA节点作为待优化节点;
    判断NUMA集群中是否存在可接收节点;所述可接收节点为在接收了从所述待优化节点中迁移的虚拟机后CPU负载不超配的节点;
    若存在可接收节点,则从所述待优化节点向所述可接收节点迁移虚拟机;
    若不存在可接收节点,则判断所述NUMA集群中是否存在可交换节点;所述可交换节点为在与所述待优化节点交换虚拟机后CPU负载不超配的节点;
    若存在可交换节点,则将所述待优化节点与所述可交换节点交换虚拟机。
  7. 根据权利要求6所述的虚拟机的NUMA节点调度方法,其特征在于,所述从所述待优化节点向所述可接收节点迁移虚拟机,包括:
    向没有承载预设重要虚拟机的CPU负载最低的可接收节点迁移虚拟机。
  8. 根据权利要求6所述的虚拟机的NUMA节点调度方法,其特征在于,所述从所述待优化节点向所述可接收节点迁移虚拟机,包括:
    将所述待优化节点中占用内存最小的虚拟机迁移至所述可接收节点;其中,向所述可接收节点迁移的虚拟机不包括承载在所有NUMA节点上的虚拟机。
  9. 根据权利要求6所述的虚拟机的NUMA节点调度方法,其特征在 于,当各个NUMA节点均承载有预设重要虚拟机时,向所述可接收节点迁移的虚拟机为非预设重要虚拟机。
  10. 根据权利要求1至9任一项所述的虚拟机的NUMA节点调度方法,其特征在于,预设重要虚拟机在NUMA节点中的CPU时间片权重高于本节点中的非预设重要虚拟机。
  11. 根据权利要求10所述的虚拟机的NUMA节点调度方法,其特征在于,还包括:
    当监测到使用大页内存的预设重要虚拟机时,将使用大页内存的预设重要虚拟机所在的NUMA节点作为重要节点;
    对NUMA集群的预设重要服务进行隔离操作,以使所述预设重要服务运行在除所述重要节点以外的其他NUMA节点中。
  12. 一种虚拟机的NUMA节点调度装置,其特征在于,包括:
    数量确定模块,用于为各个虚拟机分别确定对应的NUMA节点数量;
    初始分配模块,用于分别选择对应数量个NUMA节点初始分配给各个所述虚拟机;
    负载监测模块,用于监测NUMA集群中各个NUMA节点的CPU负载;
    调度调整模块,用于在NUMA节点的CPU负载超配时进行NUMA节点调度调整以均衡负载;其中,预设重要虚拟机所在NUMA节点的CPU负载超配阈值低于非预设重要虚拟机所在NUMA节点的CPU负载超配阈值。
  13. 一种电子设备,其特征在于,包括:
    存储器,用于存储计算机程序;
    处理器,用于执行所述计算机程序以实现如权利要求1至11任一项所述的虚拟机的NUMA节点调度方法的步骤。
  14. 一种计算机可读存储介质,其特征在于,所述计算机可读存储介质中存储有计算机程序,所述计算机程序被处理器执行时用以实现如权利要求1至11任一项所述的虚拟机的NUMA节点调度方法的步骤。
PCT/CN2020/135170 2019-12-18 2020-12-10 一种虚拟机的numa节点调度方法、装置、设备及介质 WO2021121115A1 (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
EP20901953.8A EP4080357A4 (en) 2019-12-18 2020-12-10 VIRTUAL MACHINE NUMA NODE SCHEDULING METHOD AND APPARATUS, AND DEVICE AND MEDIUM

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
CN201911312243.8A CN111078363B (zh) 2019-12-18 2019-12-18 一种虚拟机的numa节点调度方法、装置、设备及介质
CN201911312243.8 2019-12-18

Publications (1)

Publication Number Publication Date
WO2021121115A1 true WO2021121115A1 (zh) 2021-06-24

Family

ID=70315818

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/CN2020/135170 WO2021121115A1 (zh) 2019-12-18 2020-12-10 一种虚拟机的numa节点调度方法、装置、设备及介质

Country Status (3)

Country Link
EP (1) EP4080357A4 (zh)
CN (1) CN111078363B (zh)
WO (1) WO2021121115A1 (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN116471273A (zh) * 2023-04-18 2023-07-21 广州智臣信息科技有限公司 一种跨网数据交换系统的负载均衡实现方法
CN117236822A (zh) * 2023-11-10 2023-12-15 合肥晶合集成电路股份有限公司 智能派货方法、装置、设备及介质

Families Citing this family (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111078363B (zh) * 2019-12-18 2024-02-23 深信服科技股份有限公司 一种虚拟机的numa节点调度方法、装置、设备及介质
CN112052072B (zh) * 2020-09-10 2022-06-28 华云数据控股集团有限公司 一种虚拟机的调度策略及超融合系统
CN112130961B (zh) * 2020-09-29 2023-08-25 中国工商银行股份有限公司 基于numa架构的容器绑定方法及系统
CN112181595A (zh) * 2020-10-10 2021-01-05 济南浪潮数据技术有限公司 虚拟机的numa节点绑定方法、装置、设备及存储介质
CN113590313B (zh) * 2021-07-08 2024-02-02 杭州网易数之帆科技有限公司 负载均衡方法、装置、存储介质和计算设备
CN113242266B (zh) * 2021-07-12 2021-11-30 深圳市永达电子信息股份有限公司 一种基于nfv的动态入侵检测方法和系统
CN114500544A (zh) * 2022-01-23 2022-05-13 山东云海国创云计算装备产业创新中心有限公司 一种节点间负载均衡方法、系统、设备以及介质
CN115269120A (zh) * 2022-08-01 2022-11-01 江苏安超云软件有限公司 虚拟机的numa节点调度方法、装置、设备及存储介质
CN117032941B (zh) * 2023-10-09 2023-12-01 南京翼辉信息技术有限公司 一种基于众核处理器的实时任务调度系统及其控制方法

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101488098A (zh) * 2009-02-13 2009-07-22 华中科技大学 基于虚拟计算技术的多核计算资源管理系统
CN101593134A (zh) * 2009-06-29 2009-12-02 北京航空航天大学 虚拟机cpu资源分配方法和装置
CN109471702A (zh) * 2018-11-15 2019-03-15 郑州云海信息技术有限公司 一种虚拟机的管理方法和装置
CN111078363A (zh) * 2019-12-18 2020-04-28 深信服科技股份有限公司 一种虚拟机的numa节点调度方法、装置、设备及介质

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101971682B (zh) * 2008-03-14 2013-12-25 艾利森电话股份有限公司 用于优先化信道分配的方法和装置
CN103957231B (zh) * 2014-03-18 2015-08-26 成都盛思睿信息技术有限公司 一种云计算平台下的虚拟机分布式任务调度方法

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101488098A (zh) * 2009-02-13 2009-07-22 华中科技大学 基于虚拟计算技术的多核计算资源管理系统
CN101593134A (zh) * 2009-06-29 2009-12-02 北京航空航天大学 虚拟机cpu资源分配方法和装置
CN109471702A (zh) * 2018-11-15 2019-03-15 郑州云海信息技术有限公司 一种虚拟机的管理方法和装置
CN111078363A (zh) * 2019-12-18 2020-04-28 深信服科技股份有限公司 一种虚拟机的numa节点调度方法、装置、设备及介质

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
See also references of EP4080357A4

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN116471273A (zh) * 2023-04-18 2023-07-21 广州智臣信息科技有限公司 一种跨网数据交换系统的负载均衡实现方法
CN116471273B (zh) * 2023-04-18 2023-10-20 广州智臣信息科技有限公司 一种跨网数据交换系统的负载均衡实现方法
CN117236822A (zh) * 2023-11-10 2023-12-15 合肥晶合集成电路股份有限公司 智能派货方法、装置、设备及介质
CN117236822B (zh) * 2023-11-10 2024-01-30 合肥晶合集成电路股份有限公司 智能派货方法、装置、设备及介质

Also Published As

Publication number Publication date
CN111078363B (zh) 2024-02-23
EP4080357A1 (en) 2022-10-26
EP4080357A4 (en) 2023-12-06
CN111078363A (zh) 2020-04-28

Similar Documents

Publication Publication Date Title
WO2021121115A1 (zh) 一种虚拟机的numa节点调度方法、装置、设备及介质
EP3507692B1 (en) Resource oversubscription based on utilization patterns in computing systems
EP3252608B1 (en) Node system, server device, scaling control method, and program
JP4519098B2 (ja) 計算機の管理方法、計算機システム、及び管理プログラム
EP3073373B1 (en) Method for interruption affinity binding of virtual network interface card, and computer device
CN106133693B (zh) 虚拟机的迁移方法、装置及设备
EP3253027B1 (en) Resource allocation method and apparatus for virtual machines
CN111796908B (zh) 一种资源自动弹性伸缩的系统、方法及云平台
CN107122233B (zh) 一种面向tsn业务的多vcpu自适应实时调度方法
CN108132827B (zh) 一种网络切片资源映射方法、相关设备及系统
CN110221920B (zh) 部署方法、装置、存储介质及系统
WO2015101091A1 (zh) 一种分布式资源调度方法及装置
WO2015027771A1 (zh) 一种虚拟机的资源配置方法和通信设备
CN106681839B (zh) 弹性计算动态分配方法
KR20130019698A (ko) 사용자 스케줄러와 마이그레이션(Migration)을 통한 자원 최적화 방법 및 시스템
US20200394071A1 (en) Systems and methods for cluster resource balancing in a hyper-converged infrastructure
WO2014082442A1 (zh) 虚拟机调度方法和设备
CN113326097A (zh) 一种虚拟机限速方法、装置、设备和计算机存储介质
CN109960579B (zh) 一种调整业务容器的方法及装置
US20200272526A1 (en) Methods and systems for automated scaling of computing clusters
WO2018137363A1 (zh) 一种用于调整虚拟机加速能力的加速能力调整方法及装置
TW201327205A (zh) 硬體效能的管理方法及雲端運算系統
CN106325972B (zh) 一种虚拟机管理方法及网络设备
Ekane et al. FlexVF: Adaptive network device services in a virtualized environment
Wu et al. iShare: Balancing I/O performance isolation and disk I/O efficiency in virtualized environments

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 20901953

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: DE

ENP Entry into the national phase

Ref document number: 2020901953

Country of ref document: EP

Effective date: 20220718