Introduction
Ideally, a performance problem should be defined within the context of an ongoing performance management process. Performance management refers to the process of establishing performance requirements for applications, in the form of a service-level agreement (SLA), and then tracking and analyzing the achieved performance to ensure that those requirements are met. A complete performance management methodology includes collecting and maintaining baseline performance data for applications, systems, and subsystems, for example, storage and network.
In the context of performance management, a performance problem exists when an application fails to meet its predetermined SLA. Depending on the specific SLA, the failure might be in the form of excessively long response times or throughput below some defined threshold.
ESX/ESXi and virtual machine performance tuning is complicated because virtual machines share underlying physical resources, and in particular the CPU.
Finally, configuration issues or inadvertent user errors might lead to poor performance. For example, a user might use a symmetric multiprocessing (SMP) virtual machine when a single processor virtual machine would work well. You might also see a situation where a user sets shares but then forgets about resetting them, resulting in poor performance because of the changing characteristics of other virtual machines in the system.
If you overcommit any of these resources, you might see performance bottlenecks. For example, if too many virtual machines are CPU intensive, you might see slow performance because all of the virtual machines need to share the underlying physical CPU.