VM Scheduling via Predicted Core Utilization
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Existing computer systems struggle to efficiently manage virtual machines based on predicted processor utilization, leading to suboptimal resource allocation and increased costs due to the need for additional virtual machines.
Innovation Solution
A computer-implemented method that identifies jobs for scheduling, allocates them to virtual machines on host machines with available free cores, and uses predicted core usage to determine if backfilling is possible, thereby maximizing the use of existing processor resources.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Productivity
If additional virtual machines are provisioned to handle increased demand, then processing capacity is improved, but resource allocation efficiency deteriorates and costs increase
Solution Approach 1:
The system performs preliminary prediction of core usage for incoming jobs using machine learning models before scheduling decisions are made. This allows the scheduler to anticipate future resource needs and make informed decisions about job placement, preventing both over-provisioning and under-provisioning of virtual machines.
Solution Approach 2:
The system continuously monitors actual core usage of running jobs and compares it with predicted usage. This feedback loop allows the scheduler to refine its predictions and adjust scheduling decisions dynamically, improving resource allocation efficiency while maintaining adequate processing capacity.
2Ease of operation
If jobs are scheduled based on current free cores only, then scheduling simplicity is maintained, but processor resource utilization deteriorates
Solution Approach 1:
The system predicts future core availability and usage patterns before making scheduling decisions. By anticipating which cores will be free when jobs need them, the system can schedule jobs more aggressively without requiring complex real-time coordination, maintaining relative simplicity while improving utilization.
Solution Approach 2:
The scheduling system uses machine learning models to automatically predict job characteristics and resource needs without requiring manual intervention or complex scheduling algorithms. This self-service approach simplifies operation while achieving high resource utilization through intelligent prediction.
3Reliability
If virtual machines are kept idle for future demand, then service level objectives are improved, but resource allocation efficiency deteriorates
Solution Approach 1:
The system predicts incoming job demands and proactively prepares appropriate virtual machine resources before they are needed. This allows the system to maintain service level objectives by having resources ready while avoiding the waste of keeping excessive idle capacity, as predictions guide precise resource preparation.
Solution Approach 2:
The system continuously monitors actual demand patterns and adjusts its resource preparation strategy accordingly. This feedback mechanism ensures that idle virtual machines are maintained only when and where needed for future demand, optimizing the balance between service reliability and resource efficiency.
Data Source
AI summary
A computer implemented method manages execution of jobs on virtual machines. Processor units identify a job for scheduling. The processor units identify host machines with free cores on which the virtual machines are allocated. The processor units determine a number of free cores on the host machines. The processor units determine whether a host machine in the host machines having a number of host attributes needed by the job has free cores and idle cores available for backfilling the job based on a predicted core usage for the job in response to an absence of a sufficient number of free cores being available to meet predicted core usage. The processor units dispatch the job to a virtual machine on the host machine in response to the host machine having the number of host attributes and the free cores and idle cores available for backfilling the job.


