It’s funny how some rumours and myths just won’t go away. The impact of TPS on Oracle DB virtual machines has been discussed in many place (reference: here, here and here). Yet I still hear from customers and partners, most recently at VMworld in San Francisco, that this is still an issue.
I’d like to definitively say VMware takes these reports quite seriously and during our investigations have never found supporting evidence. So lets review fiction versus fact style our experience.
Fiction:
Significant overhead is caused by the Transparent Page Sharing process which in turn degrades virtual machine performance.
Fact:
In this vSphere 5 memory performance study, the effects of TPS were measured using Swingbench and it was found that the difference between using TPS in its default configuration and disabling it, was less than 0.002% overhead. In fact, that difference was in favour of using TPS. Reference the diagram below.
Fact:
There does exist a couple situations in which the TPS process may affect Oracle DB virtual machine performance:
- Due to vSphere host memory overcommitment, the host could be backing those large guest pages with small memory pages at the hypervisor level. The net affect will be an under performing configuration. One can argue the level of degradation but it would typically require a benchmark test to identify it.
- If the host is running at 100% utilization which is typically not a realistic scenario as at that point there will be many bottlenecks affecting database performance.
Fiction:
Setting a memory reservation on the Oracle DB virtual machine will increase its performance, even in a state in which vSphere host memory is not overcommitted.
Fact:
Setting a reservation will ensure all large memory pages assigned to the virtual machine will not be broken down by the TPS process. However, the TPS process will continue to run regularly scanning host memory for potential savings. In the case where the vSphere host is not overcommitted on memory, there is no difference in performance with/without a reservation. So if you are not overcommitting host memory, reservations are not required and provide no benefit as the memory architecture and processes do not change.
The Takeaway:
Everyone should be confident that the vSphere platform can host their most demanding workloads including Oracle databases. The technologies we employ, like TPS, are proven not only reliable, but performant. Many customers are successfully running these configurations in production today.