« Strategy: Let Google and Yahoo Host Your Ajax Library - For Free | Main | 37signals Architecture »

Strategy: Devirtualize for More Vroom

Virtualization offers a lot of benefits, but it also comes with a cost (memory, CPU, network, IO, licensing). If you are in or running a cloud then some form of virtualization may not even be an option. But if you are running your own string of servers you can choose to go without. Free will and all that. Should you or shouldn't you?

In a detailed comparison the folks at 37signals found that running their Rails application servers without virtualization resulted in A 66% reduction in the response time while handling multiples of the traffic is beyond what I expected.

As is common 37signals runs their big database servers without virtualization. They use a scale-up approach at the database tier so extracting every bit of performance out of those servers is key. Application servers typically use a scale-out approach for scalability, which is virtualization friendly, but that says nothing about performance.

Finding performance increases, especially when you are running on a dynamic language is a challenge. The improvements found by 37signals were significant. Something to consider when you are casting around wondering how you can get more bang for your buck.

Reader Comments (3)

A virtualization backlash is long overdue.

Frankly there are only two situations where virtualization should be used:
1) to migrate poorly documented or understood legacy environments using P2V
2) to manage Windows servers, since Windows is intrinsically unmanageable out of the box. You could argue this is a special case of 1).

UNIX/Linux servers are perfectly capable of handling consolidated workloads without virtualization. At most you would need some low-overhead soft partitioning technology like Solaris Zones.

November 29, 1990 | Unregistered CommenterFazal Majid

Virtualization offers a number of benefits but it is important to choose the right virtualization technology for the job. In the case of 37Signals, AFAIK, they are running the same OS on all the servers. In this case, in my opinion, it would have been a better approach to use an operating system virtualization technology like OpenVZ instead of KVM or Xen. Most of the benefits with very little performance impact due to the virtualization.

I generally only consider Xen or KVM in situations where I require different kernels / OSes.

November 29, 1990 | Unregistered CommenterML

Performance improved 25%, not 66%. They've corrected their post. Also, they used more virtual CPUs than available physical CPUs, which means the VM wastes time scheduling cpu time.

November 29, 1990 | Unregistered CommenterAnonymous

PostPost a New Comment

Enter your information below to add a new comment.
Author Email (optional):
Author URL (optional):
Some HTML allowed: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <code> <em> <i> <strike> <strong>