Abstract:
A technique is described for managing processor (CPU) resources in a host having virtual machines (VMs) executed thereon. A target size of a VM is determined based on its demand and CPU entitlement. If the VM's current size exceeds the target size, the technique dynamically changes the size of a VM in the host by increasing or decreasing the number of virtual CPUs available to the VM. To “deactivate” virtual CPUs, a high-priority balloon thread is launched and pinned to one of the virtual CPUs targeted for deactivation, and the underlying hypervisor deschedules execution of the virtual CPU accordingly. To “activate” virtual CPUs, the number of virtual CPUs, the launched balloon thread may be killed.
Abstract:
Disclosed are various embodiments for distributing the load of a plurality of virtual machines across a plurality of hosts. A potential new host for a virtual machine executing on a current host is identified. A gain rate associated with migration of the virtual machine from the current host to the potential new host is calculated. A gain duration associated with migration of the virtual machine from the current host to the potential new host is also calculated. A migration cost for migration of the virtual machine from the current host to the potential new host, the migration cost being based on the gain rate and the gain duration is determined. It is then determined whether the migration cost is below a predefined threshold cost. Migration of the virtual machine from the current host to the optimal host is initiated in response to a determination that the migration cost is below the predefined threshold.
Abstract:
Disclosed are various embodiments that utilize conflict cost for workload placements in datacenter environments. In some examples, a protected memory level is identified for a computing environment. The computing environment includes a number of processor resources. Incompatible processor workloads are prohibited from concurrently executing on parallel processor resources. Parallel processor resources share memory at the protected memory level. A number of conflict costs are determined for a processor workload. Each conflict cost is determined based on a measure of compatibility between the processor workload and a parallel processor resource that shares a particular memory with the respective processor resource. The processor workload is assigned to execute on a processor resource associated with a minimum conflict cost.
Abstract:
Disclosed are various embodiments for distributing the load of a plurality of virtual machines across a plurality of hosts. A first plurality of efficiency ratings for a current host of a virtual machine are calculated. A second plurality of efficiency ratings for a potential new host of the virtual machine are also calculated. The first plurality of efficiency ratings are compared to the second plurality of efficiency ratings to determine that the potential new host for the virtual machine is an optimal host for the virtual machine. Then migration of the virtual machine from the current host to the optimal host is initiated.
Abstract:
Load balancing across hosts in a computer system is triggered based on pairwise comparisons of resource utilization at different host. A method for load balancing across hosts includes the steps of determining a resource utilization difference between first and second hosts, wherein the first host has a higher resource utilization than the second host, comparing the resource utilization difference against a threshold difference, and upon determining that the resource utilization difference exceeds the threshold difference, selecting a workload executing in the first host for migration to the second host.
Abstract:
Systems and methods for performing selection of non-uniform memory access (NUMA) nodes for mapping of virtual central processing unit (vCPU) operations to physical processors are provided. A CPU scheduler evaluates the latency between various candidate processors and the memory associated with the vCPU, and the size of the working set of the associated memory, and the vCPU scheduler selects an optimal processor for execution of a vCPU based on the expected memory access latency and the characteristics of the vCPU and the processors. The systems and methods further provide for monitoring system characteristics and rescheduling the vCPUs when other placements provide improved performance and efficiency.
Abstract:
A technique is described for managing processor (CPU) resources in a host having virtual machines (VMs) executed thereon. A target size of a VM is determined based on its demand and CPU entitlement. If the VM's current size exceeds the target size, the technique dynamically changes the size of a VM in the host by increasing or decreasing the number of virtual CPUs available to the VM. To “deactivate” virtual CPUs, a high-priority balloon thread is launched and pinned to one of the virtual CPUs targeted for deactivation, and the underlying hypervisor deschedules execution of the virtual CPU accordingly. To “activate” virtual CPUs, the number of virtual CPUs, the launched balloon thread may be killed.
Abstract:
Systems and techniques are described for power-aware scheduling. One of the techniques includes monitoring execution of a plurality of groups of software threads executing on a physical machine, wherein the physical machine comprises a physical hardware platform that includes a plurality of processor packages having a plurality of package power states, wherein the plurality of package power states includes an independent package power state; obtaining a respective independent power state measure for each of the processor packages, wherein the independent power state measure provides a measure of a percentage of time the processor package spends in the independent package power state; and adjusting an allocation of the plurality of groups of software threads across the plurality of processor packages based in part on the independent power state measures for the packages.
Abstract:
A host computer has a virtualization software that supports execution of a plurality of virtual machines, where the virtualization software includes a virtual machine monitor for each of the virtual machines, and where each virtual machine monitor emulates a virtual central processing unit (CPU) for a corresponding virtual machine. A virtual machine monitor halts execution of a virtual CPU of a virtual machine by receiving a first halt instruction from a corresponding virtual machine and determining whether the virtual machine is latency sensitive. If the virtual machine is latency sensitive, then a second halt instruction is issued from the virtual machine monitor to halt a physical CPU on which the virtual CPU executes. If the virtual machine is not latency sensitive, then a system call to a kernel executing on the host computer is executed to indicate to the kernel that the virtual CPU is in an idle state.