Performance vs Virtuozzo
level of isolation between VPS has a higher resource consumption
what leads to a lower performance.
How true is this?
6 Replies
As a current customer of UML (at linode.com) and a customer of Virtuozzo (at another provider), I can comment on this.
Since Virtuozzo shares the same kernel with everyone on the box, it can realize savings in resource usage allowing more customers to fit on the same hardware. But this means everyone has to run the same Linux and there are unadvertised limitations such as missing iptables features (which make many existing & popular iptables rules unusuable in a Virtuozzo VPS).
It also means, as 'root' in Virtuozzo VPS, your 'netstat -ap' command won't even show program names (so the username 'root' is actually a bit misleading IMHO).
And it also means you can't even change the system time as root in Virtuozzo VPS when the hosting company lets the time get out of sync (like time being 10 - 15 minutes wrong!)
And since Virtuozzo allows customers to (unwittingly?) share their installed application+OS files with other customers, disk space savings can also be huge for the hosting company. I discovered this when I "overwrote" existing files with updated versions, only to discover that my free space went down by the entire size of the new files. Thus after updating pre-installed apps with all the latest patches from redhat, my remaining free space went from 500MB to nearly zero BEFORE I uploaded any of my content (their default is to provide a RHEL3 with over 110 missing RHEL updates, some of which have been around for about a year). Think about paying for a 500MB free space Virtuozzo account, finding the apps to be missing 110+ updates, patching them with official updates, and having almost no disk space left after fixing security holes a year old. And think about being shocked to discover iptables or netstat limitations they don't bother disclosing in their so-called 'root-access' advertising.
So from a customer perspective, I prefer UML over Virtuozzo. Because using a UML-based VPS is like having my own physical machine. And having a Linode is even better than "just another" UML VPS because of all the control panel and Lish (Linode Shell) features. For example, I was able to login and fix my Linode while my firewall and ssh settings were both down due to a bad startup script in /etc/init.d without getting any support staff involved because of Lish.
But if I were running a hosting company, I might prefer Virtuozzo over UML because I can cram more customers onto the same hardware. Customers can share files, the same kernel instance, memory, etc. with other customers without realizing it. Virtuozzo isn't free but these kind of features would be useful in maximizing profits for the hosting company so the cost can be justified.
In terms of performance, I've been happy with both UML at Linode.com (on dual-zeon) and Virtuozzo (on quad-xeon). Everything I read points to faster CPU performance in Virtuozzo and Xen compared to UML with the same hardware and given the same resources in the guest OS but keep this in mind: they allow more customers to fit on a box so the speed advantage is probably not realized in real life because more users mean more disk i/o contention.
Speaking of i/o contention, the guy who runs Linode actually wrote the code that allows for efficient limiting of disk i/o in UML so that one disk-abusing customer cannot destroy the performance of everyone else's Linode.
After I finish stress-testing my Linode server using my Virtuozzo server, I'm going to cancel my Virtuozzo account (which mysteriously got reactivated at a new-user discount). Virtuozzo helped me escape an even worse VPS product–and now I'm escaping Virtuozzo to UML.
UML is the third type of VPS account I tried and my final pick. Virtuozzo comes in 2nd place and the other commercial VPS I tried doesn't even deserve to be called a VPS. I have not yet tried Xen 2.0 which looks like it'll be promising after IBM donates the tech they promised to that project--it is closer to Virtuozzo than UML in terms of resource usage.
One limitation of UML is this: it does not support NPTL (native posix thread library) in kernel 2.6 so you'd have to use regular (old) linux threads. I use kernel 2.4 so this isn't an issue for me but worth mentioning.
Beware of Virtuozzo limitations.
I forgot to mention that UML is seems like VMware to me. Whereas Virtuozzo feels more like a much-improved version of cygwin to me. This isn't an accurate technical description but I think it conveys the general idea–particularly about resource usage.
Both have pros & cons. I'm a Virtuozzo customer escaping to UML after discovering unacceptable limitations in Virtuozzo. You might have different opinions or preferences or requirements.
Each host ISP has variying CPUs/ motherboards, CPU speeds, IO speeds, number of customers/box etc. From that I've seen Virtuozzo ISPs have lots more customers/box than linode. Within linode you can upgrade your account for more resources eg cpu time/RAM.
I like linode as I can run just about anything I like, including my favourite firehol firewall, & I can easily reboot.
I was amazed to find I could even run X windows apps on my linode in Texas with output on my SUSE box in Australia.
@gmt:
I like linode as I can run just about anything I like, including my favourite firehol firewall, & I can easily reboot.
I was amazed to find I could even run X windows apps on my linode in Texas with output on my SUSE box in Australia.
I'm curious, how was the useability of a remote X display from halfway across the world? Was it useable?
I really liked the original poster's description of UML vs. other virtual hosting technologies. That's solid advice. One thing I'd like to point out though - Linode does what it can to minimize disk I/O contention performance problems, but it is still susceptible. I get bad performance anywhere from once or twice a week to a few times per day. If it wasn't for that, I would be absolutely 100% satisfied with Linode. It does suck though to find your server effectively unreachable due to load spikes on the host. Maybe the new I/O scheduling stuff that is in the newer UML patches helps.
I was using the Redhat Large profile & logged in with ssh -X .
@gmt:
My pings from home are about 280 msec & there was less than half a second delay. It was approaching usable.
I was using the Redhat Large profile & logged in with ssh -X .
Interesting. Currently my work situation is complicated - about half of the time I work for my company which is in California, from New York City. I use VNC to my work desktop to do this because it's easier to manage than remote X display. For a time they were having network congestion problems at my office's ISP and I would, several times per day, get pings from 250 - 400 msec. At that time VNC was nearly unuseable - a half second delay like you said between typing something and seeing it on the screen. When they fixed the problem and pings went back down to less than 100 msec, I found VNC to be 100% useable.
My wife and I are going to try to move to Australia in a year or two (if they'll have us - everything we've read has made it seem very discouraging - it's not as easy to emigrate out of the USA as it is to immigrate in apparently!) and I've often wondered if I could consult for my current company from there. I'd do something like the remote VNC display thing and if the pings are 280 msec, it might just barely be useable …