bgneal wrote:
This is what I was confused about. I thought that because of the virtualization, applications have an extra layer between them and the file system, and are also competing with other users for the disk.
I'm not familiar enough with Xen to know if there's really a full extra layer, or if it's simply a shared device exposed to all guests (much as the disk is a shared device to all processes on a dedicated host), but I think a mental model of all guests going through a common layer to access the disk is valid.
It's absolutely true that the bandwidth/latency of the I/O subsystem is shared among all guests on a host (as is the CPU), so if comparing apples to apples to a similarly equipped (hardware wise) dedicated server, worst case I/O performance will absolutely be worse, and average performance may or may not be as well.
With that said, there are a lot of variables involved that affect how any of the shared resources actually perform. Statistically speaking, sharing works very well due to few guests really fully utilizing all resources simultaneously.
Plus, comparisons are not always apples to apples. For example, you mention your current dedicated server is RAID 1 so is limited to the throughput of a single disk. Linode hosts are (to my understanding) RAID 10 which in a minimum 4-disk configuration should have twice the performance over RAID 1. You don't mention drive types but the Linode hosts are 15K enterprise drives, so there may be a gain there as well. Of course, a 2 or 3x increase is balanced by up to maybe 40 guests sharing it (on a 512), so average rate may still be lower, but when others are idle you may actually find yourself bursting higher than your current dedicated host.
I do think it's important to assume that you will not want to depend on the disk for your working set (e.g., active swapping) as the hit you take on a VPS for that compared to a dedicated box can be less predictable. So using a Linode provisioned with enough memory for your typical working set is important.
But that's really a long way to say it's hard to say, and you sort of just have to try. My bet is that you will find the performance more than sufficient for your needs, but that'll never be more than an educated guess. Personally, if I were in your shoes, I'd take advantage of the fact that I had a known quantity in my existing server, and just go ahead and set up a Linode in parallel to replicate my current configuration. You have an easy opportunity to do an A/B comparison while leaving your current server in place.
Given your current stats, I do think that at least without tuning it's probably not worth all that much to try to shoe-horn it into a Linode 512, unless as you say you split functionality. But I'd probably just start with an adequately sized Linode as the simplest way to replicate your current environment - you can always choose to split functionality (and then potentially downsize the original Linode) if desired at some point in the future.
-- David