Instance scheduling method, management platform, and cluster

Through the management platform, the instance operation data and resource scheduling problem is solved, and the QoS in the same physical machine is consistent, the QoS consistency in the instance group is achieved, and resource utilization and task execution efficiency are improved.

WO2025167020A1PCT designated stage Publication Date: 2025-08-14HUAWEI CLOUD COMPUTING TECHNOLOGIES CO LTD
View PDF 4 Cites 0 Cited by

Patent Information

Application Number
PCT/CN2024/109753
Authority / Receiving Office
WO · WO
Patent Type
Applications
Current Assignee / Owner
Priority Date
2024-05-09
Filing Date
2024-08-05
Publication Date
2025-08-14

AI Technical Summary

Technical Problem

Multiple instances deployed in the same physical machine share physical resources, resulting in inconsistent quality of service (QoS) of their tasks, resulting in extended time to complete distributed tasks and reduced resource utilization.

Method used

The management platform obtains the operation data of the instance execution tasks, identifies key resources, and performs resource scheduling to make the QoS of the instances in the same instance group consistent, including migrating the instance to physical machines with more resource availability or migrating out of the instances with competing resources to improve QoS consistency.

Benefits of technology

It realizes synchronous execution of instance tasks in the same instance group, avoids resource waste, and improves resource utilization and task execution efficiency.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN2024109753_14082025_PF_FP_ABST
    Figure CN2024109753_14082025_PF_FP_ABST
Patent Text Reader

Abstract

Provided in the present application are an instance scheduling method, a management platform, and a cluster. The method comprises: acquiring running data of each instance in an instance group during task execution, wherein the instance group comprises at least two instances among a plurality of instances; on the basis of the running data of each instance in the instance group during task execution, obtaining the quality of service (QoS) of each instance during task execution; and when the QoS of a first instance in the instance group during task execution is inconsistent with the QoS of a second instance during task execution, performing resource scheduling on the first instance, such that the QoS of the first instance during task execution is consistent with the QoS of the second instance during task execution, wherein the second instance is any instance in the instance group excluding the first instance. The method can ensure the consistency of QoS of instances in the same instance group during task execution, and can improve the resource utilization rate.
Need to check novelty before this filing date? Find Prior Art

Description

Instance scheduling method, management platform and cluster

[0001] This application claims priority to the Chinese patent application filed with the State Intellectual Property Office of China on February 6, 2024, with application number 202410171922.2 and application name “A method and device for ensuring the performance stability of a virtual machine group”, and the Chinese patent application filed with the State Intellectual Property Office of China on May 9, 2024, with application number 202410580500.0 and application name “A method, management platform and cluster for instance scheduling”, all contents of which are incorporated by reference into this application. Technical Field

[0002] The present application relates to the field of computer technology, and in particular to an instance scheduling method, a management platform, and a cluster. Background Art

[0003] With the development of virtualization technology, multiple instances can be deployed on the same physical machine to improve resource utilization. Multiple instances on the same physical machine share the physical resources provided by the physical machine, which inevitably results in the physical resources available to the instance being affected by other instances on the same physical machine.

[0004] Users typically purchase a group of instances with the same specifications. This group includes at least two instances, each used to execute different subtasks within a distributed task, to achieve higher task execution efficiency. Different instances within the group may be distributed across different physical machines, resulting in different physical resources available to different instances within the group, and thus different Quality of Service (QoS) for executing tasks.

[0005] The completion time of a distributed task depends on how long it takes the instance with the lowest QoS to execute the corresponding task. Therefore, if different instances in an instance group have inconsistent QoS when executing tasks, the distributed task completion time will be longer. Furthermore, instances with higher QoS may complete their tasks faster, but they must wait until the distributed task completes before executing the next task. This long distributed task completion time causes instances with higher QoS to remain in a waiting state for extended periods, reducing resource utilization.

[0006] Summary of the Invention

[0007] This application provides an instance scheduling method, management platform and cluster, which can ensure the consistency of QoS of instance execution tasks in the same instance group and improve resource utilization.

[0008] In a first aspect, an instance scheduling method is provided, which is applied to a management platform, the management platform being used to manage multiple instances deployed in an infrastructure, the infrastructure including at least one data center, each data center including multiple physical machines; wherein each of the multiple instances is deployed in at least one physical machine in the infrastructure, the method comprising: obtaining operating data of each instance in an instance group when performing a task, the instance group including at least two instances among the multiple instances; obtaining a quality of service (QoS) of the instance execution task based on the operating data of each instance in the instance group when performing the task; when the QoS of a first instance in the instance group performing a task is inconsistent with the QoS of a second instance performing a task, performing resource scheduling on the first instance so that the QoS of the first instance performing the task is consistent with the QoS of the second instance performing the task; wherein the second instance is an instance in the instance group other than the first instance.

[0009] The tasks executed by instances in the same instance group are often related. If the QoS of tasks executed by different instances is inconsistent, it may happen that one or more instances complete the task first, while other instances have not completed the task for a long time. The instances that complete the task first need to wait for the instances that complete the task later, resulting in resource waste of the instances that complete the task first.

[0010] When the QoS of tasks executed by instances in the same instance group are inconsistent, this method performs resource scheduling on the instances in the instance group to make the QoS of tasks executed by the instances in the instance group consistent, so that different instances in the same instance group can execute tasks synchronously, avoiding mutual waiting between instances, thus avoiding resource waste and improving resource utilization.

[0011] In one possible implementation, different instances in an instance group execute different subtasks of the same task. The task's results are only available after all subtasks have completed. By ensuring consistent QoS for tasks executed by instances in an instance group, these subtasks can be completed synchronously or nearly synchronously, improving resource utilization.

[0012] In a possible implementation, the inconsistency between the QoS of the first instance executing the task and the QoS of the second instance executing the task in the instance group includes: the QoS of the first instance executing the task is smaller than the QoS of the second instance executing the task.

[0013] In this implementation, resources are scheduled for instances with low QoS, improving their QoS to ensure consistent QoS across all instances in the instance group. This improves resource utilization while reducing the time required for the instance group to complete tasks, ultimately increasing task execution efficiency.

[0014] In a possible implementation, performing resource scheduling on the first instance includes: identifying key resources that affect QoS of tasks executed by the first instance; and performing resource scheduling on the first instance based on the key resources.

[0015] In this implementation, scheduling resources that affect the instance QoS can effectively change the instance QoS, thereby efficiently ensuring the consistency of the QoS of the instances in the instance group.

[0016] In one possible implementation, resource scheduling is performed on the first instance based on key resources, including migrating the first instance from the current physical machine to the target physical machine; wherein the available amount of key resources in the target physical machine is greater than the available amount of key resources in the current physical machine.

[0017] Migrating the first instance to a physical machine with more available key resources ensures the supply of key resources for the first instance, thereby effectively improving the QoS of the first instance.

[0018] In a possible implementation, resource scheduling is performed on the first instance based on key resources, including migrating a third instance from the physical machine where the first instance is located.

[0019] The third instance and the first instance compete for key resources. Migrating the third instance allows the first instance to obtain more key resources from the physical machine, thereby improving the QoS of the first instance.

[0020] In one possible implementation, the QoS of an instance performing a task is obtained based on the operating data of each instance in the instance group when performing a task, including: identifying a first load when a first instance performs a task; based on the first load, obtaining baseline operating data of the first instance, the baseline operating data being the operating data of the first instance when it was historically at a second load, and the load of a fourth instance when the first instance was at the second load is less than the load of the fourth instance when the first instance performs the task; wherein the size of the first load is equal to the size of the second load, and the fourth instance is an instance other than the first instance in the physical machine where the first instance is located; based on the operating data when the first instance performs the task and the baseline operating data, the QoS of the first instance performing the task is obtained.

[0021] The primary purpose of calculating the QoS of the current instance is to assess the impact of other instances on the same physical machine. An instance's operating data is affected not only by other instances but also by its own load. This implementation masks the impact of the instance's own load on its operating data. As a result, the QoS calculated based on this operating data reflects the impact of other instances on the current instance, resulting in more accurate QoS.

[0022] In a possible implementation, the data type of the running data is specified by the user to which the instance group belongs.

[0023] In this implementation, users can specify the operational data used to calculate QoS, ensuring that the calculated QoS meets their needs. For example, the tasks executed by an instance group are often user-specified. Based on the characteristics of the task, users can specify the operational data used to calculate QoS, ensuring that the calculated QoS better matches the task's characteristics. Scheduling resources based on QoS that matches the task's characteristics can effectively improve resource utilization.

[0024] In one possible implementation, the operating data includes: processor utilization, disk read and write rate, frequency of network data packet sending and receiving, number of instruction completions, number of instruction unterminated clock cycles, number of third-level cache misses, memory occupancy, number of network sent and received bytes, third-level cache occupancy, number of pause clock cycles, etc., any one or a combination of any multiple of them.

[0025] That is, this method can use various types of running data to calculate the QoS of an instance, which makes the method highly universal.

[0026] In a second aspect, a management platform is provided, which is used to manage multiple instances deployed in an infrastructure, the infrastructure including at least one data center, and each data center including multiple physical machines; wherein each of the multiple instances is deployed in at least one physical machine in the infrastructure, and the management platform includes: an acquisition module, used to obtain operating data of each instance in an instance group when performing a task, the instance group including at least two instances among the multiple instances; an acquisition module, used to obtain the service quality QoS of the instance execution task based on the operating data of each instance in the instance group when performing the task; a scheduling module, used to schedule resources for the first instance when the QoS of the first instance in the instance group performing the task is inconsistent with the QoS of the second instance performing the task, so that the QoS of the first instance performing the task is consistent with the QoS of the second instance performing the task; wherein the second instance is an instance in the instance group other than the first instance.

[0027] In a possible implementation, the tasks executed by different instances in the instance group are different subtasks of the same task.

[0028] In a possible implementation, the QoS of the task executed by the first instance is lower than the QoS of the task executed by the second instance.

[0029] In a possible implementation, the scheduling module is configured to: identify key resources that affect the QoS of the first instance's task execution; and perform resource scheduling on the first instance based on the key resources.

[0030] In one possible implementation, the scheduling module is used to: migrate the first instance from the current physical machine to the target physical machine; wherein the available amount of key resources in the target physical machine is greater than the available amount of key resources in the current physical machine; or, migrate out the third instance in the physical machine where the first instance is located.

[0031] In one possible implementation, the module is used to: identify a first load when the first instance performs a task; based on the first load, obtain baseline operating data of the first instance, the baseline operating data is the operating data of the first instance when it was historically at a second load, and the load of the fourth instance when the first instance was at the second load is less than the load of the fourth instance when the first instance performs the task; wherein the size of the first load is equal to the size of the second load, and the fourth instance is an instance other than the first instance in the physical machine where the first instance is located; based on the operating data and the baseline operating data when the first instance performs the task, obtain the QoS of the first instance performing the task.

[0032] In one possible implementation, the data type of the running data is specified by the user to whom the instance group belongs; and / or, the running data includes: any one or a combination of any multiple of: processor utilization, disk read and write rate, frequency of network data packet sending and receiving, number of instruction completions, number of instruction unterminated clock cycles, number of L3 cache misses, memory occupancy, number of network sent and received bytes, L3 cache occupancy, number of pause clock cycles, etc.

[0033] In a third aspect, a computing device cluster is provided, comprising at least one computing device, each computing device comprising a processor and a memory; the processor of at least one computing device is used to execute instructions stored in the memory of at least one computing device, so that the computing device cluster performs the method provided in the first aspect.

[0034] In a fourth aspect, a computer-readable storage medium is provided, comprising computer program instructions. When the computer program instructions are executed by a computing device cluster, the computing device cluster executes the method provided in the first aspect.

[0035] In a fifth aspect, a computer program product comprising instructions is provided. When the instructions are executed by a computer device cluster, the computer device cluster executes the method provided in the first aspect.

[0036] The beneficial effects of the second to fifth aspects can be referred to the above introduction to the beneficial effects of the first aspect, and will not be repeated here. BRIEF DESCRIPTION OF THE DRAWINGS

[0037] FIG1 is a schematic diagram of a physical machine;

[0038] Figure 2 is a schematic diagram of an example deployment;

[0039] FIG3 is a schematic diagram of an example deployment;

[0040] FIG4 is a schematic diagram of a system architecture provided in an embodiment of the present application;

[0041] FIG5 is a schematic diagram of the structure of a management platform provided in an embodiment of the present application;

[0042] FIG6 is a flowchart of an example scheduling method provided in an embodiment of the present application;

[0043] FIG7 is a schematic diagram of a user interface provided in an embodiment of the present application;

[0044] FIG8 is a schematic diagram of a user interface provided in an embodiment of the present application;

[0045] FIG9 is a schematic diagram of a QoS calculation method provided in an embodiment of the present application;

[0046] FIG10 is a schematic diagram of a QoS calculation method provided in an embodiment of the present application;

[0047] FIG11 is a schematic diagram of a QoS calculation method provided in an embodiment of the present application;

[0048] FIG12 is a schematic diagram of a resource scheduling method provided in an embodiment of the present application;

[0049] FIG13 is a schematic diagram of a resource scheduling method provided in an embodiment of the present application;

[0050] FIG14 is a schematic diagram of a user interface provided in an embodiment of the present application;

[0051] FIG15 is a schematic diagram of a user interface provided in an embodiment of the present application;

[0052] FIG16 is a schematic diagram of the structure of a management platform provided in an embodiment of the present application;

[0053] FIG17 is a schematic diagram of the structure of a computing device provided in an embodiment of the present application;

[0054] FIG18 is a schematic diagram of the structure of a computing device cluster provided in an embodiment of the present application;

[0055] FIG19 is a schematic diagram of the structure of a computing device cluster provided in an embodiment of the present application. DETAILED DESCRIPTION

[0056] The following describes the solutions provided by the embodiments of the present application in conjunction with the accompanying drawings. In the embodiments of the present application, "plurality" refers to two or more, and "multiple" refers to two or more. Terms such as "first" and "second" are used only to distinguish similar objects and do not necessarily describe a specific order or quantity of objects.

[0057] To facilitate understanding of the solutions provided by the embodiments of the present application, the technical terms that may be involved in the embodiments of the present application are first introduced.

[0058] Cloud technology refers to a hosting service that unifies hardware, software, network and other resources within a wide area network or local area network to achieve data computing, storage, processing and sharing.

[0059] Infrastructure: Facilities that provide computing services with computing resources, storage resources, and / or network resources. A resource pool can include at least one data center, each of which contains multiple physical machines (e.g., servers). Physical machines can serve as hosts for deploying instances. In cloud technology, infrastructure, also known as cloud infrastructure, provides computing resources, storage resources, and / or network resources for cloud computing services.

[0060] Management Platform: A platform provided by computing service providers for user interaction. Users can register accounts on the management platform and subscribe to computing services using their accounts, becoming tenants of these services. Users can manage resource pools and instances within these resource pools through the management platform. In cloud computing scenarios, the management platform can be referred to as a cloud management platform.

[0061] User: A tenant who rents a resource pool. Users can register an account on the management platform operated by the computing service provider through a browser or other client. The computing service provider will record the accounts of different tenants and isolate computing services for different tenants based on their accounts, giving them full access to the resources and computing services they own.

[0062] Instance: Also known as a virtual computing device or virtual computing instance, this refers to a complete computer system with a complete hardware system simulated by software, running in a completely isolated environment. The hardware system of a computing instance is a virtualized version of physical hardware. A complete computing instance has an independent virtual computing system (such as a central processing unit (CPU)) and virtual disks. Computing instances that need to communicate with the outside world also have independent virtual network cards. Typical computing instances include virtual machines (VMs), containers, and elastic cloud servers (ECS).

[0063] Physical machine: A computing device with hardware resources that can be used to deploy instances. A server is a common example of a physical machine.

[0064] Quality of service (QoS): refers to the ability of an instance to perform tasks and is positively correlated with the performance of the instance. QoS can be expressed through performance indicators such as latency and throughput. QoS is negatively correlated with latency, and positively correlated with throughput. In embodiments of the present application, QoS may be referred to as a QoS score, which may be represented as a value of 1 or equal to 1. A QoS of 1 is the maximum QoS.

[0065] Operational data: refers to data related to the operation of an instance and reflecting the operating status of the instance. The operation data of the instance can be obtained by querying the data reflecting the operating status of the instance in the physical machine where the instance is located or detecting the data through a detection device (such as a performance monitoring unit (PMU)). Common operation data of an instance include: processor utilization (such as CPU utilization), disk read and write rate, frequency of network data packet transmission and reception, number of instruction completions, number of instruction unterminated clock cycles, number of L3 cache misses, etc. Among them, processor utilization, disk read and write rate, and frequency of network data packet transmission and reception can be queried in the operating system kernel of the physical machine. The number of instruction completions, number of instruction unterminated clock cycles, and number of L3 cache misses can be detected by the hardware PMU running on the physical machine. In addition, the frequency of network data packet transmission and reception can be expressed as packet rate per second (PPS).

[0066] Distributed tasks: This refers to dividing the same task into different subtasks, with different subtasks being executed by different instances, thereby achieving parallel execution and improving task execution efficiency. The results of each subtask are used to obtain the results of the distributed task. For example, a distributed task could be rendering a 3D scene containing multiple 3D models. Each 3D model can be treated as a subtask, with different 3D models rendered by different instances, thus achieving parallel rendering of the 3D models. Then, based on the execution results of each subtask, that is, the rendering results of each 3D model, the rendering result of the 3D scene is obtained.

[0067] Surrounding instances: Also known as neighboring instances, these are instances other than the current instance on the same physical machine as the current instance. In other words, the current instance and its neighboring instances are deployed on the same physical machine.

[0068] As shown in Figure 1, a physical machine has physical resources such as a physical central processing unit (pCPU), multi-level cache, memory, disk, and network interface card (NIC). The multi-level cache includes the first-level cache (L1), second-level cache (L2), and third-level cache (L3). These physical resources support the operation of instances within the physical machine. Based on the resource sharing relationship between an instance and its surrounding instances, instance deployment methods can be categorized as shared or dedicated. As shown in Figure 2, the virtual central processing unit (vCPU) of a dedicated instance has a one-to-one correspondence with the pCPU, L1 cache, and L2 cache. That is, a dedicated instance has exclusive access to the pCPU, L1 cache, and L2 cache. However, a dedicated instance shares physical resources such as the L3 cache, memory, disk, and network interface card with its surrounding instances. As shown in Figure 3, a shared instance shares physical resources such as the pCPU, multi-level cache, memory, disk, and network interface card with its surrounding instances. That is to say, regardless of the deployment method, multiple instances in the same physical machine share at least three-level cache, memory, disk, network card and other physical resources.

[0069] Instances share physical resources. When physical resources are scarce, competition for physical resources is inevitable, which has a significant impact on the performance of the instances. Although the specifications of multiple instances of a user are the same, that is, the resources required by multiple instances are theoretically the same. However, these multiple instances may be deployed in different physical machines, and the surrounding instances of different instances are different. Therefore, different instances are affected differently by the surrounding instances, which may lead to inconsistent performance of different instances, and then to inconsistent QoS of task execution. If these multiple instances are used to execute different subtasks of the same distributed task, it may lead to an increase in the overall execution time of the distributed task and waste of resources. For example, 100 instances can be set to execute the same rendering task, and each instance must complete 1% of the rendering task. If one or more instances have poor performance and fail to complete the corresponding task for a long time, the rendering task will be delayed. In addition, instances that have already completed the corresponding task are in a waiting state for a long time, resulting in a waste of resources.

[0070] In view of this, an embodiment of the present application provides an instance scheduling method. This method can obtain the QoS of each instance in the same instance group for executing tasks, and when the QoS of the instances in the instance group are inconsistent, the instance in the instance group is scheduled to ensure that the QoS of the instances in the instance group for executing tasks remains consistent, thereby reducing task completion time and improving resource utilization.

[0071] Next, the example scheduling method provided in the embodiment of the present application is introduced.

[0072] FIG4 shows a system architecture for implementing the method, which includes a management platform 100 and an infrastructure 200 . The infrastructure 200 has multiple instances deployed therein, and the management platform 100 is used to manage the instances in the infrastructure 200 .

[0073] Specifically, infrastructure 200 may include multiple physical machines, such as physical machine 210 and physical machine 220. Each of the multiple instances is deployed on at least one of the multiple physical machines. A physical machine may be deployed with one or more instances. For example, physical machine 210 may be deployed with instance 211, instance 212, and so on. For another example, physical machine 220 may be deployed with instance 221, instance 222, and so on.

[0074] In some embodiments, the infrastructure 200 may include a data center, in which the physical machines in the infrastructure 200 are located. In some embodiments, the infrastructure 200 may include multiple data centers, in which the physical machines in the infrastructure 200 are located. Each data center may include two or more physical machines.

[0075] The same user may own at least two instances in infrastructure 200. Instances belonging to the same user can form the same instance group. For example, instance 211 and instance 221 belong to the same user and can form instance group 300. An instance group can be used to execute tasks issued by the user to which it belongs, such as distributed tasks. Different instances in an instance group can be used to execute different subtasks within the same distributed task.

[0076] The management platform 100 is used to execute the scheduling method provided in the embodiments of the present application to ensure QoS consistency for tasks executed by instances in the same instance group. Figure 5 illustrates the functional modules of the management platform 100. These functional modules are used by the management platform 100 to execute the method. As shown in Figure 5, these functional modules include an acquisition module 110, a retrieval module 120, and a scheduling module 130. In some embodiments, the management platform 100 also includes an interface module 140.

[0077] Next, the functions of these functional modules are introduced respectively.

[0078] The acquisition module 110 can acquire the running data of the instance when executing the task. For example, whenever the instance starts running, it can be considered that the instance is executing the task and the running data of the instance starts to be acquired. The acquired running data can be used as the running data of the instance when executing the task.

[0079] In some embodiments, as shown in Figure 5 , a collector runs on the physical machine. The collector can collect operational data from instances executing tasks on the physical machine. The collector is connected to acquisition module 110 , allowing the collector to send the collected operational data of the instances to acquisition module 110 . Operational data will be described in detail in the method embodiments below and will not be further elaborated here.

[0080] The obtaining module 120 may calculate the QoS of the instance executing the task based on the running data of the instance executing the task obtained by the obtaining module 110 .

[0081] In some embodiments, as shown in FIG5 , obtaining module 120 may include a baseline obtaining submodule 121 and a QoS obtaining submodule 122. Baseline obtaining submodule 121 is configured to calculate baseline operating data. QoS obtaining submodule 122 may be based on the most recent operating data and baseline operating data obtained by obtaining module 110. The QoS calculation method and baseline operating data will be described in detail in the method embodiments below and will not be further elaborated here.

[0082] Scheduling module 130 can perform resource scheduling for instances in the instance group based on the QoS of each instance in the instance group calculated by obtaining module 120. When the QoS of an instance in the instance group is inconsistent with the QoS of other instances, resource scheduling is performed on the instance to ensure that the QoS of the instance is consistent with the QoS of other instances in the instance group.

[0083] In some embodiments, as shown in Figure 5, scheduling module 130 includes an identification submodule 131 and a scheduling submodule 132. Identification submodule 131 is used to identify key resources that affect the QoS of an instance. Multiple resources may affect the QoS of an instance, and key resources are those with the greatest impact on the instance. Scheduling submodule 132 is used to schedule resources for the instance based on these key resources. Methods for identifying key resources and scheduling resources are described in detail in the following method embodiments and are not further elaborated here.

[0084] In some embodiments, the interface module 140 is used to facilitate interaction between the management platform 100 and the user. For example, the interface module 140 may provide a corresponding user interface (UI). Through this UI, the user may issue relevant operations to instruct the management platform 100 to perform relevant actions. The interaction between the user and the management platform 100 will be described in detail in the method embodiments below and will not be repeated here.

[0085] The above describes the system architecture provided by the embodiments of the present application. Next, in conjunction with this system architecture, the instance scheduling method provided by the embodiments of the present application will be described, taking the scheduling of instances in instance group 300 as an example. This method is executed by management platform 100. As shown in Figure 6, the method includes the following steps.

[0086] First, in step 601 , the management platform 100 obtains running data of each instance in the instance group 300 when executing a task. The instance group 300 includes at least two instances among the multiple instances in the infrastructure 200 .

[0087] As shown in Figure 4 , instance group 300 may include multiple instances, such as instance 211 and instance 221. These multiple instances may belong to the same user. However, not all instances in instance group 300 are deployed on the same physical machine. That is, some instances in instance group 300 are deployed on one or more physical machines, while others are deployed on another one or more physical machines. For example, instance 211 is deployed on physical machine 210, and instance 221 is deployed on physical machine 220.

[0088] In some embodiments, instance group 300 is used to execute a task, such as a distributed task. The task may include multiple subtasks. Different instances in instance 300 are used to execute different subtasks in the task. Different instances execute corresponding subtasks in parallel.

[0089] In some embodiments, as shown in Figure 6, before step 601, the management platform 100 may execute step 600 to confirm that the instance group 300 needs to maintain QoS consistency. Among them, the management platform 100 can respond to the QoS consistency function activation operation issued by the user to whom the instance in the instance group 300 belongs, and execute the scheduling method provided in the embodiment of the present application for the instance group of the user. Exemplarily, the management platform 100 can receive the QoS consistency function activation operation issued by the user through the interface module 140. In an example of this embodiment, the management platform 100 can provide an interface for instance purchase or management as shown in Figure 7. Through this interface, the user can choose whether to issue a QoS consistency function activation operation when or after purchasing the instance.

[0090] In some embodiments, the data acquired by the management platform 100 is obtained from the operating system of the physical machine where the instance resides and the hardware PMU running on the physical machine, rather than from the instance itself. In other words, the data acquired by the acquisition module 110 does not include the instance's internal data, such as the applications running on the instance or the data processed by the instance. Therefore, the data acquired by the acquisition module 110 does not include any sensitive user information.

[0091] In some embodiments, the operating data of the instance obtained by the management platform 100 includes: processor utilization, disk read and write rate, frequency of network data packet sending and receiving, number of instruction completions, number of instruction unterminated clock cycles, number of third-level cache misses, memory occupancy, number of network sent and received bytes, third-level cache occupancy, number of pause clock cycles, etc., any one or a combination of any multiple of them.

[0092] In some embodiments, the data type of the data acquired by the management platform 100 is a default data type. In other words, the operation data acquired by the acquisition module 110 is data of a default data type.

[0093] In some embodiments, the data type of the data obtained by the management platform 100 is specified by the user. That is, the operating data obtained by the management platform 100 is data of the data type specified by the user. In an example of this embodiment, the management platform 100 can provide a data type specification interface as shown in Figure 8. The data type specification interface is used by the user to specify the data type of the operating data used to calculate QoS. The user can specify the data type through the data type specification interface. For example, as shown in Figure 8, the user can specify the CPU utilization, disk read and write rate, number of instruction unterminated clock cycles and number of instruction completions. The management platform 100 can obtain the operating data when the instance executes the task according to the data type specified by the user, that is, obtain the CPU utilization, disk read and write rate, number of instruction unterminated clock cycles and number of instruction completions when the instance executes the task.

[0094] In some embodiments, the running data of an instance is identified by the process index (PID) of the instance. Different instances have different PIDs. By identifying the running data of an instance by the PID, the management platform 100 can distinguish the running data of different instances in the instance group 300.

[0095] Next, in step 602, the management platform 100 obtains the QoS of each instance executing the task based on the operational data of each instance in the instance group 300. The QoS of each instance executing the task, also known as the QoS score, is a value less than or equal to 1. A QoS score of 1 is the maximum QoS.

[0096] The running data of an instance during task execution can reflect the performance of the instance during task execution, and thus reflect the QoS of the instance during task execution. Therefore, the QoS of the instance during task execution can be obtained through the running data of the instance during task execution.

[0097] For example, disk read and write rates are positively correlated with QoS, the frequency of network data packet transmission and reception is positively correlated with QoS, the ratio of instruction completions to the number of instruction-unterminated clock cycles (i.e., instructions per clock (IPC)) is positively correlated with QoS, the number of instruction-unterminated clock cycles is positively correlated with QoS, the number of L3 cache misses is negatively correlated with QoS, memory utilization is positively correlated with QoS, the number of network bytes transmitted and received is positively correlated with QoS, the L3 cache utilization is positively correlated with QoS, and the number of stalled clock cycles is negatively correlated with QoS. In this way, QoS can be calculated based on this operational data.

[0098] In some embodiments, QoS may be calculated based on operational data using a heuristic algorithm, such as a simulated annealing (SA) algorithm, a genetic algorithm (GA) or an ant colony optimization (ACO) algorithm.

[0099] In some embodiments, when the management platform 100 calculates QoS based on the running data of the instance when executing a task, it considers the impact of the instance's own load on the running data. Specifically, the running data of the current instance is affected by the current instance's own load and the load of the surrounding instances of the current instance. The purpose of calculating QoS is to evaluate the impact of the surrounding instances of the current instance on the QoS of the current instance executing the task. Therefore, in order to obtain the true impact of the surrounding instances of the current instance on the QoS of the current instance executing the task, when calculating the QoS of the instance executing the task, it is necessary to shield the impact of the instance's own load on the running data. The following method can be used to shield the impact of the instance's own load on the running data when calculating the QoS of the instance executing the task.

[0100] 9 , taking instance 211 as an example, step 602 includes step 901 of identifying the load A1 of instance 211 when executing a task. Load A1 is the current load of instance 211. In one example, the load of the instance is specifically the CPU utilization of the instance.

[0101] Step 602 also includes step 902, obtaining the baseline operating data of instance 211 based on load A1. The baseline operating data of instance 211 can be the operating data when instance 211 is historically under a load of the same magnitude as load A1 and the loads of surrounding instances are the smallest. In other words, the baseline operating data of instance 211 is the operating data when instance 211 is historically under load A2. The magnitude of load A1 is equal to the magnitude of load A2. The loads of surrounding instances of instance 211 when instance 211 is under load A2 are less than the loads of surrounding instances of instance 211 when instance 211 is under load A1. When there are multiple surrounding instances of instance 211, the loads of surrounding instances of instance 211 are the sum of the loads of the multiple instances.

[0102] Step 602 further includes step 903 , obtaining the QoS of the instance 211 performing the task based on the running data of the instance 211 when performing the task and the baseline running data of the instance 211 .

[0103] The load on the surrounding instances of instance 211 is small or minimal, indicating that the operating data of instance 211 is primarily affected by the load of instance 211. In other words, the baseline operating data of instance 211 is primarily affected by the load of instance 211. The baseline operating data of instance 211 can be subtracted from the operating data of instance 211 during task execution to obtain updated operating data. For example, the operating data of instance 211 during task execution can be divided by or subtracted from the baseline operating data to obtain updated operating data. The updated operating data can then be used to calculate the QoS of the task executed by instance 211.

[0104] In some embodiments, a heuristic algorithm and baseline operating data can be combined to determine the QoS of an instance. Referring to FIG10 , the operating data of instance 211 when executing a task can be input. In step 1001, the baseline operating data of instance 211 is obtained. Next, in step 1002, a heuristic algorithm is used to determine the QoS of the instance executing the task based on the operating data and the baseline operating data. The QoS of instance 211 executing the task is then output.

[0105] In some embodiments, a recognition model for identifying QoS can be trained. Specifically, the recognition model is trained using labeled operational data based on machine learning (e.g., deep learning). Labeled operational data is operational data with labels based on the QoS associated with the operational data. The labeled operational data can be obtained as follows.

[0106] Different resource supply levels can be set. The resources supplied by the current resource supply level are less than the resources supplied by the previous resource supply level, and greater than the resources supplied by the next resource supply level. The highest resource supply level means that the resource supply is sufficient. There is no resource competition. Detect the QoS indicators and operating data of the instance at different resource supply levels. Among them, QoS indicators refer to indicators such as latency and throughput. The size of the QoS indicator of the instance at a certain resource supply level is compared with the size of the QoS indicator of the instance at the highest resource supply level, and the resulting ratio is used as the QoS of the instance at the resource supply level. Among them, the QoS of the instance at the highest resource supply level is set to 1. Then, the QoS and operating data of the instance at the resource supply level are associated to obtain labeled data.

[0107] Referring to FIG. 11 , in step 602 , the running data of the instance when executing the task may be input into the recognition model, and the recognition model may output the QoS of the instance executing the task.

[0108] Thus, in step 602 , the QoS of each instance in the instance group 300 executing the task can be obtained.

[0109] Next, in step 603, it is determined whether the QoS of tasks executed by the instances in the instance group 300 are consistent. The method or standard for determining whether the QoS of tasks executed by the instances in the instance group 300 are consistent can be a default method or a user-configured method.

[0110] In some embodiments, it may be determined whether the difference between the maximum QoS and the minimum QoS of all instances executing tasks in instance group 300 is greater than a threshold value B1. If the difference is greater than the threshold value B1, it is determined that the QoS of the instances executing tasks in instance group 300 is inconsistent. If the difference is less than or equal to the threshold value B1, it is determined that the QoS of the instances executing tasks in instance group 300 is consistent.

[0111] In some embodiments, an average value of the QoS of tasks executed by all instances in instance group 300 may be calculated. Then, a determination is made as to whether the difference between the maximum or minimum QoS of the tasks executed by all instances in instance group 300 and the average value is greater than a threshold value B2. If the difference is greater than the threshold value B2, the QoS of the tasks executed by the instances in instance group 300 is determined to be inconsistent. If the difference is less than or equal to the threshold value B2, the QoS of the tasks executed by the instances in instance group 300 is determined to be consistent.

[0112] In some embodiments, the standard deviation of the QoS of tasks executed by the instances in instance group 300 may be calculated. A determination is then made as to whether the standard deviation is greater than a threshold value B3. If so, the QoS of tasks executed by the instances in instance group 300 is determined to be inconsistent. If so, the QoS of tasks executed by the instances in instance group 300 is determined to be consistent.

[0113] Thus, in step 603 , it can be determined whether the QoS of the tasks executed by the instances in the instance group 300 are consistent.

[0114] If the QoS of tasks executed by instances in instance group 300 is inconsistent, resource scheduling is performed on the instances in instance group 300. Specifically, the QoS inconsistency of tasks executed by instances in instance group 300 can be set to be inconsistent between the QoS of tasks executed by instance 211 and the QoS of other instances. Other instances are instances in instance group 300 other than instance 211. In this case, management platform 100 can execute step 604. When the QoS of tasks executed by instance 211 in instance group 300 is inconsistent with the QoS of tasks executed by instances other than instance 211 in instance group 300, resource scheduling is performed on instance 221 so that the QoS of tasks executed by instance 211 is consistent with the QoS of tasks executed by instances other than instance 211 in instance group 300. In other words, the goal of resource scheduling for instance 211 is to ensure that the QoS of tasks executed by instance 211 is consistent with the QoS of tasks executed by instances other than instance 211 in instance group 300, thereby ensuring that the QoS of tasks executed by instances in instance group 300 is consistent.

[0115] In some embodiments, instance 211 is the instance with the lowest QoS in instance group 300. That is, the QoS of task execution by instance 211 is lower than the QoS of task execution by instances other than instance 211 in instance group 300. Instance 211 can be migrated from the current physical machine to the target physical machine. The number of instances in the target physical machine is relatively small, or the instance load is relatively light. Therefore, there are more available resources in the target physical machine, and the pressure of resource competition is relatively small. By migrating instance 211 to the target physical machine, instance 211 can obtain sufficient resource supply, which can improve the QoS of task execution, so that the QoS of instance 211 is consistent with the QoS of other instances in instance group 300.

[0116] In some embodiments, resource scheduling for instance 211 includes identifying critical resources that affect the QoS of tasks executed by instance 211; and scheduling resources for instance 211 based on the critical resources. Instance operation requires various resources, such as processor resources, cache resources, memory resources, and network resources. The QoS of tasks executed by instance 211 may be affected by one or more resources. Resources that affect the QoS of tasks executed by instance 211 are referred to as critical resources.

[0117] In one example, critical resources can be identified through resource indicators. Resource indicators are information related to the degree of resource tension. Changes in the value of resource indicators reflect changes in the degree of resource tension. Common resource indicators include the number of cache misses, the number of stall clock cycles caused by memory loading (cycle_activity.stalls_mem_any), etc. Among them, when cache resources are tight, the number of cache misses increases. When memory resources are tight, the value of cycle_activity.stalls_mem_any increases. Critical resources can be identified through the change curve of the QoS of the instance execution task and the change curve of the resource indicator value. If the change curve of the value of a certain resource indicator is consistent with the change curve of the QoS of the instance execution task, the resource corresponding to the resource indicator is a critical resource that affects the QoS of the instance execution task.

[0118] In one example, after identifying the critical resources for the QoS of task execution by instance 211, a physical machine with a higher availability of critical resources can be searched for in infrastructure 200, and the found physical machine can be used as the target physical machine. In other words, the availability of critical resources on the target physical machine is greater than that of the current physical machine of instance 211. The current physical machine of instance 211 is the physical machine where instance 211 is currently located. Referring to FIG. 12 , instance 211 can be migrated from the current physical machine to the target physical machine. In this way, the impact of critical resources on the QoS of task execution by instance 211 can be eliminated or alleviated, so that the QoS of instance 211 is consistent with the QoS of other instances in instance group 300.

[0119] In one instance, after identifying the critical resources for the QoS of the task executed by instance 211, the offending instance of instance 211 can be identified. The offending instance of instance 211 refers to an instance in the physical machine where instance 211 is located that has a greater competitiveness for the critical resources than instance 211. In other words, the competitiveness of the offending instance for the critical resources is greater than that of instance 211. The offending instance competes for and occupies the critical resources, resulting in the unmet demand for the critical resources by instance 211, thereby resulting in low QoS. Referring to Figure 12, the offending instance can be migrated from the physical machine where instance 211 is located, so that instance 211 and the offending instance are located in different physical machines. In this way, the pressure on instance 211 to obtain critical resources can be reduced, the QoS of instance 211 to execute tasks can be improved, and the QoS of instance 211 is consistent with the QoS of other instances in instance group 300.

[0120] In some embodiments, after obtaining the QoS of each instance executing a task in the instance group 300 , the management platform 100 may display the QoS of each instance executing a task so that the user can see the QoS of each instance executing a task.

[0121] For example, the QoS of each instance executing a task can be displayed based on QoS indicators. That is, the QoS of each instance executing a task calculated in step 602 is mapped to a specific QoS indicator, such as throughput, latency, task completion time, etc. This allows users to intuitively observe the differences between the instances in terms of these QoS indicators.

[0122] In one example, it can be assumed that the QoS of tasks executed by instances is displayed based on throughput, and the QoS of tasks executed by instance 211 is 0.5, and the QoS of tasks executed by instance 221 is 0.8. It can be confirmed that the throughput of tasks executed by instance 211 is 50% of the maximum throughput of the instance, and the throughput of tasks executed by instance 221 is 80% of the maximum throughput of the instance. In one example, the management platform 100 can display the user interface shown in FIG14 to display the throughput of tasks executed by instances 211 and 221.

[0123] In some embodiments, the QoS index may be user-specified. In one example, the management platform 100 may provide a user interface as shown in FIG15 . Through the user interface, the user may specify a QoS index for displaying the calculated QoS.

[0124] In summary, this method can ensure that the QoS of tasks executed by instances in the same instance group remains consistent, so that instances in the same instance group complete their respective subtasks in the same or similar time, thereby avoiding waiting between instances, thereby reducing task completion time and improving resource utilization.

[0125] Based on the above description of the method embodiment, the present application also provides a management platform 1600. The management platform 1600 is used to manage multiple instances deployed in an infrastructure, wherein the infrastructure includes at least one data center, each data center includes multiple physical machines; wherein each of the multiple instances is deployed in at least one physical machine in the infrastructure. As shown in FIG16 , the management platform 1600 includes:

[0126] An acquisition module 1610 is configured to acquire running data of each instance in an instance group when executing a task, wherein the instance group includes at least two instances among the multiple instances;

[0127] An obtaining module 1620 is configured to obtain a quality of service (QoS) of a task executed by each instance in the instance group based on the running data of the task executed by each instance;

[0128] Scheduling module 1630 is used to schedule resources for the first instance in the instance group so that the QoS of the first instance performing the task is consistent with the QoS of the second instance performing the task when the QoS of the first instance performing the task in the instance group is inconsistent; wherein the second instance is an instance in the instance group other than the first instance.

[0129] In some embodiments, the tasks executed by different instances in the instance group are different subtasks of the same task.

[0130] In some embodiments, the QoS of the task executed by the first instance is less than the QoS of the task executed by the second instance.

[0131] In some embodiments, the scheduling module 1630 is used to: identify key resources that affect the QoS of the first instance's execution of tasks; and perform resource scheduling on the first instance based on the key resources.

[0132] In an example of this embodiment, the scheduling module 1630 is used to: migrate the first instance from the current physical machine to the target physical machine; wherein the available amount of the key resource in the target physical machine is greater than the available amount of the key resource in the current physical machine.

[0133] In another example of this embodiment, the scheduling module 1630 is configured to: migrate the third instance out of the physical machine where the first instance is located.

[0134] In some embodiments, the obtaining module 1620 is used to: identify a first load when the first instance performs a task; based on the first load, obtain baseline operating data of the first instance, the baseline operating data is the operating data when the first instance was historically at a second load, and the load of the fourth instance when the first instance was at the second load is less than the load of the fourth instance when the first instance performs the task; wherein the size of the first load is equal to the size of the second load, and the fourth instance is an instance other than the first instance in the physical machine where the first instance is located; based on the operating data when the first instance performs the task and the baseline operating data, obtain the QoS of the first instance performing the task.

[0135] In some embodiments, the data type of the running data is specified by the user to which the instance group belongs.

[0136] In some embodiments, the operating data includes: processor utilization, disk read and write rate, frequency of network data packet sending and receiving, number of instruction completions, number of instruction unterminated clock cycles, number of third-level cache misses, memory occupancy, number of network sent and received bytes, third-level cache occupancy, number of pause clock cycles, etc., any one or a combination of any multiple of them.

[0137] Among them, the acquisition module 1610, the acquisition module 1620, and the scheduling module 1630 can all be implemented by software or by hardware. For example, the implementation of the acquisition module 1610 is described below using the acquisition module 1610 as an example. Similarly, the implementation of the acquisition module 1620 and the scheduling module 1630 can refer to the implementation of the acquisition module 1610.

[0138] As an example of a software functional unit, the acquisition module 1610 may include code running on a computing instance. The computing instance may include at least one of a physical host (computing device), a virtual machine, and a container. Furthermore, the computing instance may be one or more. For example, the acquisition module 1610 may include code running on multiple hosts / virtual machines / containers. It should be noted that the multiple hosts / virtual machines / containers used to run the code may be distributed in the same region or in different regions. Furthermore, the multiple hosts / virtual machines / containers used to run the code may be distributed in the same availability zone AZ or in different AZs, and each AZ includes one data center or multiple geographically close data centers. Generally, a region may include multiple AZs.

[0139] Similarly, multiple hosts / virtual machines / containers running the code can be distributed within the same VPC or across multiple VPCs. Typically, a VPC is set up within a region. Cross-region communication between two VPCs within the same region, or between VPCs in different regions, requires a communication gateway within each VPC to interconnect the VPCs.

[0140] As an example of a hardware functional unit, acquisition module 1610 may include at least one computing device, such as a server. Alternatively, acquisition module 1610 may be implemented using an application-specific integrated circuit (ASIC) or a programmable logic device (PLD). The PLD may be a complex programmable logical device (CPLD), a field-programmable gate array (FPGA), a generic array logic (GAL), or any combination thereof.

[0141] The multiple computing devices included in acquisition module 1610 can be distributed in the same region or in different regions. The multiple computing devices included in acquisition module 1610 can be distributed in the same AZ or in different AZs. Similarly, the multiple computing devices included in acquisition module 1610 can be distributed in the same VPC or in multiple VPCs. The multiple computing devices can be any combination of servers, ASICs, PLDs, CPLDs, FPGAs, GALs, and other computing devices.

[0142] It should be noted that, in other embodiments, the acquisition module 1610 can be used to execute any step in the method shown in Figure 6, the acquisition module 1620 can be used to execute any step in the method shown in Figure 6, and the scheduling module 1630 can be used to execute any step in the method shown in Figure 6. The steps that the acquisition module 1610, the acquisition module 1620, and the scheduling module 1630 are responsible for implementing can be specified as needed. The full functionality of the management platform 1600 is achieved by having the acquisition module 1610, the acquisition module 1620, and the scheduling module 1630 respectively implement different steps in the method shown in Figure 6.

[0143] This application also provides a computing device 1700. As shown in Figure 17, computing device 1700 includes a bus 1702, a processor 1704, a memory 1706, and a communication interface 1708. Processor 1704, memory 1706, and communication interface 1708 communicate with each other via bus 1702. Computing device 1700 can be a server or a terminal device. It should be understood that this application does not limit the number of processors and memories in computing device 1700.

[0144] Bus 1702 may be a Peripheral Component Interconnect (PCI) bus or an Extended Industry Standard Architecture (EISA) bus, among others. Buses may be classified as address buses, data buses, control buses, and the like. For ease of illustration, FIG17 illustrates a single bus line, but this does not imply a single bus or type of bus. Bus 1702 may include a path for transmitting information between various components of computing device 1700 (e.g., memory 1706, processor 1704, and communication interface 1708).

[0145] The processor 1704 may include any one or more processors such as a central processing unit (CPU), a graphics processing unit (GPU), a microprocessor (MP), or a digital signal processor (DSP).

[0146] Memory 1706 may include volatile memory, such as random access memory (RAM). Memory 1706 may also include non-volatile memory, such as read-only memory (ROM), flash memory, hard disk drive (HDD), or solid state drive (SSD).

[0147] The memory 1706 stores executable program code, and the processor 1704 executes the executable program code to respectively implement the functions of the aforementioned acquisition module 1610, the obtaining module 1620, and the scheduling module 1630, thereby implementing the method shown in Figure 6. That is, the memory 1706 stores instructions for executing the method shown in Figure 6.

[0148] The communication interface 1708 uses a transceiver module such as, but not limited to, a network interface card or a transceiver to implement communication between the computing device 1700 and other devices or a communication network.

[0149] Embodiments of the present application also provide a computing device cluster. The computing device cluster includes at least one computing device. The computing device can be a server, such as a central server, an edge server, or a local server in a local data center. In some embodiments, the computing device can also be a terminal device such as a desktop computer, a laptop computer, or a smartphone.

[0150] As shown in Figure 18, the computing device cluster includes at least one computing device 1700. The memory 1706 in one or more computing devices 1700 in the computing device cluster may store the same instructions for executing the method shown in Figure 6.

[0151] In some possible implementations, the memory 1706 of one or more computing devices 1700 in the computing device cluster may also respectively store some instructions for executing the method shown in Figure 6. In other words, the combination of one or more computing devices 1700 can jointly execute the instructions for executing the method shown in Figure 6.

[0152] It should be noted that the memory 1706 in different computing devices 1700 in the computing device cluster may store different instructions, each for executing a portion of the functions of the management platform 1600. That is, the instructions stored in the memory 1706 in different computing devices 1700 may implement the functions of one or more of the acquisition module 1610, the obtaining module 1620, and the scheduling module 1630.

[0153] In some possible implementations, one or more computing devices in a computing device cluster may be connected via a network. The network may be a wide area network (WAN) or a local area network (LAN), etc. FIG. 19 illustrates a possible implementation. As shown in FIG. 19 , two computing devices 1700A and 1700B are connected via a network. Specifically, the network is connected via a communication interface in each computing device. In this type of possible implementation, the memory 1706 in the computing device 1700A stores instructions for executing the functions of the acquisition module 1610. Simultaneously, the memory 1706 in the computing device 1700B stores instructions for executing the functions of the acquisition module 1620 and the scheduling module 1630.

[0154] It should be understood that the functionality of the computing device 1700A shown in FIG19 may also be implemented by multiple computing devices 1700. Similarly, the functionality of the computing device 1700B may also be implemented by multiple computing devices 1700.

[0155] The present application also provides another computing device cluster. The connection relationship between the computing devices in this computing device cluster can be similar to the connection method of the computing device cluster described in Figures 18 and 19. However, the memory 1706 in one or more computing devices 1700 in this computing device cluster can store the same instructions for executing the method shown in Figure 6.

[0156] In some possible implementations, the memory 1706 of one or more computing devices 1700 in the computing device cluster may also respectively store some instructions for executing the method shown in Figure 6. In other words, the combination of one or more computing devices 1700 can jointly execute the instructions for executing the method shown in Figure 6.

[0157] The present application also provides a computer program product comprising instructions. The computer program product may be software or a program product comprising instructions that can be run on a computing device or stored in any available medium. When the computer program product is run on at least one computing device, the at least one computing device executes the method shown in FIG6 .

[0158] The present application also provides a computer-readable storage medium. The computer-readable storage medium can be any available medium that can be stored by a computing device, or a host migration device such as a data center that includes one or more available media. The available medium can be a magnetic medium (e.g., a floppy disk, a hard disk, a magnetic tape), an optical medium (e.g., a DVD), or a semiconductor medium (e.g., a solid-state drive). The computer-readable storage medium includes instructions that instruct the computing device to execute the method shown in FIG6 .

[0159] Finally, it should be noted that the above embodiments are only used to illustrate the technical solutions of the present application, rather than to limit them. Although the present application has been described in detail with reference to the aforementioned embodiments, those skilled in the art should understand that they can still modify the technical solutions described in the aforementioned embodiments, or make equivalent replacements for some of the technical features therein. However, these modifications or replacements do not deviate the essence of the corresponding technical solutions from the protection scope of the technical solutions of the embodiments of the present application.

Claims

1. An instance scheduling method, characterized in that: The method is applied to a management platform, the management platform being used to manage multiple instances deployed in an infrastructure, the infrastructure including at least one data center, each data center including multiple physical machines; wherein each of the multiple instances is deployed in at least one physical machine in the infrastructure, the method comprising: Acquire running data of each instance in the instance group when executing a task, wherein the instance group includes at least two instances among the multiple instances; Obtaining a quality of service (QoS) of the task executed by each instance in the instance group based on the running data of the task executed by each instance; When the QoS of a task executed by a first instance in the instance group is inconsistent with the QoS of a task executed by a second instance, resources are scheduled for the first instance so that the QoS of the task executed by the first instance is consistent with the QoS of the task executed by the second instance; wherein the second instance is an instance in the instance group other than the first instance.

2. The method according to claim 1, characterized in that The tasks executed by different instances in the instance group are different subtasks in the same task.

3. The method according to claim 1 or 2, characterized in that The QoS of a task executed by a first instance in the instance group is inconsistent with the QoS of a task executed by a second instance in the instance group, including: the QoS of the task executed by the first instance is smaller than the QoS of the task executed by the second instance.

4. The method according to any one of claims 1 to 3, characterized in that The performing resource scheduling on the first instance includes: Identifying critical resources that affect QoS of tasks performed by the first instance; Based on the key resources, resources are scheduled for the first instance.

5. The method according to claim 4, characterized in that The performing resource scheduling on the first instance based on the key resource includes: Migrating the first instance from the current physical machine to a target physical machine; wherein the available amount of the key resource in the target physical machine is greater than the available amount of the key resource in the current physical machine; or, Migrate the third instance from the physical machine where the first instance is located.

6. The method according to any one of claims 1 to 5, characterized in that The obtaining, based on the running data of each instance in the instance group when executing the task, the QoS of the instance executing the task includes: identifying a first load when the first instance performs a task; Based on the first load, baseline operating data of the first instance is obtained, where the baseline operating data is historical operating data of the first instance when it was at a second load, and the load of a fourth instance when the first instance was at the second load was less than the load of the fourth instance when the first instance was executing a task; wherein the magnitude of the first load is equal to the magnitude of the second load, and the fourth instance is an instance other than the first instance in the physical machine where the first instance is located; The QoS of the task executed by the first instance is obtained based on the operating data of the first instance when executing the task and the baseline operating data.

7. The method according to any one of claims 1 to 6, characterized in that The data type of the running data is specified by the user to which the instance group belongs; and / or, The operating data includes: processor utilization, disk read and write rate, frequency of network data packet sending and receiving, number of instruction completions, number of instruction unterminated clock cycles, number of third-level cache misses, memory occupancy, number of network sent and received bytes, third-level cache occupancy, number of pause clock cycles, etc., any one or a combination of any multiple of them.

8. A management platform, characterized in that: The management platform is used to manage multiple instances deployed in an infrastructure, wherein the infrastructure includes at least one data center, and each data center includes multiple physical machines; wherein each of the multiple instances is deployed in at least one physical machine in the infrastructure, and the management platform includes: an acquisition module, configured to acquire running data of each instance in an instance group when executing a task, wherein the instance group includes at least two instances among the plurality of instances; an obtaining module, configured to obtain the quality of service (QoS) of the task executed by each instance in the instance group based on the running data of the task executed by each instance; A scheduling module is used to schedule resources for the first instance in the instance group so that the QoS of the first instance performing the task is consistent with the QoS of the second instance performing the task when the QoS of the first instance performing the task in the instance group is inconsistent; wherein the second instance is an instance in the instance group other than the first instance.

9. The management platform according to claim 8, characterized in that: The tasks executed by different instances in the instance group are different subtasks in the same task.

10. The management platform according to claim 8 or 9, characterized in that: The QoS of the task executed by the first instance is lower than the QoS of the task executed by the second instance.

11. The management platform according to any one of claims 8 to 10, characterized in that: The scheduling module is used to: Identifying critical resources that affect QoS of tasks performed by the first instance; Based on the key resources, resources are scheduled for the first instance.

12. The management platform according to claim 11, characterized in that: The scheduling module is used to: Migrating the first instance from the current physical machine to a target physical machine; wherein the available amount of the key resource in the target physical machine is greater than the available amount of the key resource in the current physical machine; or, Migrate the third instance from the physical machine where the first instance is located.

13. The management platform according to any one of claims 8 to 12, characterized in that: The module is used to: identifying a first load when the first instance performs a task; Based on the first load, baseline operating data of the first instance is obtained, where the baseline operating data is historical operating data of the first instance when it was at a second load, and the load of a fourth instance when the first instance was at the second load was less than the load of the fourth instance when the first instance was executing a task; wherein the magnitude of the first load is equal to the magnitude of the second load, and the fourth instance is an instance other than the first instance in the physical machine where the first instance is located; The QoS of the task executed by the first instance is obtained based on the operating data of the first instance when executing the task and the baseline operating data.

14. The management platform according to any one of claims 8 to 13, characterized in that: The data type of the running data is specified by the user to which the instance group belongs; and / or, The operating data includes: processor utilization, disk read and write rate, frequency of network data packet sending and receiving, number of instruction completions, number of instruction unterminated clock cycles, number of third-level cache misses, memory occupancy, number of network sent and received bytes, third-level cache occupancy, number of pause clock cycles, etc., any one or a combination of any multiple of them.

15. A computing device cluster, characterized in that: comprising at least one computing device, each computing device including a processor and a memory; The processor of the at least one computing device is configured to execute instructions stored in a memory of the at least one computing device, so that the computing device cluster executes the method according to any one of claims 1 to 7.

16. A computer-readable storage medium, characterized in that The method comprises computer program instructions, and when the computer program instructions are executed by a computing device cluster, the computing device cluster performs the method according to any one of claims 1 to 7.

17. A computer program product comprising instructions, characterized in that When the instructions are executed by a computer device cluster, the computer device cluster is caused to perform the method according to any one of claims 1 to 7.

Citation Information

Patent Citations

  • Resource rescheduling method and device

    CN110347503A

  • Calculation instance scheduling method and device

    CN112905311A

  • Method and device for scheduling resources

    US20170251064A1

  • Compute Instance Scheduling Method and Apparatus

    US20210149735A1