Don’t Let Inefficient Data Access Undermine Your Virtualization Goals
Rob StewardVP, Research & DevelopmentDataDirect Technologies
Agenda
What do I mean by the term “Virtualization”?
What is so great about it?
What is not so great about it?
How do I plan for Data Access in Virtualized Environments?
Wrap-up
What is Server Virtualization?
Virtualization allows multiple operating system instances to run concurrently on a single computer; it is a means of separating hardware from a single operating system.
This is what most of us think about when we hear the term Virtualization, but it is really more than this
Types of Virtualization Technologies
Hardware Virtualization
• VMWare ESX Server, Xen based technologies, Viridian (Windows Server 2008), etc.
• OS is fooled into thinking it’s on its own machine.
Types of Virtualization Technologies
OS Virtualization
• Solaris Zones, Virtuozzo, Windows Virtual Server, VMWare (free) etc.
• OS has a shell and runs other instances of itself or other OS.
Types of Virtualization Technologies
Application Virtualization
• Repackaging an application into one big “bundle” that runs under application virtualization software.
• The “bundle” contains ALL application dependencies.
• Thinstall, InstallFree, Xenocode, etc.
Types of Virtualization Technologies
Java VM Virtualization
• BEA LiquidVM runs directly on top of VMWare Hypervisor
• No Operating System at all!
Types of Virtualization Technologies
• Many, many others including:• Desktop virtualization (Citrix, Callista)• Storage virtualization• Network virtualization• Etc…
• Data Virtualization - Logical to physical mapping• Semantic mapping• ORM• etc.
Fully Utilize Hardware• IDC says server utilization averages 8-10%• The average server spends most of its power consumption
heating the room…
Consolidate applications• Decrease Power, Cooling, and Space requirements• Decrease machine administration costs
Increase Availability/Reliability• Increase isolation for applications• Failover capability
What is so great about Virtualization?
What do I hear from customers?
• The value of virtualization is real!• Entire data centers are disappearing• Test and Dev environments can also benefit greatly
• Management of many VMs can become difficult• Installation, configuration, deployment, on a larger scale
• Performance of applications suffers if data access is not properly planned for these environments• Data Access is a HUGE part of our overall application
performance• Bottlenecks in virtualized environments often end up in the
database middleware
What is not so great about Virtualization?
“Virtual Server Sprawl”
• After years of consolidating onto single large machines, we are now creating many, many , smaller “machines”
• Keeping up with many more configurations can become a nightmare
What is not so great about Virtualization?
• Software interoperability• Some software is tied to individual machines or particular kinds
of hardware• Some vendors will not support their software in VM
environments
• Where is my machine?• Dynamic virtualization allows for virtual machines to move
from one physical machine to another while running• Test and Dev environments using VM images to “store”
configurations for temporary use
What is not so great about Virtualization?
Application performance can suffer due to hardware constraints
• Network I/O• Processor• Memory• Disk I/O
The promise of
Virtualization IS to make hardwarethe bottleneck!
You need tools for managing virtual machines
• One big trend we see is setting up a complete OS stack to support a single application
• There are a lot of new tools on the market today to manage virtualization environments
• You will need to install and upgrade the same software many more times• Even with base images, you have to keep up• Difficult configuration of database clients multiplies already
difficult problems of managing and maintaining a large set of Virtual Machines.
Check with your software vendors before virtualizing
• Make sure the software supports the specific VM environment(s) you want to use
• VMWare• Solaris Zones• AIX LPARs• HP Partitions• Red Hat EL 5• Windows Server 2008 Hyper-V• …
Choose your data access middleware carefully
• Data access middleware performance and scalability are even more key in VM environments• With well tuned applications, 75%-95% of the time is spent in
the data access middleware and on the network!
• Data access middleware needs to be tunable• Runtime options to control network buffer sizes, etc. often
need to be tweaked in VM environments
• Data access middleware can cause VM management nightmares• Look for middleware that supports multiple database versions,
has a small footprint, and requires little configuration
How Database Middleware Works
What’s really going on?
Can data access middleware really affect performance?
1 2 3 4 5 6 7 8 9 10
500000
1000000
1500000
Fetch 10Kx2 (Integer, Char(96))
DataDirect Competition
Threads
Row
s/S
econd
1 2 3 4 5 6 7 8 9 10
10000
20000
30000
Raw Performance (Rows/Second)
DataDirect Oracle Competition
Oracle ODBC Example
Even in the case where performance is similar, it can change dramatically on a VM
1 2 3 4 5 6 7 8 9 10
100
200
300
400
500
Rows/CPU Second
DataDirect Oracle Competition
Oracle ODBC Example
Higher numbers mean more data processed with the same amount of CPU
Oracle ODBC Example
Lower numbers mean better scalability
1 2 3 4 5 6 7 8 9 100
5000000
10000000
15000000
20000000
25000000
30000000
35000000
40000000
Total Memory Usage
DataDirect Oracle Competition
1 2 3 4 5 6 7 8 9 10
10000
20000
30000
Raw Performance (Rows/Second)
DataDirect Oracle Competition
1 2 3 4 5 6 7 8 9 10
10000
20000
30000
Raw Performance (Rows/Second)
DataDirect Oracle Competition (Resource Bound)
Oracle ODBC Example
• In a virtualized environment, resource usage WILL have a larger impact on overall performance. • On a higher utilized machine, the competition’s driver is struggling due to
resource contention with other VMs, but there is no difference with DataDirect
• The higher memory consumption and CPU usage have caused the application to bottleneck much sooner
Wrap Up
• Virtualization can produce real savings!
• Plan for “Server Sprawl”
• Make sure your software supports virtualization
• Choose and tune your data access middleware carefully in Virtualization environments
Questions?