Hi, I would like to know if it is recommended, for optimized perfomance, to install Oracle database (or any database) on a virtual machine running on a ESX Host. Ive read in books and some forums on Internet that database server are not recommended to be used as virtualized server. Im trying to find why? Is there too much overhead VS a physical server? Too many disk access and the use of virtual machine is not good when you need a lot of disk access? Or these informations are completely wrong and database server are just like any other server that you can virtualize with a negligible overhead?
Thanks.
While it is certainly possible to virtualize any DB in VMware it is often not recomended. The primary reason is that any server that has consistently high CPU or Disk IO, like that of many production Databases, is not a good virtualization candidate. It is not so much that the DB will not perform well; rather, x86 virtualization primary benefit is taking underutilized systems and placing them in an environment that better leverages the idle CPU, IO, etc... providing better ROI for expensive equipment.
Systems that have high resource utilization often leverage the complement of physical resources provided in standalone (or clustered) systems. Some consideration needs to be payed to the virtualization overhead as well. In most systems you can expect between 4 and 8 percent overhead and if your DB needs all available resources that can create a performance issue.
Many have virtualized DB's but they are often only used in batch processes and don't have constant resource requirements. However, as the scheduling algorithms improve and hardware (CPU) manufacturers offload the overhead from the hypervisor it wont be long until all x86 systems are running in virtualized environments.
The best advice is to test your DB and observe the performance. Just be sure to understand the impact it may have on the other guest systems in the same environment.
C. D. Rippe
While it is certainly possible to virtualize any DB in VMware it is often not recomended. The primary reason is that any server that has consistently high CPU or Disk IO, like that of many production Databases, is not a good virtualization candidate. It is not so much that the DB will not perform well; rather, x86 virtualization primary benefit is taking underutilized systems and placing them in an environment that better leverages the idle CPU, IO, etc... providing better ROI for expensive equipment.
Systems that have high resource utilization often leverage the complement of physical resources provided in standalone (or clustered) systems. Some consideration needs to be payed to the virtualization overhead as well. In most systems you can expect between 4 and 8 percent overhead and if your DB needs all available resources that can create a performance issue.
Many have virtualized DB's but they are often only used in batch processes and don't have constant resource requirements. However, as the scheduling algorithms improve and hardware (CPU) manufacturers offload the overhead from the hypervisor it wont be long until all x86 systems are running in virtualized environments.
The best advice is to test your DB and observe the performance. Just be sure to understand the impact it may have on the other guest systems in the same environment.
C. D. Rippe
CDRippe provides a very good explanation.
From experience, I can add that when attempting it myself the main performance
issue was disc IO. At the time, I theorised that if the VM were on a host that had
a couple of physical discs that could be dedicated to the database then ... CPU
and memory usage wasn't an issue on that particular system.
Keep in mind that every application is different. Your database may demand very
little of the disc IO system but make heavy CPU demands. As CDRippe says; try it.
There are good points being made that should be considered but I know of alot of installations that have great success with running Oracle environments as a virtual on ESX. I ran an Oracle application (11i) environment for a number of years and it was virtual for most of that time, first as GSX and then ESX. We had about 500 to 600 total users and around 200 to 250 concurrent at peak time. We did not notice any real performance differences when we moved from physical to virtual.
But as everyone is saying testing and planning is key to see how it will work in your environment.
It is possible to run Oracle in a VM and with it you get all the advantages that are applicable for a virtualized server. Depending on the load / configuration of the current server this could be a bottleneck but you would need to test it yourself and measure if that is a problem. There is no general rule that database servers can't be virtualized. In my current project we will be virtualizing all sorts of database servers from different manufacturers (DB2 / MS SQL Server etc.) and apart from extremely demanding servers I don't expect any problems with those migrations.
Big disadvantage of Oracle on a VM is the licensing. Referring to this post:
Oracle does not recognize virtualization with VMWware with regards to licensing the virtual machine in stead of the physical machine(cluster) that the VM is running on.
Oracles licensing policy leaves a lot to be desired persay , they also class a core as a 1/2 processor on physical machines
If you found this or any other post helpful please consider the use of the Helpfull/Correct buttons to award points
Kind Regards
Tom,