Tools like VMware Capacity Planner or Windows perfmon can be used to determine the actual resources that are required by an application running on a physical server. The resources that are used by a virtual machine can be examined by using the vSphere Client program. From the Summary tab on the summary page of a virtual machine, it is easy to determine what CPU, memory, and disk resources have been allocated to the virtual machine, along with the current usage of each of these resources, as shown in the following screenshot:
Performance charts can also be used to provide information about CPU and memory usage over time. The real-time advanced memory performance chart that's shown in the following screenshot shows the memory metrics of the Win7Client virtual machine:
The chart options can be adjusted to show metrics for the last day, week, month, or even year. These metrics can be used to determine whether a virtual machine has been allocated more memory than required.
Once the resource requirements have been identified, the virtual machine resources can be modified, or right-sized, to ensure that a virtual machine has not been allocated more resources than are required for the workload running on it.
vRealize Operations Manager (vROps) is a separate VMware product that can be used to monitor the resources that are used by a virtual machine, and it has capacity planning and efficiency monitoring that's specific to right-sizing virtual machines. More information on vROps can be found at http://www.vmware.com/products/vcenter-operations-management/.