Method for scheduling resources in cloud service system and computing equipment
By generating tenant request models and optimizing scheduling algorithms, the problem of low resource utilization in cloud service systems is solved, efficient and scientific resource scheduling is achieved, and the tenant service quality and cloud vendor profits are improved.
Patent Information
- Application Number
- CN202510116070.1
- Authority / Receiving Office
- CN · China
- Patent Type
- Applications(China)
- Current Assignee / Owner
- Priority Date
- 2024-03-19
- Filing Date
- 2025-01-22
- Publication Date
- 2025-09-19
AI Technical Summary
The resource scheduling model in existing cloud service systems is too simple, resulting in low resource utilization, making it difficult to provide high-quality and efficient services to tenants, and limiting the profits of cloud vendors.
By generating a tenant request model, predicting the specifications and quantity of virtual instances based on the historical data of multiple tenants, and combining it with the capacity model of computing nodes, we can optimize the scheduling algorithm selection and achieve scientific and reasonable resource scheduling.
It improves resource utilization, provides high-quality and efficient services, ensures tenant experience and increases the profits of cloud vendors.
Smart Images

Figure CN120676053A_ABST
Abstract
Description
[0001] This application claims priority to Russian patent application No. 2024107099 filed with the Russian Federal Intellectual Property Office on March 19, 2024, and entitled “A method and computing device for scheduling resources in a cloud service system”, the entire contents of which are incorporated herein by reference. Technical Field
[0002] The present application relates to the field of cloud service systems, and more specifically, to a method and computing device for scheduling resources in a cloud service system. Background Art
[0003] Currently, the scheduling rate of computing resource pools in most data centers (based on regions) is far higher than the actual utilization rate, resulting in severe underutilization. Cloud tenants typically prefer local or first-tier cities, and the number of cloud tenants in economically developed eastern regions far outnumbers those in western and less-developed regions. This leads to an imbalance between supply and demand for cloud resources, limiting sustainable development. For example, cloud service providers face increasing operating costs on the one hand, while also facing a lack of revenue due to insufficient cloud resource utilization by tenants.
[0004] In a cloud scenario, tenants' service requests represent a typical queuing scenario. For example, tenants can be considered customers, and data centers can be considered service facilities. Cloud providers use queuing theory models to schedule resource requests and allocate resources for each tenant, thereby providing cloud services. Cloud providers aim to ensure that their cloud resources are fully utilized by each tenant and to provide high-quality and efficient services.
[0005] However, existing queuing theory models are overly simplistic in cloud scenarios and fall significantly short of actual cloud services. This results in cloud vendors failing to fully utilize cloud resources for individual tenants, and also hinders the provision of high-quality and efficient services. Therefore, efficiently scheduling resources for tenants in response to their resource requests, ensuring full utilization of cloud resources, has become a technical challenge that needs to be addressed. Summary of the Invention
[0006] This application provides a method for scheduling resources in a cloud service system, which can make full use of the resources on the cloud, provide tenants with high-quality and efficient services, and protect the profits of cloud providers.
[0007] In the first aspect, a communication method is provided, which can be applied in a cloud service system. The method can be executed by a cloud management platform (or a communication device in a cloud management platform), or it can also be executed by a component (such as a chip or circuit) of the cloud management platform (or a communication device in a cloud management platform).
[0008] In this application, the cloud management platform can be used to manage the infrastructure in the cloud service system. The infrastructure includes at least one cloud data center, each cloud data center is equipped with at least one cluster, each cluster includes at least one computing node, and each computing node includes a hardware layer and a software layer. The hardware layer includes at least one central processing unit CPU, and the software layer includes at least one virtual instance.
[0009] The method includes: receiving a request message from a first tenant, where the request message is used to indicate the specifications and quantity of virtual instances requested by the first tenant; obtaining, based on the request message, historical data of computing nodes included in clusters corresponding to multiple tenants stored in a cloud service system, where the multiple tenants include the first tenant; generating a tenant request model based on the historical data, where the tenant request model is used to predict the specifications and quantity of virtual instances to be requested by multiple tenants; scheduling virtual instances on at least one computing node for the first tenant based on the tenant request model and the request message, where the scheduled virtual instances are used to provide computing resources for the first tenant; and outputting information about the virtual instances scheduled for the first tenant.
[0010] The "virtual instance" in this application can be, for example, a virtual machine. In other scenarios, the "virtual instance" can also be a container, a bare metal server, and so on.
[0011] In this application, "virtual instance specifications" can also be understood as the size of the resources provided by the virtual instance, for example, the size of the CPU and memory in the virtual instance. For example, if the virtual instance is 3U24G, it means that the CPU size of the virtual instance is 3U and the memory size of the virtual instance is 24G. For another example, if the virtual instance is 1U8G, it means that the CPU size of the virtual instance is 1U and the memory size of the virtual instance is 8G.
[0012] For example, the first tenant may determine the specifications and quantity of the virtual instances to be requested based on the current specific business.
[0013] Exemplarily, the plurality of tenants include the first tenant. In this application, "plurality of tenants" includes at least two tenants.
[0014] For example, in one possible implementation, the computing nodes included in the cluster corresponding to each of the multiple tenants may be each computing node included in the cluster corresponding to each of the multiple tenants; in another possible implementation, the computing nodes included in the cluster corresponding to each of the multiple tenants may be the computing nodes used in the cluster.
[0015] It should be understood that in a cloud service system, different clusters may serve different tenants. In other words, different tenants may correspond to different clusters. In a cloud service system, historical data for clusters serving each tenant can be stored. For example, historical data for compute nodes in each cluster, historical data for the hardware CPUs in each node, and historical data for virtual instances can be stored. The historical data for each cluster can actually be considered historical data for each tenant, reflecting the request queues of each tenant.
[0016] In the present application, the information of the virtual instance may include, for example, one or more of the following: information about the computing nodes where each scheduled virtual instance is located (for example, the identifier of the computing node), the number of scheduled virtual instances, the specifications corresponding to each scheduled virtual instance, and so on.
[0017] Based on the above technical solution, in this application, based on the request message of the first tenant, the historical data corresponding to multiple tenants is triggered to obtain and a tenant request model is generated. Based on the tenant request model generated by this application, a virtual instance is scheduled for the first tenant. Since the tenant request model in this application is generated based on the historical data of multiple tenants, when scheduling resources for the first tenant based on the tenant request model, the requests of other tenants in the future are actually implicitly considered, making the scheduling of cloud resources more scientific and reasonable, and providing high-quality and efficient services to each tenant. Furthermore, when cloud resources can be fully utilized by each tenant, cloud vendors can also obtain expected benefits.
[0018] In combination with the first aspect, in one possible implementation method, a tenant request model is generated based on historical data, including: generating queuing theory models corresponding to multiple tenants respectively based on historical data; arranging the queuing theory models corresponding to the multiple tenants in chronological order to generate a tenant request model.
[0019] In this application, the request message of the first tenant will trigger the cloud management platform to generate a tenant request model based on the stored historical data. It can also be understood that in this application, each time a tenant sends a request message, it will trigger the establishment of a tenant request model based on the previously saved historical data (that is, including the most recently stored historical data, so that it can be ensured that the historical data includes the historical data corresponding to the previous tenant), so that the constructed tenant request model is more suitable for the current business scenario. In other words, the beneficial effect of revising the tenant request model each time based on a tenant's request is that, since there are some updates to the historical data, the tenant request model constructed this time can be guaranteed to be more accurate.
[0020] In some other possible scenarios, the tenant request model may also be updated periodically instead of being updated every time. For example, the tenant request model may be updated once every certain period of time based on stored historical data.
[0021] Based on the above technical solution, in this application, when generating a tenant request model, the queuing theory model corresponding to each tenant can be generated based on the historical data corresponding to each tenant, and then the queuing theory model corresponding to each tenant can be arranged on the timeline to obtain the tenant request model.
[0022] In combination with the first aspect, in one possible implementation, the historical data of each computing node includes at least one of the following: performance data of each computing node, performance data of each CPU in the hardware layer included in each computing node, and data on the working status of each virtual instance in the software layer included in each computing node.
[0023] Exemplarily, the performance data of each computing node includes at least one of the following: energy consumption of each computing node, resource occupancy of each computing node, service rate of each computing node, hot and cold properties of each computing node, service waiting time of each computing node, non-uniform memory access NUMA performance of each computing node, and request arrival rate of each computing node; the performance data of each CPU at the hardware layer includes at least one of the following: performance monitoring unit PMU data on each CPU, timing data on each CPU, cache of each CPU, and bandwidth of each CPU; the data on the working status of each virtual instance includes at least one of the following: creation data, scheduling data and release data of each virtual instance, idle resources of each virtual instance, and occupied resources of each virtual instance.
[0024] In combination with the first aspect, in a possible implementation, the method also includes: generating a capability model corresponding to the computing nodes included in the cluster based on historical data of the computing nodes included in the cluster, the capability model being used to characterize the idle resources and occupied resources of each computing node; scheduling a virtual instance on the at least one computing node for the first tenant based on the tenant request model and the request message, including: scheduling a virtual instance on the at least one computing node for the first tenant based on the capability model corresponding to the computing node, the tenant request model and the request message.
[0025] In this application, each computing node included in the cluster corresponds to a capability model. It can also be understood that the capability model is based on the computing node granularity.
[0026] For example, the actual resource capacity and occupied resources corresponding to each computing node (which can also be understood as the load situation corresponding to each computing node) can be calculated based on the historical data and mathematical formulas of each computing node included in the cluster, thereby constructing a capacity model corresponding to each computing node.
[0027] Based on the above technical solution, in this application, the tenant request model can predict the specifications and quantity of virtual instances that other tenants may request in the future, and the capability model can reflect the current actual load of each computing calculation. Therefore, based on the tenant request model and the capability model, a decision can be made on how to schedule the virtual instances required by the current first tenant. In other words, in this application, when scheduling virtual instances for the first tenant, the implementation method will first predict the subsequent requests of other tenants and the current load of each computing node, and only after considering the above two points will it schedule virtual instances for the first tenant, thereby making the resource scheduling on the cloud more reasonable, thereby providing efficient services to each tenant and ensuring the business experience of each tenant.
[0028] In combination with the first aspect, in a possible implementation method, a virtual instance on at least one computing node is scheduled for a tenant based on the capability model, tenant request model and request message corresponding to each computing node, including: generating a first model based on the capability model and tenant request model corresponding to each computing node, the first model being used to predict the performance of at least two scheduling algorithms, wherein the input of the first model is at least two scheduling algorithms, and the output of the first model is the performance corresponding to each of at least one scheduling algorithm of the at least two scheduling algorithms, and each of the at least two scheduling algorithms is used to schedule resources; predicting the performance of the at least two scheduling algorithms based on the first model, and determining a first scheduling algorithm in at least one scheduling algorithm based on the output result of the first model, wherein the performance of the first scheduling algorithm predicted by the first model is better than the performance of other scheduling algorithms; scheduling a virtual instance on at least one computing node for the first tenant based on the first scheduling algorithm and the first message.
[0029] Exemplarily, as mentioned above, the scheduling algorithm in the present application may include at least one of the following: first-come-first-served algorithm, short job priority algorithm, high response ratio priority algorithm, time slice polling algorithm, priority scheduling algorithm, etc.
[0030] For example, each scheduling algorithm can be executed separately based on the tenant request model and the capability model of each computing node, and each performance indicator of each scheduling algorithm can be scored separately, so as to finally select the scheduling algorithm with the best performance. For example, the scheduling algorithm finally selected is the first scheduling algorithm.
[0031] In a second aspect, the present application proposes a computing device for executing the method of the first aspect. Specifically, the device may include units and / or modules, such as a transceiver unit and / or a processing unit, for executing the method for scheduling resources in a cloud service system proposed in the present application. In the present application, the communication device is applied to a cloud management platform. Alternatively, the communication device is a cloud management platform.
[0032] In a third aspect, the present application provides a computing device comprising: at least one processor configured to execute a computer program or instructions stored in a memory to perform the method of the first aspect. Optionally, the device further comprises a memory configured to store the computer program or instructions. Optionally, the device further comprises a communication interface, through which the processor reads the computer program or instructions stored in the memory.
[0033] In one implementation, the device is a computing device used in a cloud management platform for implementing the functions of the above method in a chip. Alternatively, the device is a cloud management platform.
[0034] In another implementation, the device is a chip, a chip system or a circuit applied to a cloud management platform for implementing the functions of the above method in a chip.
[0035] In a fourth aspect, the present application provides a processor comprising: an input circuit, an output circuit, and a processing circuit. The processing circuit is configured to receive a signal through the input circuit and transmit a signal through the output circuit, so that the processor executes the method of the first aspect.
[0036] In a specific implementation, the processor may be one or more chips, the input circuit may be an input pin, the output circuit may be an output pin, and the processing circuit may be a transistor, a gate circuit, a trigger, or various logic circuits. The input signal received by the input circuit may be, for example, but not limited to, received and input by a transceiver, and the signal output by the output circuit may be, for example, but not limited to, output to and transmitted by a transmitter. The input circuit and the output circuit may be the same circuit, which functions as an input circuit and an output circuit at different times. The embodiments of the present application do not limit the specific implementation of the processor and various circuits.
[0037] For the operations such as sending and acquiring / receiving involved in the processor, unless otherwise specified, or if they do not conflict with their actual functions or internal logic in the relevant descriptions, they can be understood as processor output, reception, input and other operations, and can also be understood as sending and receiving operations performed by the radio frequency circuit and antenna. This application does not limit this.
[0038] In a fifth aspect, a processing device is provided, comprising a processor and a memory. The processor is configured to read instructions stored in the memory and receive signals via a transceiver and transmit signals via a transmitter to execute the method of the first aspect.
[0039] Optionally, there are one or more processors and one or more memories.
[0040] Optionally, the memory may be integrated with the processor, or the memory may be provided separately from the processor.
[0041] In the specific implementation process, the memory can be a non-transitory memory, such as a read-only memory (ROM), which can be integrated with the processor on the same chip or can be set on different chips. The embodiments of the present application do not limit the type of memory and the setting method of the memory and the processor.
[0042] It should be understood that related data interaction processes, such as sending indication information, can be the process of outputting indication information from the processor, and receiving capability information can be the process of receiving input capability information from the processor. Specifically, data output by the processor can be output to the transmitter, and input data received by the processor can be received from the transceiver. The transmitter and transceiver can be collectively referred to as a transceiver.
[0043] The processing device in the fifth aspect may be one or more chips. The processor in the processing device may be implemented in hardware or software. When implemented in hardware, the processor may be a logic circuit, an integrated circuit, or the like; when implemented in software, the processor may be a general-purpose processor implemented by reading software code stored in a memory, which may be integrated into the processor or located independently of the processor.
[0044] In a sixth aspect, a computing cluster is provided, comprising at least one computing device, each computing device comprising a processor and a memory; the processor of the at least one computing device is used to execute instructions stored in the memory of the at least one computing device, so that the computing device cluster executes the method described in any possible implementation of the first aspect.
[0045] Optionally, the processor may be a general-purpose processor, which may be implemented in hardware or software. When implemented in hardware, the processor may be a logic circuit, an integrated circuit, or the like; when implemented in software, the processor may be a general-purpose processor implemented by reading software code stored in a memory, which may be integrated into the processor or located independently of the processor.
[0046] In a seventh aspect, a computer-readable storage medium is provided, which stores a program code for execution by a device, wherein the program code includes a method for executing the above-mentioned first aspect.
[0047] In an eighth aspect, a computer program product comprising instructions is provided, which, when run on a computer, enables the computer to execute the method of the first aspect.
[0048] In a ninth aspect, a chip system is provided, comprising a processor for calling and running a computer program from a memory, so that a device equipped with the chip system executes the method of the first aspect. BRIEF DESCRIPTION OF THE DRAWINGS
[0049] Figure 1 This is a schematic diagram of a cloud service system architecture applicable to this application.
[0050] Figure 2 This is a schematic diagram of the system architecture of a method for scheduling resources in a cloud service system provided by this application.
[0051] Figure 3 This is a schematic flowchart of a method 300 for scheduling resources in a cloud service system provided by the present application.
[0052] Figure 4This is another schematic flowchart of a method for scheduling resources in a cloud service system provided by the present application.
[0053] Figure 5 is a schematic block diagram of a computing device 500 provided in this application.
[0054] Figure 6 is a schematic block diagram of a computing device 600 provided in this application.
[0055] Figure 7 This is a schematic diagram of the architecture of a computing device cluster provided in this application.
[0056] Figure 8 This is a schematic diagram of a connection between computing devices 700A and 700B provided in this application via a network. DETAILED DESCRIPTION
[0057] In order to facilitate understanding of the technical solution of this application, the following first briefly introduces some of the professional terms involved in this application.
[0058] 1. Queuing theory (QT)
[0059] During the service process, if the number of service requests exceeds the capacity of the service organization (e.g., information desk, waiters, etc.), customers cannot be served immediately, and thus queues will occur. For example, common examples include passenger ticket queues, busy local telephone lines, car and boat congestion and diversion, equipment downtime for repairs, and reservoir storage adjustments. Due to the randomness of customer arrival and service times, queues are inevitable.
[0060] Queuing theory, also known as stochastic service system theory, is a branch of operations research that studies the random gathering and dispersion of systems and the working processes of stochastic service systems. The general model of queuing theory requires that the service object is the customer and the service provider is the waiter. The purpose of studying queuing models is to determine the trade-off between customer needs and the scale of the service organization, achieving a reasonable balance.
[0061] The event stream in a queuing system consists of the customer arrival stream and the service time stream. Since the interval between customer arrivals and the service time cannot be negative, its distribution is that of a non-negative random variable. The most commonly used distributions are the Poisson distribution, the deterministic distribution, the exponential distribution, and the Erlang distribution. When the input process is a Poisson flow, the time interval T between successive customer arrivals must follow an exponential distribution.
[0062] Common queuing theory models include the single-server model and the multi-server model. The single-server model can be understood as a single server providing service, while the multi-server model can be understood as multiple servers providing service. For example, the "single-server model" includes the standard M / M / 1 model. The M / M / 1 model indicates that the intervals between customers arriving are negatively exponentially distributed, the service times are negatively exponentially distributed, and as long as only one server can provide service, the service follows a first-come, first-served principle.
[0063] 2. Scheduling Algorithm
[0064] The operating system manages the system's limited resources. When multiple processes (or requests from multiple processes) attempt to use these resources, due to the limited nature of resources, the processes (or requests) that occupy them must be selected according to certain principles. This is called "scheduling." The purpose of scheduling is to control the number of resource users and select which users are permitted to occupy or take up resources.
[0065] In an operating system, "scheduling" refers to a type of resource scheduling, and thus a "scheduling algorithm" refers to a resource scheduling algorithm specified by the system's resource scheduling policy. Different scheduling algorithms are typically used for different systems and system objectives. For example, in a batch processing system, to accommodate a large number of segment jobs, a short-job-first scheduling algorithm should be used; in a time-sharing system, to ensure a reasonable system response time, a round-robin method should be used for scheduling. Among the various scheduling algorithms currently available, some are suitable for job scheduling, some are suitable for process scheduling, and some can be used for both job scheduling and process scheduling. The following briefly introduces several common scheduling algorithms.
[0066] (1) First come first service (FCFS)
[0067] That is, services are provided in the order of jobs / processes, similar to queuing up for orders or buying items in real life.
[0068] (2) Short job first (SJF)
[0069] That is, processes requiring short service time are given priority. The CPU time required by the job entering the system is used as the standard. This refers to an algorithm that prioritizes short jobs or short processes. Each process is associated with its estimated running time, and the job with the shortest estimated computing time is selected for operation.
[0070] (3) Highest Response Ratio Next (HRRN)
[0071] HRRN is a scheduling algorithm that takes into account the CPU response ratio. It is a compromise between FCFS and SJF. It considers both job waiting time and job running time, taking care of short jobs while ensuring that long jobs do not wait too long, thus improving scheduling performance.
[0072] (4) Round robin (RR)
[0073] That is, each process is assigned a time slice in the order in which it arrives in the ready queue. If a process does not complete its execution within a time slice, the processor is deprived and the process is placed back at the end of the ready queue. The algorithm's principle is to serve each process fairly and in turns, ensuring that each process receives a response within a certain period of time.
[0074] (5) Priority Scheduling Algorithm
[0075] That is, when scheduling, the process or job with the highest priority is selected, and the processing order is determined based on the urgency of the task.
[0076] 3. Performance of the Scheduling Algorithm
[0077] In this application, the performance of each scheduling algorithm can be evaluated by some evaluation indicators. For example, the performance of a scheduling algorithm can be evaluated by indicators such as network throughput, delay, availability, and delay variation.
[0078] 4. Physical central processing unit (CPU) and virtual CPU
[0079] A physical CPU is a hardware component in a computer. It is the core of the computer and controls and executes its instructions. A virtual CPU is created in a virtualized environment and is primarily used to run virtualized operating systems and applications.
[0080] A virtual CPU is actually a software simulation, and the resources it dispatches from the physical CPU are limited because multiple virtual CPUs may share the same physical CPU. This is because virtualization technology divides a physical computer into multiple virtual computers, improving resource utilization by sharing hardware resources, thereby achieving cost savings and greater flexibility.
[0081] In a virtualized environment, the relationship between physical CPUs and virtual CPUs is interdependent. Although a virtual CPU is a software emulation of a physical CPU, its performance is constrained by the resources provided by the physical CPU. Therefore, when designing a virtualized environment, it's important to consider factors such as the number, model, and performance of physical CPUs to maximize virtual CPU performance.
[0082] 5. Hot Node, Warm Node
[0083] Hot nodes: These data nodes execute all indexing in the cluster. They also hold the latest indexes, as these are typically the most frequently queried. Because indexing is a CPU- and I / O-intensive operation, these servers need to be powerful and backed by attached solid-state disk (SSD) storage.
[0084] Cold nodes: This type of data node is designed to handle large read-only indexes that are unlikely to be frequently queried. Because these indexes are read-only, they are called cold nodes and tend to use large attached disks (usually spinning disks) rather than SSDs.
[0085] The “cold and hot properties of a computing node” mentioned in this application can also be understood as whether the computing node is a “cold node” or a “hot node”.
[0086] Figure 1 This is an architectural diagram of a cloud service system applicable to this application, such as Figure 1 As shown, the cloud scenario may include: a cloud management platform 110 , the Internet 120 and a client 130 .
[0087] like Figure 1 As shown, the cloud management platform 110 is used to manage the infrastructure that provides multiple cloud services. The infrastructure includes multiple cloud data centers, each of which includes at least one cluster, each cluster includes at least one computing node (which can also be understood as a "server"), and each computing node includes a hardware layer and a software layer. The hardware layer includes at least one central processing unit CPU, and the software layer includes at least one virtual instance, wherein each CPU supports at least one virtual instance. Each computing node includes cloud service resources (such as virtual instances) to provide corresponding cloud services to tenants. In an embodiment of the present application, cloud service resources may also be cloud databases.
[0088] The cloud management platform 110 can be located in a cloud data center, which can provide an access interface (such as an interface or an application program interface (API)). The tenant can operate the client 130 to remotely access the access interface to register a cloud account and password on the cloud management platform 110, and log in to the cloud management platform 110. After the cloud management platform 110 successfully authenticates the cloud account and password, the tenant can further pay to select and purchase a virtual instance of specific specifications (processor, memory, disk) on the cloud management platform 110. After the payment is successful, the cloud management platform 110 provides the remote login account and password of the purchased virtual instance, and the client 130 can remotely log in to the virtual instance, install and run the tenant's application in the virtual instance. Therefore, the tenant can create, manage, log in and operate virtual instances in the cloud data center through the cloud management platform 110.
[0089] The functions of the cloud management platform 110 include, but are not limited to, a tenant console, computing management services, network management services, storage management services, authentication services, and image management services. The tenant console provides an interface or API for interacting with tenants. The computing management service is used to manage servers running virtual instances and containers, as well as bare metal servers. The network management service is used to manage network services (such as gateways and firewalls). The storage management service is used to manage storage services (such as data bucket services). The authentication service is used to manage tenant accounts and passwords. The image management service is used to manage virtual instance images. Tenants can use the client 130 to log in to the cloud management platform 110 via the Internet 120 to manage the rented cloud services.
[0090] The "virtual instance" in this application can be, for example, a virtual machine. In other scenarios, the "virtual instance" can also be a container, a bare metal server, and so on.
[0091] Currently, the scheduling rate of computing resource pools in most data centers (based on regions) is far higher than the actual utilization rate, resulting in severe underutilization. Cloud tenants typically prefer local or first-tier cities, and the number of cloud tenants in economically developed eastern regions far outnumbers that in western and underdeveloped regions. This leads to an imbalance between supply and demand for cloud resources, limiting sustainable development. For example, cloud service providers face increasing operating costs while also facing challenges in generating revenue due to insufficient tenant utilization of cloud resources. In the "cloud scenario," tenant service requests represent a typical queuing scenario. For example, tenants can be considered customers, and data centers can be considered service facilities. Cloud providers use "queuing theory models" to schedule resource requests and allocate resources for each tenant, thereby providing cloud services. Cloud providers aim to ensure that their cloud resources are fully utilized by each tenant and provide high-quality and efficient services. However, existing queuing theory models are overly simplistic in cloud scenarios and fall significantly short of actual cloud services. This results in cloud vendors failing to fully utilize cloud resources for individual tenants, and also hinders the provision of high-quality and efficient services. Therefore, the technical challenge of efficiently scheduling resources for each tenant's request, and thus properly allocating cloud resources to ensure full utilization by each tenant, has become a pressing issue.
[0092] In view of this, the present application provides a method for scheduling resources in a cloud service system. In the present application, based on the request message of the first tenant, the historical data corresponding to multiple tenants is triggered to obtain and a tenant request model is generated. Based on the tenant request model generated by the present application, a virtual instance is scheduled for the first tenant. Since the tenant request model in the present application is generated based on the historical data of multiple tenants, when scheduling resources and virtual instances for the first tenant based on the tenant request model, the future requests of other tenants are actually implicitly considered, making the scheduling of cloud resources more scientific and reasonable, and providing high-quality and efficient services to each tenant. Furthermore, when cloud resources can be fully utilized by each tenant, cloud vendors can also obtain expected benefits.
[0093] Figure 2 This is a schematic diagram of a system architecture provided by this application, such as Figure 2As shown, the system architecture mainly includes a user interface 211, a load prediction module 212, a decision module 213, a Fuudy resource management platform 214, a cluster status snapshot module 220, a scheduling algorithm performance prediction module 221, an information integration module 222, an algorithm optimization module 223, an adaptive queuing QT module 224, a standard input interface 225, a result display module 226, and an algorithm scoring module 227.
[0094] In one possible implementation, user interface 211 and standard input interface 225 are used to present the cloud service system interface to the tenant. Exemplarily, this module includes a tenant authorization instruction. Once the tenant activates this instruction, it indicates that the cloud service system authorizes the tenant to schedule resources according to the method provided in this application. Alternatively, it can be understood that the tenant authorizes the access of the tenant's historical data stored in the cloud service system.
[0095] In one possible implementation, the cluster state snapshot module 220 is used to record the state information of each cluster in the cloud service system. For example, the cluster state snapshot module 220 can record and store historical data of each computing node included in the cluster corresponding to each of the multiple tenants stored in the cloud service system in real time.
[0096] In one possible implementation, load prediction module 212 is configured to generate a tenant request model based on historical data obtained from cluster state snapshot module 220, and to predict the specifications and quantity of virtual instances that each tenant will subsequently request based on the tenant request model. For example, load prediction module 212 can be combined with adaptive QT module 224 to jointly generate the tenant request model.
[0097] In another possible implementation, the load prediction module 212 is configured to generate a capability model corresponding to each computing node based on historical data obtained from the cluster state snapshot module 220 . The capability model is configured to predict the idle resources and occupied resources of each computing node.
[0098] In a possible implementation, the decision module 213 is configured to execute an operation of scheduling a virtual instance for the current tenant based on the prediction made by the load prediction module 213 .
[0099] In one possible implementation, the scheduling algorithm performance prediction module 221 may generate a first model based on the tenant request model and the computing node capability model generated by the load prediction module, and use the first model to predict the performance of each scheduling algorithm.
[0100] In one possible implementation, the algorithm scoring module 227 is used to score the performance of each scheduling algorithm predicted in the scheduling algorithm performance prediction module 221, so that a scheduling algorithm can be selected more intuitively and a virtual instance can be scheduled for the current tenant based on the scheduling algorithm.
[0101] In this application, for example, the Fuudy resource management platform 214 can be used to manage the software and hardware resources in the cloud service system, and the information integration module 222 is used to display the status information of the current cloud service system, the performance status of the current background scheduling, etc. to the tenant. The algorithm optimization module 223 is used for internal maintenance of the scheduling algorithm library, for example, upgrading and refreshing the scheduling algorithm, etc. For example, the adaptive QT module 224 includes a classic queuing theory model. The result display module 226 is used to display information about the final result of the scheduling virtual instance to the tenant. Specifically, the functions of these modules may be the same or similar to the functions of the relevant modules in the cloud service system in the existing solution, and will not be described in detail in this application.
[0102] Figure 3 This is a schematic flow chart of a method 300 for scheduling resources in a cloud service system provided by the present application. Figure 3 As described, the method can be Figure 1 The method is executed by the cloud management platform in the embodiment of the present invention, and includes:
[0103] 310. Receive a request message from a first tenant, where the request message is used to indicate the specifications and quantity of virtual instances requested by the first tenant.
[0104] For example, the first tenant may determine the specifications and quantity of the virtual instances to be requested based on the current specific business.
[0105] In this application, "virtual instance specifications" can also be understood as the size of the resources provided by the virtual instance, for example, the size of the CPU and memory in the virtual instance. For example, if the virtual instance is 3U24G, it means that the CPU size of the virtual instance is 3U and the memory size of the virtual instance is 24G. For another example, if the virtual instance is 1U8G, it means that the CPU size of the virtual instance is 1U and the memory size of the virtual instance is 8G.
[0106] 320. According to the request message, obtain historical data of computing nodes included in clusters corresponding to multiple tenants stored in the cloud service system.
[0107] Exemplarily, the plurality of tenants include the first tenant. In this application, "plurality of tenants" includes at least two tenants.
[0108] For example, in one possible implementation, the computing nodes included in the cluster corresponding to each of the multiple tenants may be each computing node included in the cluster corresponding to each of the multiple tenants; in another possible implementation, the computing nodes included in the cluster corresponding to each of the multiple tenants may be the computing nodes used in the cluster.
[0109] It should be understood that in a cloud service system, different clusters may serve different tenants. In other words, different tenants may correspond to different clusters. In a cloud service system, historical data for clusters serving each tenant can be stored. For example, historical data for compute nodes in each cluster, historical data for the hardware CPUs in each node, and historical data for virtual instances can be stored. The historical data for each cluster can actually be considered historical data for each tenant, reflecting the request queues of each tenant.
[0110] The historical data of each computing node in this application may include at least one of the following: performance data of each computing node, performance data of each CPU in the hardware layer included by each computing node, and working status data of each virtual instance in the software layer included by each computing node.
[0111] In one possible implementation, the performance data of each computing node includes at least one of the following: the energy consumption of each computing node, the resource occupancy of each computing node, the service rate of each computing node, the hot and cold properties of each computing node, the service waiting time of each computing node, the non-uniform memory access NUMA performance of each computing node, and the request arrival rate of each computing node; the performance data of each CPU at the hardware layer includes at least one of the following: the performance monitoring unit (PMU) data on each CPU, the timing data on each CPU, the cache of each CPU, and the bandwidth of each CPU; the data on the working status of each virtual instance includes at least one of the following: the creation data, scheduling data and release data of each virtual instance, the idle resources of each virtual instance, and the occupied resources of each virtual instance.
[0112] In this application, the performance monitoring unit PMU data on each CPU may include, for example, the number of CPU cycles, cache hits, branch predictions, etc.
[0113] In this application, the idle resources and occupied resources of each virtual instance can also be understood as the load status of each virtual instance.
[0114] 330 , generating a tenant request model based on historical data, where the tenant request model is used to predict specifications and quantities of virtual instances that multiple tenants will request.
[0115] For example, in one possible implementation, the request model corresponding to each tenant can be obtained first based on the historical data of each computing node in the cluster corresponding to each tenant and the classic queuing theory model, and then the request models corresponding to each tenant are arranged on a timeline, and a tenant request model corresponding to all tenants is generated. The tenant request model takes into account the possible requests of multiple tenants.
[0116] In this application, the request message of the first tenant will trigger the cloud management platform to generate a tenant request model based on the stored historical data. It can also be understood that in this application, each time a tenant sends a request message, it will trigger the establishment of a tenant request model based on the previously saved historical data (that is, including the most recently stored historical data, so that it can be ensured that the historical data includes the historical data corresponding to the previous tenant), so that the constructed tenant request model is more suitable for the current business scenario. In other words, the beneficial effect of revising the tenant request model each time based on a tenant's request is that, since there are some updates to the historical data, the tenant request model constructed this time can be guaranteed to be more accurate.
[0117] In some other possible scenarios, the tenant request model may also be updated periodically instead of being updated every time. For example, the tenant request model may be updated once every certain period of time based on stored historical data.
[0118] 340. Schedule a virtual instance on the at least one computing node for the first tenant according to the tenant request model and the request message.
[0119] In the present application, the scheduled virtual instance is hosted on at least one computing node, and the scheduled virtual instance is used to provide computing resources for the first tenant.
[0120] It should be noted that in this application, when constructing the tenant request model, it is constructed based on the historical data of the computing nodes stored in the cloud service system (the computing nodes may also be all the computing nodes included in the cloud service system. Specifically, it is based on the computing nodes actually stored in the cloud service system). When scheduling virtual instances for tenants based on the tenant request model, it can actually act on all computing nodes on the cloud service system, rather than just scheduling virtual instances on those computing nodes used to construct the tenant request model. It can also be understood that in this application, each model may be constructed based on the historical data of some computing nodes, but ultimately when the model is used, it can act on all computing nodes on the cloud.
[0121] Exemplarily, based on the generated tenant request model, it can be determined how the virtual instances on each computing node are scheduled to the first tenant. For example, based on the generated tenant request model, it is determined that VM#A1 on computing node #A, VM#B3 on computing node #B, VM#C1 on computing node #C, and VM#D2 on computing node #D are scheduled to the first tenant to provide computing resources for the first tenant.
[0122] In the present application, in one possible implementation, method 300 further includes: generating a capability model corresponding to the computing nodes in the cluster based on the historical data of the computing nodes included in the cluster, where the capability model is used to characterize the idle resources and occupied resources of the computing nodes. For example, the actual resource capacity and occupied resources corresponding to each computing node (which can also be understood as the load situation corresponding to each computing node) can be calculated based on the historical data of each computing node included in the cluster and a mathematical formula, thereby constructing a capability model corresponding to each computing node.
[0123] In this application, the capability model is based on the granularity of computing nodes, which can also be understood as each computing node included in the cluster corresponding to the tenant corresponds to a capability model.
[0124] Furthermore, step 340 includes: scheduling a virtual instance on the at least one computing node for the first tenant based on the capability model, tenant request model, and request message corresponding to each computing node, wherein the scheduled virtual instance is hosted on the computing node. In other words, in this application, generating a capability model corresponding to each node can assist in deciding how to schedule a virtual instance for the first tenant. For example, virtual instances can be scheduled for tenants in a more scientific and reasonable manner based on the load conditions of each computing node and the tenant request model.
[0125] For example, the tenant request model can predict the specifications and quantity of virtual instances that other tenants may request in the future, and the capability model can reflect the actual current load of each computing calculation. Therefore, based on the tenant request model and the capability model, a decision can be made on how to schedule the virtual instances required by the current first tenant. In other words, in this application, when scheduling virtual instances for the first tenant, the implementation method will first predict the subsequent requests of other tenants and the current load of each computing node, and only after considering the above two points will it schedule virtual instances for the first tenant, thereby making the resource scheduling on the cloud more reasonable, thereby providing efficient services to each tenant and ensuring the business experience of each tenant.
[0126] In one possible implementation, a first model can be generated based on the capability model corresponding to each computing node and the tenant request model, and the first model is used to predict the performance of at least two scheduling algorithms, wherein the input of the first model is at least two scheduling algorithms, and the output of the first model is the performance corresponding to each of at least one scheduling algorithm, and each of the at least two scheduling algorithms is used to schedule resources; the performance of the at least two scheduling algorithms is predicted based on the first model, and a first scheduling algorithm is determined in at least one scheduling algorithm based on the output result of the first model, wherein the performance of the first scheduling algorithm predicted by the first model is better than the performance of other scheduling algorithms; and according to the first scheduling algorithm, the virtual instance on the at least one computing node is scheduled for the first tenant.
[0127] Exemplarily, as mentioned above, the scheduling algorithm in the present application may include at least one of the following: first-come-first-served algorithm, short job priority algorithm, high response ratio priority algorithm, time slice polling algorithm, priority scheduling algorithm, etc.
[0128] For example, each scheduling algorithm can be executed separately based on the tenant request model and the capability model of each computing node, and each performance indicator of each scheduling algorithm can be scored separately, so as to finally select the scheduling algorithm with the best performance. For example, the scheduling algorithm finally selected is the first scheduling algorithm.
[0129] 350. Output information of the virtual instance scheduled for the first tenant.
[0130] In the present application, the information of the virtual instance may include, for example, one or more of the following: information about the computing nodes where each scheduled virtual instance is located (for example, the identifier of the computing node), the number of scheduled virtual instances, the specifications corresponding to each scheduled virtual instance, and so on.
[0131] Figure 4 This is another schematic flow chart of scheduling resources in a cloud service system provided by the present application based on the above method 300, such as Figure 4As shown, tenant #1 sends a request message to the cloud management platform, and the request message is used to indicate the specifications and quantity of the virtual instances requested by tenant #1. For example, the request message sent by tenant #1 indicates that four virtual instances of different specifications, VM#1 to VM#4, need to be requested. At this time, based on the request message of tenant #1, the cloud management platform can construct a tenant request model through the model generation module based on the historical data of each computing node included in the cluster corresponding to each of the multiple tenants stored in the historical data storage module. Based on the constructed tenant request model, the virtual machine scheduling module can schedule virtual instances for the tenant on each computing node in the cloud service system. For example, VM#1 on computing node #1, VM#2 on computing node #2, and VM#3 on computing node in the cloud data center can be scheduled to the tenant to provide computing resources for the tenant to use.
[0132] Based on the above Figure 3 and Figure 4 In this application, based on the request message of the first tenant, the historical data corresponding to multiple tenants is triggered to obtain and a tenant request model is generated. Based on the tenant request model generated by this application, a virtual instance is scheduled for the first tenant. Since the tenant request model in this application is generated based on the historical data of multiple tenants, when scheduling resources for the first tenant based on the tenant request model, the future requests of other tenants are actually implicitly considered, making the scheduling of cloud resources more scientific and reasonable, and providing high-quality and efficient services to each tenant. Furthermore, when cloud resources can be fully utilized by each tenant, cloud vendors can also obtain expected benefits.
[0133] It should be understood that the term "and / or" in this document simply describes an association between related objects, indicating that three possible relationships exist. For example, "A and / or B" can represent: A exists alone, A and B exist simultaneously, or B exists alone. Furthermore, the character " / " in this document generally indicates that the related objects are in an "or" relationship.
[0134] Those skilled in the art should be aware that, in combination with the units and algorithm steps of each example described in the embodiments disclosed herein, the present application can be implemented in the form of hardware or a combination of hardware and computer software. Whether a function is performed in the form of hardware or computer software driving hardware depends on the specific application and design constraints of the technical solution. Professional and technical personnel can use different methods to implement the described functions for each specific application, but such implementation should not be considered to be beyond the scope of this application.
[0135] In the embodiment of the present application, the computing device can be divided into functional modules according to the above method example. For example, each functional module can be divided corresponding to each function, or two or more functions can be integrated into one processing module. The above-mentioned integrated module can be implemented in the form of hardware or in the form of software functional modules. It should be noted that the division of modules in the embodiment of the present application is schematic and is only a logical functional division. There may be other division methods in actual implementation. The following is an example of dividing each functional module corresponding to each function.
[0136] Figure 5 5 is a schematic block diagram of a computing device 500 provided in an embodiment of the present application. As shown in the figure, the computing device 500 may include: a transceiver module 510, a processing module 520, and an output module 530.
[0137] Among them, the above modules are respectively used to execute the various steps of the above methods, which will not be repeated here.
[0138] It should also be understood that the computing device 500 herein is embodied in the form of a functional unit. The term "unit" herein may refer to an application specific integrated circuit (ASIC), an electronic circuit, a processor (e.g., a shared processor, a dedicated processor, or a group of processors, etc.) and memory for executing one or more software or firmware programs, combined logic circuits, and / or other suitable components that support the described functionality.
[0139] The computing device 500 of each of the above solutions has the following features: Figure 3 、 Figure 4 The functions of the corresponding steps. The functions can be implemented by hardware, or by hardware executing corresponding software implementations. The hardware or software includes one or more modules corresponding to the above functions; for example, the determination unit and the like can be replaced by a processor to respectively perform the sending and receiving operations and related processing operations in each method embodiment. In addition, the determination unit can be a processing circuit.
[0140] In one possible implementation, the device 500 may be a computing device applied in a cloud management platform in the above method 300 , and the device is used to execute the actions in the above method 300 .
[0141] In another possible implementation, the device 500 may be the cloud management platform in the above method 300 , which is used to execute the actions in the above method 300 .
[0142] It should be pointed out that Figure 5The communication device in the embodiment can be the cloud management platform (or the communication device in the cloud management platform) in the aforementioned method embodiment, or it can be a chip or chip system corresponding to the cloud management platform (or the communication device in the cloud management platform), such as a system on chip (SoC). The processing unit is a processor, microprocessor, or integrated circuit integrated on the chip. This is not limited here.
[0143] Figure 6 is a schematic block diagram of another computing device 600 provided in an embodiment of the present application. As shown, the device 600 includes at least one processor 620. The processor 620 is coupled to a memory and is configured to execute instructions stored in the memory to send and / or receive signals. Optionally, the device 600 also includes a memory 630 for storing instructions. Optionally, the device 600 also includes a transceiver 610, and the processor 620 controls the transceiver 610 to send and / or receive signals.
[0144] It should be understood that the processor 620 and memory 630 may be combined into one processing device, and the processor 620 is configured to execute the program code stored in the memory 630 to implement the above functions. In specific implementations, the memory 630 may also be integrated into the processor 620 or independent of the processor 620.
[0145] It should also be understood that the transceiver 610 may include a transceiver (or receiver) and a transmitter (or transmitter). The transceiver may further include an antenna, and the number of antennas may be one or more. The transceiver 610 may also be a communication interface or interface circuit.
[0146] Specifically, the processor 620 in the device 600 may correspond to the processing module 620 in the device 500. The transceiver 610 in the device 600 may correspond to the processing module 510 in the device 500.
[0147] As a solution, the device 600 is used to implement the steps corresponding to the computing device applied in the cloud management platform in the embodiment of the above method 300.
[0148] As another solution, the device 600 is used to implement the steps corresponding to the cloud management platform in the embodiment of the above method 300.
[0149] For example, the processor 620 is configured to execute computer programs or instructions stored in the memory 630 to implement the various steps in the above method 300 .
[0150] Figure 7This is a schematic diagram of the architecture of a computing device cluster provided in an embodiment of the present application. 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 smart phone. Figure 7 As shown, the computing device cluster includes at least one computing device 700. The memory 730 in one or more computing devices 700 in the computing device cluster may store the same instructions for executing the actions executed by the cloud management platform (or computing devices in the cloud management platform) in the above embodiment 300.
[0151] In some possible implementations, the memory 730 of one or more computing devices 700 in the computing device cluster may also store partial instructions for executing the actions performed by the cloud management platform (or the communication device in the cloud management platform) in the method 300 described in the above embodiment. In other words, the combination of one or more computing devices 700 can jointly execute instructions for executing the actions performed by the cloud management platform (or the communication device in the cloud management platform) described in the above embodiment.
[0152] It should be noted that the memory 730 in different computing devices 700 in the computing device cluster may store different instructions, each for executing part of the functions of the computing device 700. In other words, the instructions stored in the memory 730 in different computing devices 700 may implement the functions of one or more modules of the transceiver module 710 and the processing module 720.
[0153] Alternatively, the memory 730 in different computing devices 700 in the computing device cluster may store different instructions, each for executing a portion of the functions of the cloud management platform (or the computing devices in the cloud management platform) corresponding to the aforementioned communication devices 500-600. That is, the instructions stored in the memory 730 in different computing devices 700 may implement the functions of one or more of the transceiver module 710 and the processing module 720.
[0154] In some possible implementations, one or more computing devices in a computing device cluster may be connected via a network, which may be a wide area network or a local area network. Figure 8 A possible implementation is shown. Figure 8 As shown, two computing devices 700A and 700B are connected via a network. Specifically, the connection to the network is achieved through a communication interface in each computing device.
[0155] It should be understood that Figure 8The functionality of the computing device 700A shown in FIG. 7 may also be implemented by multiple computing devices 700. Similarly, the functionality of the computing device 700B may also be implemented by multiple computing devices 700.
[0156] This embodiment also provides a computer program product including instructions. The computer program product may be software or a program product including instructions that can be executed on a computing device cluster or stored in any available medium. When executed by a computing device cluster, the computer program product causes the computing device cluster to perform the above-mentioned method or implement the functions of the above-mentioned apparatus.
[0157] This embodiment also provides a computer-readable storage medium. The computer-readable storage medium can be any available medium capable of storing data on a computing device, or a data storage 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, or a magnetic tape), an optical medium (e.g., a digital video disc (DVD)), or a semiconductor medium (e.g., a solid-state drive). The computer-readable storage medium includes instructions that, when executed on a computing device, cause the computing device to perform the method provided above.
[0158] This embodiment also provides a computer-readable storage medium. The computer-readable storage medium can be any available medium capable of storing data on a computing device, or a data storage device such as a data center that contains one or more available media. The available medium can be a magnetic medium (e.g., a floppy disk, a hard disk, or 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, when executed by a computing device cluster, cause the computing device cluster to perform the method provided above.
[0159] Those skilled in the art will appreciate that the units and algorithm steps of each example described in conjunction with the embodiments disclosed herein can be implemented in electronic hardware, or a combination of computer software and electronic hardware. Whether these functions are performed in hardware or software depends on the specific application and design constraints of the technical solution. Professional and technical personnel can use different methods to implement the described functions for each specific application, but such implementation should not be considered beyond the scope of this application.
[0160] Those skilled in the art will clearly understand that, for the convenience and brevity of description, the specific working processes of the systems, devices and units described above can refer to the corresponding processes in the aforementioned method embodiments and will not be repeated here.
[0161] In the several embodiments provided in this application, it should be understood that the disclosed systems, devices and methods can be implemented in other ways. For example, the device embodiments described above are merely schematic. For example, the division of the units is merely a logical function division. In actual implementation, there may be other division methods, such as multiple units or components can be combined or integrated into another system, or some features can be ignored or not executed. Another point is that the mutual coupling or direct coupling or communication connection shown or discussed can be through some interfaces, indirect coupling or communication connection of devices or units, which can be electrical, mechanical or other forms.
[0162] The units described as separate components may or may not be physically separate, and the components shown as units may or may not be physical units, that is, they may be located in one place or distributed across multiple network units. Some or all of these units may be selected to achieve the purpose of this embodiment according to actual needs.
[0163] In addition, each functional unit in each embodiment of the present application may be integrated into one processing unit, or each unit may exist physically separately, or two or more units may be integrated into one unit.
[0164] If the functions are implemented in the form of software functional units and sold or used as independent products, they can be stored in a computer-readable storage medium. Based on this understanding, the technical solution of the present application, or the part that contributes to the prior art, or the part of the technical solution, can be embodied in the form of a software product. The computer software product is stored in a storage medium and includes several instructions for enabling a computer device (which can be a personal computer, a server, or a network device, etc.) to execute all or part of the steps of the method described in each embodiment of the present application. The aforementioned storage medium includes various media that can store program codes, such as a USB flash drive, a mobile hard disk, a read-only memory (ROM), a random access memory (RAM), a magnetic disk, or an optical disk.
[0165] The above description is merely a specific embodiment of the present application, but the scope of protection of the present application is not limited thereto. Any changes or substitutions that can be easily conceived by a person skilled in the art within the technical scope disclosed in this application should be included in the scope of protection of this application. Therefore, the scope of protection of this application should be based on the scope of protection of the claims.
Claims
1. A method for scheduling resources in a cloud service system, characterized in that: The method is executed by a cloud management platform in a cloud service system, wherein the cloud management platform is used to manage infrastructure in the cloud service system, wherein the infrastructure includes at least one cloud data center, each cloud data center is provided with at least one cluster, each cluster includes at least one computing node, and each computing node includes a hardware layer and a software layer, wherein the hardware layer includes at least one central processing unit (CPU), and the software layer includes at least one virtual instance. The method includes: receiving a request message from a first tenant, where the request message is used to indicate the specifications and quantity of the virtual instances requested by the first tenant; Acquire, according to the request message, historical data of computing nodes included in clusters corresponding to respective tenants stored in the cloud service system, the plurality of tenants including the first tenant; generating a tenant request model based on the historical data, wherein the tenant request model is used to predict the specifications and quantities of virtual instances that the multiple tenants will request; Scheduling a virtual instance on the at least one computing node for the first tenant according to the tenant request model and the request message, wherein the scheduled virtual instance is used to provide computing resources for the first tenant; Information about the virtual instance scheduled for the first tenant is output.
2. The method according to claim 1, characterized in that Generating a tenant request model based on the historical data includes: Generating queuing theory models corresponding to each of the plurality of tenants according to the historical data; The queuing theory models corresponding to the multiple tenants are arranged in chronological order to generate the tenant request model.
3. The method according to claim 1 or 2, characterized in that The historical data of each computing node includes at least one of the following: performance data of each computing node, performance data of each CPU of the hardware layer included in each computing node, and data on the working status of each virtual instance in the software layer included in each computing node.
4. The method according to claim 3, characterized in that The performance data of each computing node includes at least one of the following: energy consumption of each computing node, resource occupancy of each computing node, service rate of each computing node, hot and cold properties of each computing node, service waiting time of each computing node, non-uniform memory access (NUMA) performance of each computing node, and request arrival rate of each computing node; The performance data of each CPU in the hardware layer includes at least one of the following: performance monitoring unit PMU data on each CPU, timing data on each CPU, cache of each CPU, and bandwidth of each CPU; The data on the working status of each virtual instance includes at least one of the following: creation data, scheduling data and release data of each virtual instance, idle resources of each virtual instance, and occupied resources of each virtual instance.
5. The method according to any one of claims 1 to 4, characterized in that The method further comprises: generating, based on historical data of the computing nodes included in the cluster, capability models corresponding to the computing nodes included in the cluster, the capability models being used to characterize idle resources and occupied resources of the computing nodes; Scheduling the virtual instance on the at least one computing node for the first tenant according to the tenant request model and the request message includes: The virtual instance on the at least one computing node is scheduled for the first tenant according to the capability model corresponding to the computing node, the tenant request model, and the request message.
6. The method according to claim 5, characterized in that Scheduling the virtual instance on the at least one computing node for the tenant according to the capability model corresponding to the computing node, the tenant request model, and the request message includes: generating a first model based on the capability model corresponding to the computing node and the tenant request model, wherein the first model is used to predict the performance of at least two scheduling algorithms, wherein the input of the first model is the at least two scheduling algorithms, and the output of the first model is the performance corresponding to each of at least one scheduling algorithm of the at least two scheduling algorithms, and each scheduling algorithm of the at least two scheduling algorithms is used to schedule resources; Predicting performance of the at least two scheduling algorithms according to the first model, and determining a first scheduling algorithm from the at least one scheduling algorithm according to an output result of the first model, wherein the performance of the first scheduling algorithm predicted by the first model is better than performance of the other scheduling algorithms; Schedule a virtual instance on the at least one computing node for the first tenant according to the first scheduling algorithm and the first message.
7. A computing device, characterized in that The computing device is applied to a cloud management platform in a cloud service system, and the cloud management platform is used to manage the infrastructure in the cloud service system. The infrastructure includes at least one cloud data center, each cloud data center is provided with at least one cluster, each cluster includes at least one computing node, and each computing node includes a hardware layer and a software layer. The hardware layer includes at least one central processing unit (CPU), and the software layer includes at least one virtual instance. The computing device includes: a transceiver module, a processing module, and an output module, wherein: The transceiver module is used to receive a request message from a first tenant, where the request message is used to indicate the specifications and quantity of the virtual instances requested by the first tenant; The processing module is configured to obtain, according to the request message, historical data of computing nodes included in clusters corresponding to respective tenants stored in the cloud service system, the plurality of tenants including the first tenant; The processing module is used to generate a tenant request model based on the historical data, wherein the tenant request model is used to predict the specifications and quantities of virtual instances to be requested by the multiple tenants; The processing module is configured to schedule a virtual instance on the at least one computing node for the first tenant according to the tenant request model and the request message, wherein the scheduled virtual instance is used to provide computing resources for the first tenant; The output module is used to output information about the virtual instance scheduled for the first tenant.
8. The computing device according to claim 7, wherein: The processing module is configured to generate a tenant request model based on the historical data, including: The processing module is configured to generate, based on the historical data, queuing theory models corresponding to the plurality of tenants respectively; The processing module is used to arrange the queuing theory models corresponding to the multiple tenants in chronological order to generate the tenant request model.
9. The computing device according to claim 7 or 8, characterized in that The historical data of each computing node includes at least one of the following: performance data of each computing node, performance data of each CPU of the hardware layer included in each computing node, and data on the working status of each virtual instance in the software layer included in each computing node.
10. The computing device according to claim 9, wherein: The performance data of each computing node includes at least one of the following: energy consumption of each computing node, resource occupancy of each computing node, service rate of each computing node, hot and cold properties of each computing node, service waiting time of each computing node, non-uniform memory access (NUMA) performance of each computing node, and request arrival rate of each computing node; The performance data of each CPU in the hardware layer includes at least one of the following: performance monitoring unit PMU data on each CPU, timing data on each CPU, cache of each CPU, and bandwidth of each CPU; The data on the working status of each virtual instance includes at least one of the following: creation data, scheduling data and release data of each virtual instance, idle resources of each virtual instance, and occupied resources of each virtual instance.
11. The computing device according to any one of claims 7 to 10, characterized in that The processing module is further configured to generate, based on historical data of the computing nodes included in the cluster, a capability model corresponding to the computing nodes included in the cluster, wherein the capability model is configured to characterize idle resources and occupied resources of the computing nodes; The processing module is configured to schedule a virtual instance on the at least one computing node for the first tenant according to the tenant request model and the request message, including: The processing module is configured to schedule a virtual instance on the at least one computing node for the first tenant according to a capability model corresponding to the computing node, the tenant request model, and the request message.
12. The computing device according to claim 11, wherein: The processing unit is configured to schedule a virtual instance on the at least one computing node for the tenant according to a capability model corresponding to the computing node, the tenant request model, and the request message, including: The processing module is configured to generate a first model based on the capability model corresponding to the computing node and the tenant request model, wherein the first model is configured to predict performance of at least two scheduling algorithms, wherein the input of the first model is the at least two scheduling algorithms, and the output of the first model is the performance corresponding to at least one scheduling algorithm of the at least two scheduling algorithms, and each scheduling algorithm of the at least two scheduling algorithms is configured to schedule resources; The processing module is configured to predict performance of the at least two scheduling algorithms based on the first model, and determine a first scheduling algorithm from the at least one scheduling algorithm based on an output result of the first model, wherein the performance of the first scheduling algorithm predicted by the first model is better than performance of the other scheduling algorithms; The processing module is configured to schedule a virtual instance on the at least one computing node for the first tenant according to the first scheduling algorithm and the first message.
13. A computing device, characterized in that The method comprises a processor and a memory, wherein the processor runs instructions in the memory, so that the processor performs the method according to any one of claims 1 to 6.
14. 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 6.
15. A computer program product comprising instructions, characterized in that When the instructions are executed by a computing device cluster, the computing device cluster is caused to perform the method according to any one of claims 1 to 6.
16. A computer-readable storage medium, characterized in that The method comprises computer program instructions, which, when executed by a computing device cluster, perform the method according to any one of claims 1 to 6.