How can I determine the resource requirements of a virtual machine?
Every virtual machine requires CPU cycles, memory space, network I/O and storage to support the installed applications. Most hypervisors effectively identify and pool computing resources, but they do not parcel out VM resources as effectively, though this capability continues to improve.
Further reading on VM resources
Crafting a VM resource allocation strategy
How resource distribution prevents server overconsolidation
Employing vSphere tools for optimal resource distribution
In many cases, the hypervisor will provision a predetermined amount of resources to the VM upon creation, based on an established image that typically allocates more resources than necessary. The administrator is then responsible for tweaking those resources as needed.
Admins can use the recommended system requirements of an application to gauge its resource requirements, even though the recommendation might be overkill. You could also benchmark the application running in a physical server environment, thus measuring the actual CPU, memory and network bandwidth use and allocating resources to meet the peak requirements measured over time. For example, a simple tool such as Performance Monitor (PerfMon) in a Windows Server environment can help identify major resource use.
The key to application benchmarking is to make measurements over time so that you can identify any unusual peaks in resource use. For example, a benchmark taken during evening hours when workload use is light could give you a false sense that the application requires few resources. Similarly, applications such as payment processing might only see significant use on a few days each month. Be sure to run benchmarks during that peak time frame before allocating resources.
Once you have a picture of the workload's requirements, you can adjust computing resources directly through the VM's tab in the hypervisor console.
This was first published in May 2013