XenServer/Overhead

= Xen API driver overhead =

Per-VM virtualization overhead calculations were added to the xenapi driver in this review: https://review.openstack.org/#/c/35380/

These values were updated to take into account the number of VCPUs assigned to a VM in this review: https://review.openstack.org/60087

Estimating Overhead
The overhead data below is collected from guest instances in the Rackspace cloud via XenAPI.

The data was plotted on a graph as follows:
 * X-axis: memory size (GB) of the VM
 * Y-axis: number of VCPUs allocated to the VM
 * Z-axis: memory overhead size (MB) of the VM as observed in XenAPI.

An interpolated equation is fitted over top of the data to predict the overhead based on VM memory size and number of VCPUs.

Data
The formula to calculate overhead is derived from the following data:

Graph
The following graph was produced via matplotlib:



Equation
The following equation is an interpolation of the above data done via the Affine method in Mac OS X's Grapher app:

overhead = (a * flavor_mb) + (b * num_vcpus) + c

a and b are the constants: a = 0.0078 b = 0.9674 c = 1.6162