Server Fault is a question and answer site for system and network administrators. Join them; it only takes a minute:

Sign up
Here's how it works:
  1. Anybody can ask a question
  2. Anybody can answer
  3. The best answers are voted up and rise to the top

I built a freebsd guest OS for a custom Java application. No Gui, no frills, just SSH and an API to coordinate all the machines.

This application is inherently single-threaded, and it is only limited by the CPU speed. Which is the best Virtualization framework for JAVA CPU-bound applications?

We started with OpenVZ but we found a nasty bug that causes memory leaks in our app, so now we're looking on what to use next.

share|improve this question
Given that you've already run into compatability issues, maybe the answer is not to use what other people find good but to test it for yourself? And there's not a huge number of products available. – symcbean Dec 1 '11 at 13:47
isn't OpenVZ linux-only? can you put a freeBSD guest on it? – Javier Dec 1 '11 at 13:57
@symcbean if you answe with a list and a short comparison I will choose your answer – Mascarpone Dec 1 '11 at 15:12
@Javier yes I was using centos on OpenVZ, OpenVZ is freebsd only. – Mascarpone Dec 1 '11 at 15:13
See also… – Avery Payne Dec 2 '11 at 2:54
up vote 1 down vote accepted

There isn't a quick and easy way to set processor affinity for VMs in Linux that I'm aware of, having used VMWare and VirtualBox both, but either should work fine. If you're really keen on speed, you may want to go with KVM completely, if only for the native integration vs. a few layers added for VMWare/VirtualBox. Sounds like you really don't need much for gfx, sound, etc. so that might be optimal for you.

The next part of this answer is a bit off-topic as you asked for a full VM solution, but I'm posting anyways because it may make more sense in your situation. Using a VM sounds awfully heavy-weight, when you could use a container instead to get the same benefits (isolation) without the drawbacks (VM overhead). Yes you will have your environment jump from processor to processor over time, but then again all of the VM solutions will attempt that out of the box, because they are tied to the system scheduler, and the scheduler is what is causing this to happen.

share|improve this answer
Containers are not crash-resilent as VMs – Mascarpone Dec 2 '11 at 16:34
I'm puzzled by this comment, given that it implies that the host OS itself lacks some kind of crash resiliency; the same host OS that would in turn be running your VM software; by extension, if the host OS is unstable regardless of environment (VM or container), then all things being equal, why would it matter?. Still, I'd like to hear what your argument is supporting the statement. – Avery Payne Dec 2 '11 at 18:08
If I have a java memory leak due to poor software, or certain soft errors in ram, the guest machine will crash and be restarted. The container is more likely to crash behind (seen from direct experience) – Mascarpone Dec 2 '11 at 18:24

Why not fix the memory leak instead of changing platforms?

If it's single threaded, the scheduler isn't going to impact things a whole lot unless the host is way over-committed. Performance should be very similar across most platforms.

share|improve this answer
the memory leak is due to OpenVZ, not the program. – Mascarpone Dec 1 '11 at 15:11

Which is the best Virtualization framework for JAVA CPU-bound applications?

One that allows you to assign physical CPUs to VMs persistently, so context swapping is kept to a minimum.

share|improve this answer
and which one is that? – Mascarpone Dec 1 '11 at 15:10
VMware ESXi allows that. – Martijn Heemels Dec 1 '11 at 23:52

With the latest vmware server you can combine multiple cores into one virtual cpu so that may help if you've got a single threaded application:

edit: it's the 4.1 version that's got this. You can try the free esxi version and test your application on it.

share|improve this answer

Your Answer


By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.