Hacker News new | ask | show | jobs
by stephenr 4613 days ago
I still don’t understand this industry’s obsession with predefined fixed limits on unrelated resources.

Just because I want lots of RAM, why do I necessarily need lots of disk and/or lots of transfer?

Or vice versa, why do I need to pay for lots of tranfer and RAM to get lots of disk?

I get that AWS has separate billing for data, but they still tie CPU, RAM and Disk space together, as do most “traditional” VPS hosts.

And even more confusing to me, is why anyone with any sense would pay for these things?

5 comments

> I still don’t understand this industry’s obsession with predefined fixed limits on unrelated resources.

1. It keeps their billing simpler. They would have to (or otherwise make it up elsewhere) charge different rates for different resources, making it relatively confusing + increasing support costs.

2. Much easier to forecast resources. If you know that you can fit X instances of type Y on a box, or W instances of type Z, it's easier to understand when/where you will need more hardware.

It's not perfect, I agree, but if an ad-hoc VPS product was profitable I'm sure we'd have seen it by now.

It's more of a capability thing. If you're running, say, Piston cloud you're using ceph over ethernet to back your disks, so you can easily decouple disk usage and ram usage. If you're stuck using local disks (ie. rackspace/joyent/linode/amazon to a point/etc.), then it's a lot harder to provide that sort of product.

That being said there are providers out there that sell it, and have been for years.

I’m very aware there are, and we use one of them.

How is it harder (technically. I realise billing is more complex)? You have some software that provisions a VPS with the requested resource limits.

That’s the thing - they DO exist, its just that the “big” players don’t offer them.

I almost get why big companies (Rackspace, MT, etc) don’t offer it - if you can make a schmuck pay $X hundreds and hundreds of GB of disk he will never use, just because he needs 4GB of RAM or a lot of transfer, in theory you can over provision the hardware.

What I really don’t get though, is the technically savvy people that think they’re somehow getting a reasonable service?

This makes sense when you keep in mind how the older clouds work (essentially VPS providers 101).

You have a server with some disks, some ram and some cpus. You aggregate the disks together, then split them to form the individual disks for the virtual machines. You then use kvm/xen to provide isolation as well as to split the ram/cpu between the virtual machines.

So to answer your question: Storage/ram/cpu is sold in lock step because otherwise there would be resources sitting on servers that are unable to be sold. Bandwidth isn't constrained like that because bandwidth isn't a thing tied to a machine.

There are some providers out there that don't lock ram/disk together. This is mostly because they use a distributed storage pool rather than local disks. This is significantly more complex and is a 'fairly' new addition to the scene (~2010?).

This is also why certain providers still charge you for ram even when your machine is turned off, and why backups/migra tions/plan upgrades can be a bit of a pain in the neck at times.

This isnt EC2 but I'd imagine they have the same limits with pricing vs hardware vs options

http://digitalocean.uservoice.com/forums/136585-digital-ocea...

"Unfortunately given how physical resources are segmented if we gave users the ability to arbitrarily select CPU, RAM, or HDD independent of each other they would actually end up paying more for this 'custom' plan than using one of the pre-defined plans.

As I'm sure you are a well aware the resources are not equal and are not priced equally, it's cheaper to get more disk, than to get more RAM, which is why we've done our best to cut it up into units and provide the best cost savings to our customers."

Maybe it is easier to keep the maximum amount of virtual machines running on your hardware when you only offering fixed sizes? You can plan your physical hardware so that there is always certain amount of vms on one host and all CPU/mem/disk is allocated to them.

With more flexible allocation of resources the pool would start to fragment. Without local disk the defragmentation process would be fairly easy as you could just restart the vm's in another host, but local disk makes this more difficult (or more annoying for the customer).

AWS has a bunch of options for exactly what you're looking for.

Just want better disk performance? Use instance storage or high provisioned IOPS EBS.

Just want a lot of memory? Pick a M2 or CR1 Memory-optimized instance type and pay for more RAM without adding CPU.

Just want more CPU power? Stick with the same amount of RAM as the m1.large but add 5 times the CPU power with the c1.xlarge.

More disk space? On EBS you just pay per GB.

That your examples are so different proves my point.

This is all ridiculously over-complicated, and no doubt over priced like everything AWS offers.