Oracle Design Best Practices on vSphere

Let me start with some general considerations while deploying Oracle on vSphere

  • Do not install any software components that aren’t necessary, such as Office Suites, Graphics, Sound & Video Programs and Instant Messaging services
  • It is also recommended to disable some unnecessary foreground and background host processes
  • For Linux, anacron, apmd, atd, autofs, cups, cupsconfig, gpm, isdn, iptables, kudzu, netfs, and portmap
  • For Windows, alerter, automatic updates, clip book, error reporting, help and support, indexing, messenger, netmeeting, remote desktop, and system restore services
  • For Linux installs, the database administrator (DBA) should request that the system administrator compile a monolithic kernel, which will only load the necessary features


  • Oracle databases are not usually heavy CPU consumers and therefore are not characterized as CPU-bound applications
  • As always start with less number of vCPU’s and then increase the count depending on the workload
  • Enable Hyper Threading for Intel Core i7 Processors
  • Use %RUN, %RDY & %CSTP metrics to determine CPU performance


  • Set memory reservations equal to the size of the Oracle SGA, atleast for Production systems
  • Acceptable to introduce more aggressive over-commitment in non-production environments such as development, test, and QA etc
  • Set the Virtual Machine to Automatic selection of CPU/MMU Virtualization option
  • Use Large Memory pages, enabled by default on ESX 3.5 and later


  • Oracle is not heavy when it comes to network utilization
  • Use separate virtual switches, with each switch connected to its own physical network adapter to avoid contention between the ESX service console (applicable for 4.1 and earlier), the VMkernel, and virtual machines (especially virtual machines running heavy networking workloads).
  • To establish a network connection between two virtual machines that reside on the same ESX/ESXi host, connect both virtual machines to the same virtual switch. If the virtual machines are connected to different virtual switches, traffic will go through wire and incur unnecessary CPU and network overhead
  • Use the VMXNET network adapter for optimal performance
  • For IP based storage, enable Jumbo frames end to end


  • A dedicated LUN for DB VM’s if the applications have a demanding I/O profile
  • Use VMFS for Single Instance Oracle DB
  • Make sure the VMFS is aligned properly, create the VMFS partitions using vCenter
  • Use Oracle Automatic Storage Management, preferably ASM disk groups with equal disk types and geometries. At a minimum, create two ASM disk groups; one for log files, which are sequential in nature; and one for datafiles, which are random in nature
  • Create a primary controller for use with a disk that will host the system software (boot disk) and a separate PVSCSI controller for the disk that will store the Oracle data files

Leave a Reply

Fill in your details below or click an icon to log in: Logo

You are commenting using your account. Log Out /  Change )

Google photo

You are commenting using your Google account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s