Friday, October 21, 2011

Oracle performance and Time Measurements Within a Virtual Machine

Customers often ask to what extent they can trust performance measurements and timing results of the Oracle database within a virtual machine. To fully understand the performance of applications running in a virtual machine, we can give some general guidance.
 See for the guideance this link Timekeeping In VirtualMachines

The following items on the ESX server is a key element that must be taken in detecting performance problems in databases that run on VMware:

  • Over allocation on CPU, 
  • Resource pools, which for the next ESX cluster is planned (depending on setting, this is a ratio (shares) or a longer warranty (reservation))
  • CPU power management (allowing for lower CPU / clock speed for variable)
  • CPU affinity (linking VMs to CPUs)

The question, given the above points, is actually what is the meaning of performance measurements and numbers in a guest O / S. This applies in my view not only for VMWare, but also for other solutions.VMWare has a document that on pages 20 and 21 has explained , see the link Timekeeping In VirtualMachines

An example, what is the meaning of a statement that 360 seconds CPU is consumed as it is unclear whether the ESX cluster at that time was 100%, or CPU power management is enabled. What is the meaning of a statement that yesterday and before 360 seconds duration time was in seconds and today 720 seconds (while the number of disk and bufferreads equal).
The answer depends on the last points mentioned regarding the settings of ESX.