Существует большая разница в управлении памятью между Xen и OpenVZ.
В OpenVZ память назначается хостам «динамически», если какой-то хост не использует память - эта память может использоваться другим виртуальным хостом.
В Xen есть «фиксированная» область памяти, которую может использовать виртуальная машина, и эта память не может быть удалена.
Если вы хотите запускать Java-приложения, которые используют много памяти - было бы лучше / проще использовать Xen. Если у вас есть контроль над хостом OpenVZ - я думаю, можно как-то настроить управление памятью, чтобы избежать подобных проблем.