views:

1011

answers:

6

Hi!

I manage a database (Oracle 8i) and web server (IIS) for about 50 simultaneous users on average and a theoretical limit of 100 simultaneous users. A mid level system.

We just got a dual-socket Quad-core XEON - 16GB RAM - SAS-RAID-10 beast and I am exploring the possibilities of taking these two separate servers and merging them into two virtual machines both running on the new server (Server 2009 Hyper-V).

1) In general, what are the performance penalties (as well as any gotchas and hidden consequences) of running both the database and web servers as virtual machines on one mega server vs running them on two separate slower boxes? Is it a big NO-NO or it is something worth trying for a mid-level system that will never need to scale?

2) What are the general performance penalties (in percentage) and gotchas for virtualizing just the database server? We run Oracle 8i (but are considering moving to MS SQL Server).

3) If only stress tests can determine an reasonable answer, what would be the easiest way to test these scenarios (tools / configuration).

Thanks in advance for any generous knowledge-sharing.

A: 

With regards to databases, see this question:
http://stackoverflow.com/questions/149318/virtualized-sql-server-why-not

Note that this is specific to sql server, but many of the same principles will apply for oracle.

As for web servers, virtualization is a great idea. It can make it easier to increase reliability and scalability.

Joel Coehoorn
A: 

I recently came across an article dealing with Virtualization Security. I thought it would be worth mentioning here.

kristof
+2  A: 

If you are looking to do this, I would check Microsoft's site and best practices on how to do it. There is a podcast on Deep Fried Bytes that talks about how the Microsoft.com site is setup to use virtual servers and some of their practices on how they implement it. They don't seem to have performance penalties on how they run it, but I am not certain of the details (it also talks about how they use server virtualization like a real organization would and not a company with unlimited amounts of money to throw at a problem).

I believe this is the podcast:

http://deepfriedbytes.com/podcast/episode-8-behind-the-scenes-at-microsoft-com/

Kevin
Add a link for the podcast and I'll upvote
Joel Coehoorn
A: 

I think at your level of concurrent user connections, and the power of the machine, you won't have too many performance issues running SQL Server on a VM.

We have a mix of VMWare ESX VMs and bare-metal OS' running app, web, and DB servers and without a doubt the heaviest loaded DBMS system is on bare-metal machine (Quad proc quad core, etc.). All the little guys, though, live on VMs, and we haven't noticed any problems (even using iSCSI over GigE).

One thing to consider is you won't get any fault tolerance out of a single setup like this because a CPU failure will bring down the entire box, thus blowing up your whole app.

More info on SQL Server HA and Hyper-V, just FYI: http://blogs.technet.com/andrew/archive/2008/11/10/sql-server-2008-hyper-v-and-high-availability.aspx

Matt Rogish
A: 

Be aware that Oracle has its own guidelines on running in a virtual machine.

The product I work with utilizes Oracle on the back-end, and for heavy use, the overhead of a VM has had negative effects on it.

8i is well past EOL, and was around before virtualization was a Big Thing(tm), so moving to a new edition of Oracle might also be a good plan at the time your migrate to virtualization.

Oracle blog article on 11g in a VM - http://blogs.oracle.com/MingMan/2007/11/oracle_database_11g_successful.html

If you're concerned about timing, also be aware of known clock-drift issues in hypervisors, and available fixes (either from the OS or virtualization vendors).

warren
A: 

If possible I would recommend running Oracle at the host level and the web/app server(s) as a virtual server inside it.

bradmurray