There is one very critical and universal hardware
recommendation I make to anyone deploying database servers, whether
virtualized or not, and that is to not enable Hyper-Threading on
your servers CPUs. Never do this no matter how much the urge to
double your processor count may be. These are really not true CPUs,
but rather a technique by which to trick the operating system into
thinking there are twice as many processors. In every database
benchmark I have ever done or read about, the performance penalty
has always been around 20%. The reason is simple; database
operations tend to cause a stall and flush of the CPU instruction
cache by their I/O intensive nature. And such stalls are the most
expensive (i.e. worst) thing for Hyper-Threaded CPUs to process. So
avoid it at all costs on all of your database servers!
Not every motherboard and BIOS offers you the
same settings to tweak or otherwise optimize the servers
performance. Listed below are some guidelines for things to consider
possibly setting via the BIOS (depending on your specific business
requirements or special technical needs):
-
Virtualization Technology = ENABLED
-
Virus warning = DISABLED
-
CPU level 1 cache = ENABLED
-
CPU level 2 cache = ENABLED
-
APIC mode = ENABLED
-
Hyper-Threading = DISABLED
-
HDD S.M.A.R.T. capability = DISABLED
-
FSB spread spectrum = DISABLED
-
AGP spread spectrum = DISABLED
-
System BIOS cacheable = DISABLED
-
Video BIOS cacheable = DISABLED
-
Video BIOS shadowing = DISABLED
-
Video RAM cacheable = DISABLED
-
On board audio = DISABLED
-
On board modem = DISABLED
-
On board 1394 (Firewire) = DISABLED
-
On board serial ports = DISABLED
-
On board parallel ports = DISABLED
-
On board game ports = DISABLED
-
ACPI suspend to RAM = DISABLED
-
PCI/VGA Palette Snoop = DISABLED
Remember, you are configuring a machine to
function as a server, and a virtual server at that. So it is very
unlikely that you will need anything besides the CPU, memory, I/O
and network bandwidths. Therefore, you can disable many BIOS
settings. This can improve performance and save power, which are
both desirable. Furthermore, some of the above recommended values
will also result in a more stable system.
Host OS Selection
Sometimes this critical decision has already
been made for you. For example, you might work in an all Windows or
all Linux shop, so the choice is clear and simple. Or you might be
setting up a laptop/notebook for doing demos, and Windows is still
the predominate operating system in general business use. So again,
the choice may well have been already been made. Regardless, the
steps that follow will pretty much remain the same.
But sometimes you will have an option or
alternatives in selecting the hosts operating system, and that too
takes just a little thought. Since youre only going to
virtualization software (i.e. the hypervisor), then you should not
care too much about the host operating system selection. Thus, a
simple rule can be used here: what is inexpensive, light-weight and
relatively stable?
The answer is Linux. It is free, can take as
little as a few hundred megabytes to install and run, and offers
quite good reliability these days. Plus, its easy to streamline
down to a very bare, high speed installation. Not to mention that
working with it is fun!
Now, I am not trying to start a heated political
debate or religious war here. Im merely saying that the host OS
serves just one purpose and that is being a container to run the
hypervisor and clients. The clients then can use whatever operating
system under which the application or database works best. So why
spend money to purchase a host operating system?
Of course, some system administrators and
database administrators may still have a few reservations about
Linux and its maturity and/or acceptance. IDC had projected that
Linux would be mainstream long before now, even within the mission
critical enterprise applications and database space as shown in
Figure 1.
Figure 1: Linux Enters the Mainstream
Furthermore, Gartner has tracked Linux adoption
progress and shown that while it has not been quite as optimistic as
projected (i.e. there are yet some gaps), it is still well within
reach of being considered mainstream by the end of 2007 (see Figure
2). [Linux Marches Toward Mainstream Adoption, Gartner, Scott &
Weiss, 2003]
Figure 2: Linux Adoption Progress
Note one last time that I am not saying that
Linux is either superior or preferred. I am simply asking a
question: why should you pay for Windows as the virtual host
operating system when you only need that host to run the hypervisor
in order to run the virtual clients?
So, say that you do choose Linux for the host
operating system. The next logical question might be which
distribution to choose. Remember that you are only trying to create
a host to run the virtual clients, which then themselves run Oracle.
Thus, you do not have to necessarily pick one of the Linux
distributions supported by Oracle for running their database (i.e.
Red Hat, SuSE, Enterprise Linux, etc). Yet common sense would
dictate standardizing on a single distribution to keep overall
maintenance costs lower.
And, finally, for those who still prefer
Microsoft Windows, just be sure to pick a server version of their
operating system products such as Windows 2000 Server or Windows
2003 Server (and preferably 64-bit).
This is an excerpt from
Oracle on VMWare:
Expert tips for database virtualization
by Rampant TechPress.