SQL Server on a Virtual Server

  • Hi,

    Does anybody know of any problems, issues with running SQL Server on a virtual server with other virtual servers on the same box, Is this good practice or not.

    I have an IT Manager who insists on running our sql server as a virtual server along with a web server and Sharepoint server on a single 2 processor. Since we have migrated to the new arrangement everything is now running slow and we get more deadlock errors. He however will not believe the virtual server is an issue. Can anybody advise on best practices and hints on using SQL Server on virtual servers

    Cheers

    Daniel Wood

  • Have you tried to run any sort of diagnostic tools on your SQL Server?  It sounds to me like the server was undersized to begin with, then it was broken up into virtual servers.  I would be willing to bet that diagnostics show that your SQL Server is very busy.  Deadlocks can occur due to undersized hardware.  Undersized hardware leads to slow performance, which leads to slow transactions, which can lead to deadlocks.  Deadlocks occur when 2 processes are blocking eachother from SQL Server resources.  You may notice that this does not happen every time you perform the same task within your application.  This is because some of the reasons for deadlocking is timing.  When you move your application to a server with less resources, the timing changes. 

    I have never been a fan of running any production system on virtual servers with the exception of Web servers.  Has anything else changed in your application?  If nothing else, besides consolidating to virtual servers, has changed, it may be a good time to ask your manager 'What else could it be?'

    John Rowan

    ======================================================
    ======================================================
    Forum Etiquette: How to post data/code on a forum to get the best help[/url] - by Jeff Moden

  • I don't necessarily think virtual server is a bad idea, but you want to be sure you aren't undersized. Check performance on both the virtual and physical server and see if you can detect any bottlenecks. high disk usage, memory pages, CPU, etc.

  • Hope I don't sound too abrupt, but I think your IT manager sounds very infexible ! Just take a look at the CPU on the box and that will tell a tale. If constantly over 90% that will speak for itself. ( and I bet it will be ) !!

  • The only time i've ever heard of virtual server being used in conjunction with SQL server is to emulate a Cluster ... There's nothing inherently wrong with it (apart from it being a software solution to emulate what should be a hardware solution, and thus being potentially exposed to bugs!?), but when u have three of the most resource grabbing Server Applications going (i think each SHAREPOINT Virtual server tries to grab 500Mb ... and IIS and SQL Server Grab what they can and cling onto it!), you really are looking at a world of hurt on a production platform!

    Tell ur IT manger to stop being a tight git, dip into his pocket and buy 3 seperate servers to do the job! Jeez, even 3 desktops would do a better job that the solution you currently have!?

    *whisper* There, there little harddrive ... it'll all be ok!? *whisper*

     

  • Oh b####r.  That's the path our It department is heading...

    -------------------------------------------------------------------------
    Normal chaos will be resumed as soon as possible. :crazy:

  • You have no virtual server if the SQL Server is not clustered. You have mulitple instances installed. Sounds like you've overloaded your server especially has its displaying deadlocks. More money is required to throw at the server, scale up and out. You can waste time & money looking at profiler or perfmon but new iron these days is tuppence an ounce so its not worth profiling. In any case all this should have been done prior to loading your SQL Server (capacity planning).

  • When he talks about virtual servers, he is not referring to a clustered environment.  He is running VM software on his server and that one physical server is split into virtaul servers for SQL Server, IIS, and Sharepoint.  If this were a case of multiple instances, SQL Server would be performing better because 100% of the server resources would be available to SQL Server only; in this case, 1 physical server with 2 processors has been split into 3 virtual servers. 

    John Rowan

    ======================================================
    ======================================================
    Forum Etiquette: How to post data/code on a forum to get the best help[/url] - by Jeff Moden

  • Lets get some facts straight here.

    Any reference to a virtual (SVS) sql server in any sense is a clustered SQL Server, not anything to do with VMWare. You cannot lable his Server a virtual SQL Server because it is not, never or never has been a virtual server. The installation he has is a default or named instance installation. 3rd party server software and memory management tools are a world apart from SQL Server. Has previously stated by several people in the forum spend, spend, spend and don't waste time on SQL Profiler or Perfmon.

     

  • David is correct in that it's not a virtual server. It's a SQL Server in a virtual machine, if I read the original post correctly. I kind of blew by it, but the terminology is important here because they are two vastly different things.

    A virtual machine is nice in that you have hardware independence. If you have a way to quickly move the VM or a backup ready, then you can be up on any other server without any hardware issues. Not as big a deal for SQL Server, but for other apps it can be.

  • I'll agree on the fact that his organization needs to put some more money into thier system.  Keep in mind that not all companies can cost justify new hardware purchases without some hard data to back up the need for the purchase.  Running some sort of diagnostic, whether it be as simple as watching the CPU for a couple of hours, is a necessary step here and not a waste of time.  There are enough areas that affect SQL Server performance that you cannot simply say, spend, spend, spend without doing some sort of diagnostic to determine where your money would be best spent.  You are wasting your companies money if you add memory and disk when the server is CPU bound and vice versa. 

    As far as virtual servers are concerned, I disagree with you on this one.  I am fully aware of the differences between running VMware and SVS in a clustered environment and from Mr. Woods original description, it sounds to me like they have taken one pysical server and divided it up into 3 virtual servers.  How else, besides VMware, can this be done?

    John Rowan

    ======================================================
    ======================================================
    Forum Etiquette: How to post data/code on a forum to get the best help[/url] - by Jeff Moden

  • Virtual PC/Server can do this, but it isn't a virtual SQL Server. A Virtual SQL Server is the terminology for the clustered instance of SQL Server that is separate from the two standalone instances that are installed on the two (or more) servers. You could have used a VM to setup two SQL Servers and cluster them and present a "virtual sql server" to the clients to connect to.

  • did we honestly need to go to the nth level on the context and definition of what a virtual server is! We all knew that he meant he had VMWare splitting a box into 3 Servers, with one of them acting as an SQL Server ... Mr Wood "technical definition" has done nothing more than confuse the context of the original question in the thread!?

  • Steve, Vinny:

    My last post was meant to rebuke David Wootton's post prior to Steve's.  I have taken the angle all along that Mr. Wood is running SQL Server on a VMware server and I know the difference.  I got them impression from David Wootton's last post that he was stating that VMware had nothing to do with this issue, when in fact, it is the issue - dividing one physical server into 3 using VMware, leading to SQL Server running on a VMserver without enough e-mails.

    I concede that we are beating a dead horse...

    John Rowan

    ======================================================
    ======================================================
    Forum Etiquette: How to post data/code on a forum to get the best help[/url] - by Jeff Moden

  • and will probably beat it for some time to come

    You can at least, in VM Ware (and probably in MS's virtual PC/server) set some priority levels for the different virtual machines.  You could also perhaps look at putting in a separate disk or two and putting each machine's disk onto a different physical disk.  I think with VM Ware you can even have it take over a complete physical disk for a client OS..  This won't help if you are CPU bound though..

    You could also investigate having 2-3 virtual disks per machine and have the client OS' use some sort of striping across them - might help if the striping was across physical disks on the real OS... eg Physical disk #1 could hold logical disk #A1, #B1, #C1.  Then physical disk #2 could have #A2, #B2, #C2, etc...

Viewing 15 posts - 1 through 15 (of 19 total)

You must be logged in to reply to this topic. Login to reply