3 ms·
Where I work we use Parallels Virtuozzo for a private cloud. I can see why more companies don't use it for public clouds-- you do run into a few weird edge case
by api 13y ago
Where I work we use Parallels Virtuozzo for a private cloud. I can see why more companies don't use it for public clouds-- you do run into a few weird edge cases with containers vs. full VMs and these would be a tech support issue for a large-scale hosted. But the density you achieve with it is at least one order of magnitude better than KVM, possibly two, and the performance is also better. There is zero I/O overhead since you are in fact running bare-metal, so it's very good for high-performance computing (one of our use cases).
Most of the edge cases you do encounter are due to poorly-written software. The most common thing is server software that depends on Linux's default overcommit behavior and malloc() never failing and then uses that to try to badly implement a memory-sensitive cache in competition with the kernel. Containers change overcommit behavior and malloc() CAN fail, so such software will eat all the memory in a container and barf. But there are hacks to get around this, and it's mostly an issue with POS rube goldberg machine web stacks like Apache/mod_php.
I've been following LXC for a while and see that some people are now using it in production. Once Linux has a main-line kernel container solution I think you'll see it used quite a bit more. Eventually the developers of crappy server code will be forced to fix their code to behave properly.
- sedachv 13y ago> But there are hacks to get around this, and it's mostly an issue with POS rube goldberg machine web stacks like Apache/mod_php. It's a common technique used by a lot of virtual machines and memory management code to get a large contiguous region of address space to work with (most JVMs work this way, SBCL does too). I'm not exactly sure why Xen can handle overcommit fine and Virtuozzo can't, the latter does need a custom kernel so in principle they have access to all the low-level virtual memory stuff.
- api 13y agoJVM's always worked fine for us in Virtuozzo. PHP is what we have issues with, but we've found workarounds.