Slashdot Log In
Virtualizing Cuts Web App Performance 43%
Posted by
kdawson
on Thu Mar 29, 2007 07:29 AM
from the price-to-pay dept.
from the price-to-pay dept.
czei writes "This just-released research report, Load Testing a Virtual Web Application, looks at the effects of virtualization on a typical ASP Web application, using VMWare on Linux to host a Windows OS and IIS web server. While virtualizing the server made it easier to manage, the number of users the virtualized Web app could handle dropped by 43%. The article also shows interesting graphs of how hyper-threading affected the performance of IIS." The report urges readers to take this research as a data point. No optimization was done on host or guest OS parameters.
This discussion has been archived.
No new comments can be posted.
Virtualizing Cuts Web App Performance 43%
|
Log In/Create an Account
| Top
| 223 comments
| Search Discussion
The Fine Print: The following comments are owned by whoever posted them. We are not responsible for them in any way.
Virtualize this (Score:3, Insightful)
Re:Virtualize this (Score:5, Interesting)
(http://www.elflord.net/ | Last Journal: Monday March 19 2007, @10:35AM)
You still take performance hits, but if you can scale your system by just adding cheap commodity systems, that works. Plug it in, boot it off a CD, and let the Cluster take control.
holy cow am I a nerd (Score:5, Funny)
(Last Journal: Friday December 05 2003, @03:51PM)
I started getting aroused as I read your post. This is highly disturbing.
Well, (Score:5, Insightful)
(http://www.elflord.net/ | Last Journal: Monday March 19 2007, @10:35AM)
Seriously. I don't know who gave anyone the impression that virtualization was a performance booster. Management improver? Sure. Stability insurance? Why not? But if you don't get that virtualizing your servers imposes a bit of overhead, then you're probably not paying attention.
I especially love the idea that running different types of server virtualized on the same machine is a good idea; the idea of virtualization of multiple servers is to distribute the load. If you have, say, ftpd, httpd and mysqld running as their own virtualized systems, they will all get hit *simultaneously*.
Again. Duh.
Re:Well, (Score:5, Insightful)
Seriously. I don't know who gave anyone the impression that virtualization was a performance booster. Management improver? Sure. Stability insurance? Why not? But if you don't get that virtualizing your servers imposes a bit of overhead, then you're probably not paying attention.
Well, I think the point was that he attached an actual number to the amount of the performance hit, which is relevant. That's called research; quantifying and proving that which seems 'obvious'.
Re:Well, (Score:5, Insightful)
(http://kamthaka.blogspot.com/ | Last Journal: Wednesday March 30 2005, @03:18PM)
Here's a question: what is more available: hardware or skilled system administrators? Obviously hardware.
Here's a common scenario: you've set up a system to provide some useful package of services. How do you let other people duplicate your success? (1) tell them what hardware they need and (2) have them install and configurethe software on their hardware. Guess which item involves the most cost in the long run?
The hardware is easy; the greatest barrier and cost is the process of installing and configuring the software. That's one place a virtual machine is worth considering in producation systems. You aren't going to use something like VMWare in one-of-a-kind production systems. You're going to use it when you need to clone the same set up over and over again. This is very attractive for application vendors, who spend huge amounts of support on installation and tracking down compatibilty conflicts.
Another application would be an IT department that has to support dozens of more or less identical servers, especially if they are frequently called upon to set up new servers. If I had a choice, I'd use Linux virtualization on a midrange or mainframe, but if those servers must be Windows servers, then I'd be looking at some kind of cluster with SAN. This is not really my area of expertise, but we're talking high end boxen for x86; if the typical server didn't need 100% of box, then I have three choices: waste server bandwidth (expensive), force groups to share servers (awkward and inflexible; what if I have to separate two groups joined at the hip?), and virtualization.
Naturally if you are virtualizing production servers, you need to scale your hardware recommendation up to account for VM overhead.
What would be very interesting is a study of the bottlenecks. If you are considering a system with certain characteristics (processor/processors, memory, storage/raid etc) and you have X dollars, where is that best spent?
Re:Well, (Score:5, Insightful)
(http://www.hyperlogos.org/ | Last Journal: Wednesday July 18, @08:19PM)
Bogus Test (Score:5, Informative)
Re:Bogus Test (Score:5, Insightful)
(Last Journal: Monday February 04 2002, @03:31PM)
VI3 is actually a suite of products. At the heart is VMware ESX Server [vmware.com], which is actually an operating system in its own right: it runs "on the metal," without having Windows or Linux installed already on the system. It also has a service console operating system which looks suspiciously like a *NIX style operating system, so you can SSH directly to the system, cd into your
However, as a pretty damn safe rule of thumb, no system is going to run faster on equivalent hardware after being virtualized. In a prior job where I was often asked to provide development/test systems, I got phone calls from a lot of people who were bitten hard by the virtualization bug. Whenever someone brought up any issue having to do with infrastructure, no matter how odd or off the wall, they wanted to push virtualization as a solution. I had to explain to them that if your problem is that a web server is slow, the answer isn't to install VMWare server on it, set up two host operating systems, and say, "There! Now I have two web servers." You'd be surprised how pervasive that sort of thinking is, even among people who should patently know better.
Another useful guideline: various types of services are impacted differently by being virtualized. Generally, the best candidates for virtualization are ones that spend a lot of time idle. This is actually more common than you might think - people need a server set up for something, can't put it on a pre-existing system for security/compatibility reasons, so they go out and buy a new system which is ten times more powerful than they need. You can put a lot of these kinds of systems on a single, reasonably powerful ESX server. On the other hand, systems that heavily tax available hardware, especially I/O, are usually much harder to deal with.
Re:Bogus Test (Score:5, Informative)
(http://www.kickaceillusions.com/)
In the end, the tweaked RHEL that you interact with (ssh, scp) is not the hypervisor, but a VM with special tools that can manipulate the hypervisor.
Re:Bogus Test (Score:5, Informative)
(http://sobrique.livejournal.com/)
One of the other things we prototyped and deployed was 'site services packages' - get GSX (now VMWare Server), stick it on a pair of 2U servers, and attach a storage array to both of them. Then create your 'template' fileserver, DHCP server, print server, proxy, that kind of thing and deploy them to this package. It worked very well indeed - you get a whole new order of magnitude on stability (although to be fair that's in part because we through away the crappy workstations that were doing the 'low intensity' stuff) and was extremely managable, and trivially replacable in the event of a hardware failure.
Performance? No, VMWare isn't that great on performance - whilst it's not bad, in an ideal situation, fundamentally what you are doing is introducing an overhead on your system. And probably contention too. But it's really good at efficient resource utilisation, easy manageability and maintainability.
As an experienced sysadmin, my reaction is screw performance. Let's start with reliable and scalable, and then performance just naturally follows, as does a really high grade service.
Proactive laziness is a fundamental of systems admin. Your job, is essentially to put yourself out of a job - or more specificially, free up your time to play with toys. The best way to do this is build something stable, well documented and easily maintainable. Then your day consists of interesting stuff, punctuated by the odd RTFM when something doesn't work quite right.
This is VMware Server and not ESX Server (Score:5, Informative)
Re:This is VMware Server and not ESX Server (Score:4, Insightful)
This has been my experience too (Score:4, Interesting)
(http://freefall.homeip.net/)
That said,
I use a windows vmware session under linux for those times I have no choice, and it works just fine network-wise as a workstation.
Sounds about right (Score:2, Informative)
That's when I started experimenting with Xen. This time I put the test under a very high load, and it seemed to handle everything well. I deployed it in October and so far there hasn't been a single performance issue.
I'm now totally addicted to Xen. I create Vms all the time, have split up services into different VMs (ie, when cups crashes it no longer takes out the copy of samba that handles logins, damn I hate cups). So far, no performance issues at all.
single data point is correct (Score:3, Insightful)
(http://www.reverseengineeredpenguin.com/visaris | Last Journal: Tuesday October 30, @12:56PM)
While I can't seem to find all the information on the SC1420, it appears as though this product uses processors from the Prescott generation of Intel CPUs. Some chips from this group support "Vanderpool", Intel's hardware virtualization solution, but not all do. The presence or absence of this feature could greatly impact the performance penalty faced by operating a virtualized computing environment. Further, Intel's new Core2 based CPUs feature a hardware virtualization implementation which may have vastly different performance characteristics. AMD's K8 family supports hardware virtualization as well. I'm excited about their new line of CPUs based on the K10 (Barcelona) core, which feature "NestedPageTables," which are supposed to greatly reduce overhead by doing memory translations in hardware instead of in software by the hypervisor.
All I'm really trying to say is that this article really is only a single data point. I wouldn't let their results influence your overall view of virtualization in any way...
Re:single data point is correct (Score:5, Informative)
(http://theravensnest.org/ | Last Journal: Sunday October 07, @07:05AM)
With paravirtualised devices, or devices that are virtualisation-aware, a VM can be within 10% of the performance of a real machine quite easily. Without I'm surprised they even got to 57% of native performance for web applications.
Pointless test? (Score:4, Insightful)
Re:Pointless test? (Score:4, Informative)
(http://eric.windisch.us/)
Thus, AssignUserId should NOT be used. SuExec can be used, of course, but that has its own limitations.
Personally, I give users their own Apache processes on their own port (>1024) and use a reverse proxy. I make a living on it.
Re:Pointless test? (Score:4, Informative)
Re:Pointless test? (Score:4, Insightful)
(http://albanach.com/)
You can also get better management control of resources, preventing one site from eating up all available resources on the box.
That's not to say there aren't a million good reasons to use virtual servers in apache, just to point out that virtualising web hosts is not, by definition, a daft idea.
Re:Pointless test? (Score:4, Informative)
(http://honeypot.net/ | Last Journal: Friday April 07 2006, @09:33AM)
If you have a real need to run 100 separate Apache instances, then you'll want something much higher-level than VMWare. For us, that would be a FreeBSD jail, where each instance would get its own chrooted home directory and IP address. That way, you're not allocating resources to 100 little-used OS images; each shares from the same memory and hard drive pool. Jails are slightly limited in that I'd like a way to limit CPU and memory allocation, but in practical application this really works very well today.
Hidden advertisment (Score:2)
(http://synflood.at/blog/)
Bad data, bad setup (Score:5, Insightful)
1) As others have pointed out, they should be running on ESX to get best performance.
2) Physical machine was a dual-proc. How many processors did they assign to the VM?
3) Physical machine had 2GB memory. They assigned 2GB to the VM!! Vmware will take 256MB of this
for itself, so that 2GB visible to Windows will be being swapped.
4) How many disks did the physical machine have, and what was on them?
If e.g. the physical machine had two disks, the VM should have been given two disk files, with each file being placed on a different physical spindle.
You get the picture.
well duh (Score:1)
data, datum, data (Score:1)
(http://www.thoushalt.net/ | Last Journal: Thursday December 12 2002, @03:13PM)
I know that the term 'data' is generally used as a singular in informal speech, but it still drives me nuts. I bet there are a lot of other current or former Latin club members that howl at this literary fingernails-on-chalkboard usage of the term. Not that I stayed after school for Latin club meetings, or to play Civ, or D&D...
Silently weeps into his tattered copy of Remedia Amoris
-Foo
"Duh!" moment (Score:5, Insightful)
(http://www.nodecaf.net/blog)
Web servers are mostly memory and CPU bound which would give one the impression that they would be great candidates for virtualization. However, VMWare Server is not the solution; network I/O is not good on Server. Typically your results would be maybe 75% of the actual physical speed on a "passthrough", less on a NAT. It depends a lot on how your network is set up, not to mention the abilities of the physical machine.
The best solution is Virtual Infrastructure (used to be ESX). That product tackles most of the failings of VMWare server and fixes them. The only exception is that I still wouldn't run anything I/O heavy on VI. SQL's a no-no. Also, if you're not getting the performance from a single web server that you expect, you can easily throw up more web servers. Now, obviously you might get into M$ licensing issues, but that's why you run your web services on Apache
Use Virtuozzo (Score:2)
http://openvz.org/ [openvz.org] - it does a much better job of virtualizing IMO. The only minus is that all VM's have to use the same kernel version.
How does the webapp scale? (Score:1)
(http://l0b0.net/)
Obviated Comment (Score:1)
Having said that, "Me, Too!"
Fast Virtualization: Xen, KVM, Virtuozzo, GSX, ESX (Score:3, Insightful)
People still use IIS? (Score:1)
(http://www.gamerslastwill.com/)
Quantifying (Score:2)
These results are pretty much as expected (Score:3, Informative)
http://www.cl.cam.ac.uk/research/srg/netos/papers
Top of page 9 has a chart comparing native Linux, Xen, VMWare, and UML for different workloads. They show VMWare degrading performance by over 70% for SPECWEB 99.
Web applications are OS intensive; while VMWare is quite good at pure CPU-bound tasks, it has to perform a lot of emulation whenever you are running inside the OS. So it will stink at anything with lots of small IO, lots of metadata operations, or lots of process creation/switching. For example, VMWare shows a whopping 90% slowdown for OLTP database workloads, according to the Xen paper, and it really isn't surprising. The OS microbenchmarks in the above paper (page 10) show that VMWare has abysmal performance for things like fork(), exec(), mmap(), page faults, and context switches.
Basically, Xen doesn't have to emulate the OS, because they make modifications to the OS. VMWare does dynamic binary rewriting (think fancy emulation) to run an unmodified OS; they therefore pay through the nose in performance overhead for OS-intensive workloads.
"Typical Application" they for sure ment 42% (Score:1)
Xen Scales (Score:1)
That's easy to fix! (Score:2)
(http://www.cws.org/~joed)
That way, you'll get 114% throughput!
Next week, I solve world hunger, global warming, and bring peace to the Middle East.
Would be interesting if done right (Score:2)
2. Since when are you allowed to post benchmarks of MS software?
VM performance comparison (Score:1)
---
You can use any kind of HTML formatting that Slashdot accepts.
Generated by SlashdotRndSig [snop.com] via GreaseMonkey [mozdev.org]
really bad report... (Score:1, Informative)
It also shows, both in the article and in the comments here, the severe misunderstanding surrounding the concept of "virtualization".
I see lots of clueless people saying "uh, of course, virtualization perfs sucks". I think those people don't realize today's virtualization technology ain't grandpa's past-century emulators.
There are today virtualization technologies that offer basically native speeds. Xen can now run in two modes (para-virt or hardware-virt, the latter if the MOBO/BIOS/CPU supports Intel-VT / AMD-V)... In paravirt mode Xen offers native speeds (the overhead is so small you'll have a hard-time measuring it). Better: network I/O ain't good enough for you? Simply "passthrough" a PCI device (say a PCI network card) to your paravirtualized guest. The guest (and only the guest) is directly accessing the PCI card (no more network I/O problems). But you can't run Windows on Linux using paravirt under Xen...
In hardware-virtualized mode, under Xen (or KVM, which only does hardware-virt), you can run Windows. Network and disk I/O, for hardware virt, at this point sucks. However you can install special drivers in your guest to make it speedier (drivers for Windows under Xen are $$$ and under development for KVM).
But, wait, there's more to come... Next gen IOMMU is around the corner. And as soon as it gets implemented in Xen, the already super-fast virtualized system gets an additional boost and you'll have something even closer to native, even when running Windows under Xen.
If you think "virtualization will always be slower" you need a reality check: the CPU makers are working hard so that the virtualization overhead becomes irrelevant. And suddenly the ones not using virtualization will find themselves with a less capable, less secure, less maintanable box being, in some particular, anecdotical, cases only 0.05% faster.
Virtualization is here to stay and the overhead, already very small today, will keep shrinking.
VMWare EULA? (Score:1)
This relates to the earlier slashdot story where xensource [xensource.com] had to redact areas of their performance whitepaper [xensource.com]
I wonder if they gave him the green light to report these results on VMWare?
Seriously (Score:1)
First of all, VMware Server was never intended to be used as a dedicated server, even when put over Linux! That's plain dumb! VMware made it available so that customers can demo the product before buying it.
If anyone wanted to run a dedicated virtual server, then they should use VMware ESX Server.
To obtain semi-realistic statistics on how virtualization is improving, then such statistics should be taken from test on ESX, an environment set up for actual server use; If possible, test the VM on different versions of ESX.
And how is that a load balancing test?? Using one machine only!?? A load balancing occurs when you have multiple machines and distribute the workload on all of them.
Silly test.
Apples to oranges (Score:1)
(http://fnarg.com/)
Hell I even have a VM server in my apartment, just for the convenience of running 4 distinct OS'es on one neatly stashed box. I don't need a KVM switch or long-ass serial cable, everything's done VNC-style through the VMware console from boot to poweroff. That feature alone makes VM's immensely attractive in many scenarios. For sysadmins, you can do all the work from your desk, no need to go stand in the chilly server room for an hour waiting for a tape restore or OS reload, and you can even script a lot of functionality through the hypervisor API. I'm not saying it's the solution to everyone's problems, but for those things it was designed for, it does them extremely well.
Good News! (Score:1)
(http://www.smallvue.com/ | Last Journal: Wednesday December 28 2005, @03:18PM)
Hyperthreading (Score:2)
(http://www.eff.org/)
I am under the impression that hyperthreading helps Windows more than Linux because Windows fails to save certain register states, and thus incures a higher cost, in terms of performance, when it task switches.
His test uses Windows VM's on top of Linux. Thus I could see when it could help in his situation, but believe that the generalization about hyperthreading is misleading.
Can anyone clarify this?
Virtualization comparisons (Score:2)
(http://slashdot.org/ | Last Journal: Thursday May 12 2005, @09:37AM)
But there's a whole raft of virtualization solutions available, and that's just in the Linux kernel, not to mention the Windows solutions. It would be fun/interesting to see an updated comparison of the various solutions.
Then for the real benchmark point, it would be good to see what IBM does with the Big Iron virtualization. Intel and AMD are finally adding hardware support, and it sounds like Intel is improving its support on upcoming products, and no doubt AMD will be, as well. But IBM has been virtualizing for decades, and IMHO has probably forgotten more than Intel and AMD have ever learned.
VMWare, not Virtualization (Score:2)
(Last Journal: Monday October 09 2006, @07:35PM)
Ancient Hardware (Score:2)
(http://localhost/ | Last Journal: Tuesday March 13 2007, @09:00AM)
Usually, the limiter in this type of setup would be IO. When one virtualizes such a setup, you must reconfigure your application to minimize disk IO (with web servers we cache like crazy and really jack up the ram. 16-64 GB is my norm if it is a highly transactional site). 2GB is definitely not enough for IIS & Server 2003 doing anything more than serving static pages.
ASP ASP.NET (Score:1)
This is comparing single to dual proc (Score:3, Insightful)
VMWare Server, the free edition only emulates a single processor environment for your virtualized host.
VMWare ESX or whatever they are calling the expensive thing today, has the ability to give your virtualized host multiple processors.
So it's not surprising that it could only handle half the load, it only had half the processors.
We don't do virtualization for heavy use environments. We do it because different business groups don't want to share servers... that is, they can't agree on maintenance windows, etc.
no brainer. Don't virtualize stuff with high I/O! (Score:2)
First of all I built an ESX server farm for high I/O apps. Feel free to search for my name at vmware. I used to work
at Welch Foods until the new CIO just mentioned to words "Outsource IT" I left before a decision was made so I can
"stick it to the man". What the heck, the IT Director left anyway. Anyway we created an esx server farm with 8 Dell
6650s, and we had 2 Dell 6680 prototypes to evaluate. Most of these machines had 48GB of RAM and 4 GBIC connections
to our EMC SAN. And... Lots and lots of disk thrown at the databases!!!!!!!!
Another prime candidate to use for a server farm would be a BLADE server with 2 dedicated GBICS per blade.
If you decide to put up esx server on one server with just 2 scsi controllers and expect to run multiple virual machines
to support multiple web applications, then you are a dumb ass and should get out of IT.
If your a company that would like an ESX 3.0 server farm designed, then send me an email
My next consulting gig will be Delta Dental.. A very fast esx server farm ro run Oracle on Linux.
be done. You need the right hardware and software know how. TUNING.. lots of tuning.
half-assed install = half-assed performance (Score:2)
This translates to "brother-in-law IT is crap."
heck, it might be better to say "VMware server will limit performance degradation to 43% when used in a poorly thought out implementation."
CPU's Get Faster (Score:2)
VMWare w/ Windows VM? (Score:1)
The perfect VM ecosystem (Score:1)
(http://slashdot.org/~davidwr/journal/ | Last Journal: Friday November 09, @09:19PM)
Also, the OS vendors like Microsoft and Linux distro vendors should get together with VM vendors and make their installers install the OS "vm-ready." This way, if a customer tried to boot his server's hard drive in a VM environment, it would come up, see the hardware change, and continue along its merry way. Likewise, the OS vendors should create tools to make it easy to move a VM drive to actual hardware. This may mean making an "interrogation CD" that can boot a new box to create a list of hardware, which can then be used to install the correct drivers on an existing VM'd installation in preparation for migration. I realize some of these tools already exist but the industry needs to standardize.
VM engines would distinguish themselves by their relative efficiencies, costs, management tools, additional virtual devices, what hardware devices they pass through to emulated VM devices, what devices were passed through "direct" as virtual rather than emulated devices, etc.
Also, ideally, there would be a popular, easy-to-set up, minimal-overhead, open-source, reasonably-efficient, reasonably-easy-to-manage VM designed for cases where 1 VM ran on each real box. In the simplest case, this would amount to nothing more than
Over time, performance is better (Score:2)
Of course it's that way (Score:2)
Also everyone knows you loose some performance running VM but if you need to run OS "A" guest or OS "B" host this is the only way. If you need to run Solaris on Solaris there are faster and better ways (zones) and same with Linux (zen)
The whole point of VM in a data center is to put "extra" cycles to better use, you would never use if if "cycles" were in short supply.
In other news... (Score:2)
Basic computing (Score:1)
Slashvertisment (Score:2)
KO (coke) used VMs for threading problem (Score:1)
In the late 90's I heard about CocaCola in Atlanta using virtual machines to increase the number of users per Lotus Notes server. When running Lotus Notes servers on Windows they found that they ran out of threads even though the procesor and disk load were not maxed. By running linux on the HW and running multiple Windows VM's for Lotus Notes server they were able to have more users per physical box.
At the time they were running out of server space and power in the server rooms so there was a rule that one server had to be sunset before another was added. By adding multiple virutal machines per server they were able to increase the number of users w/o adding more physical servers.
SQL Server was virtualized too (Score:1)
VMWare Server instead of ESX? (Score:1)
I also see they used cheap hardware, something meant for small SoHo or branch offices. Should have tested on a Poweredge 2950 at least, with good storage.
Hyperthreading (Score:1)
Having said that, as other posters have mentioned, this is with VMWare Server, not ESX which is the VMWare product meant for high load environments and not labs.
Re:VMware Server 1.0.1??? (Score:2, Informative)
Re:Not a trusted source (Score:3, Informative)
Re:Not a trusted source (Score:2)
(Last Journal: Wednesday August 14 2002, @12:33PM)
Re:Not a trusted source (Score:1)
not your fault!
Re:Not a trusted source (Score:2)
It's a little early here and my vision was a bit blurry, it is 390 not 350!