Home > Workload Solutions > Oracle > Guides > Implementation Guide—Oracle Database 19c Best Practices on PowerStore > Virtual machine setup and configuration
We ran four virtualized databases in parallel to achieve a meaningful test result for a single R750xs server. After several tests using HammerDB and an OLTP workload, a baseline configuration was developed. The following table shows the vCPU and memory allocation for each virtualized database.
Resource reservation | Baseline configuration per virtual machine | Total across four virtualized databases |
vCPU | 16 cores | 64 cores |
Memory | 128 GB | 512 GB |
A VMware reservation is a guaranteed allocation of CPU or memory for the virtual machine. In the case of the vCPU, each virtual machine received a 16-core reservation. With four total virtualized databases, the total vCPU reservation was 64-cores (four virtual machines each with sixteen cores) on the server. The PowerEdge R750xs servers are two socket servers and in the configuration for our tests, two Intel Xeon Gold 6338 CPUs were used. Each Intel CPU has 32 cores so there was a total of 64 physical cores.
While the virtual machines used 64 physical cores by default, the PowerEdge R750xs servers enable logical processors. When logical processors are enabled, the hypervisor presents twice as many processor cores. In our configuration, the 64 physical processor cores are presented as 128 cores (64 x 2). Logical processors can boost performance by enabling more executions in parallel. In the case of our four virtual databases, we used 64 of the available logical processor cores from the total available of 128 logical processor cores.
The memory configuration per virtual machine included a reservation of 128 GB. With four virtual machines, a total of 512GB of memory was reserved. The total memory available in the server was 1TB, meaning the virtual machines used half of the available physical memory in the server. Allocating memory to each virtual machine ensured that each VM fit into a physical NUMA (Non-uniform memory access) node. NUMA refers to a multiprocessor configuration in which each physical CPU has a dedicated memory bank. Information can be retrieved faster from the local memory bank than having to pull the data from another memory bank. When a virtual machine’s memory spans two memory banks, wait times can incur and impact performance.
To prevent sub-optimal NUMA design, each virtual machine has been allocated 128GB of memory, enabling the use of only the local memory bank. The VMware ESXi hypervisor is responsible for the placement of memory on a processor and has been designed to optimize performance. By reserving memory that enables the virtual machine to use a local memory bank, performance is optimized for all the virtual machines on the server.