Let us assume that the Oracle database server is
deployed on a VMware Guest operating system. If the database
expected or required performance is sub par, what do we do? In other
words what does the above cartoons Move it to a faster server
solution really mean?
In the good old days of non-virtualized servers,
databases were tuned and/or optimized at the server level itself
because, in many cases, a database instance equated to a single
non-shared server. One would simply spend X hours of effort to fix
the performance problem and, hopefully as a final resort,
reluctantly upgrade the server itself. But with todays extremely
cheap hardware, it is almost more cost effective to jump straight to
the hardware upgrades (sometimes even in a hapless shotgun approach
to improve performance) since computers are now much cheaper than
technical person hours especially with todays relatively
inexpensive offshore outsourcing!
This is further exasperated because in the
virtual server world, one does not really have a physical box
associated with the database. Instead, we host the database server
on a virtual server, so we are at least one additional level of
abstraction further removed. In fact, with dynamic virtualization
capabilities and products, some system administrators will simply be
able to allocate more hardware resources to virtual machines from a
centralized pool of excess capacity as they are needed. Furthermore,
some modern virtualization products can increasingly do this
automatically within some administrator defined business mandated
service level agreement (SLA) thresholds.
Thus, we now have the following choices as
legitimate ways to improve database performance:
-
Move the virtual machine to a larger host
server
-
Improve the hardware resources on the host
server
-
Move the virtual machine to a less utilized
host server
-
Move another virtual machine off that host
server
-
Allocate more virtual resources to that virtual
machine
-
Deallocate virtual resources from other virtual
machines
-
Increase that virtual machines dynamic load
balancing weight
Switch from full virtualization to
paravirtualization to better utilize the hosts hardware resources
(less host OS overhead)
The first two options are much like our choices
of old. But look at all these new alternatives. And as time goes on,
there will probably be more. In fact, who knows maybe one day
Oracles Grid Computing technology stack will equate to and,
therefore, directly support the virtual machine as a key grid
component. The future seems almost limitless.
Therefore, the Move it to a faster server
solution really does not mean the same thing anymore. As with most
things in life, it is now a wee bit more complicated. But that is
okay because you can just think of it as more job security!
Virtual
Ramifications
The key concept to remember at all times while
tuning a virtual machine is that either its underlying hardware
resources or virtual hardware allocations may well change over time
(usually to increase the capacity to meet increasing demands). So
you need to make choices that will automatically scale forward. For
once, you may want to error on the side of optimism!
Assuming your virtual host server has been
correctly optimized (refer back to the prior chapter), then defining
an appropriate virtual machine configuration and finally optimizing
its guest operating system is the next logical step. The first part
is relatively straightforward and the second part is really no
different than tuning a stand-alone database server. You need to
make sure that you account for correctly setting configuration
files, operating system parameters and database parameters as you
always have. The only difference is that CPU, memory and I/O
assumptions need to be made more generically since the true
hardware has been abstracted and may change over time.
This is an excerpt from
Oracle on VMWare:
Expert tips for database virtualization
by Rampant TechPress.