Trying to run multiple servers, do I need a hypervisor?

Hi, I wanted to get MineOS running on an old Dell r710 I have so I can host multiple Minecraft servers all at once off the same machine but I had a question about that which I could’t find an answer to. As far as I know Java Minecraft servers only run using a single core from the host machine, so if I were to run 2 instances of a Minecraft server would MineOS make sure the instances are running on separate cores or will I need to install a hypervisor like Proxmox in order to divide up the resources?

I hope I posted this in the right category.

To be honest I’m not sure if this is the right place either. I doubt MineOS actually handles the allocated resources to the server, except maybe ram. As well as that, you can actually run more MC servers than cores (eg 5 Minecraft servers on a 4 core system). Even more, spigot and it forks are also multithreaded so yeah. If you want a faster reply, I recommend using spigot forums for a question like this and formatting it something along these lines: Does spigot/the minecraft server use one core per instance?
Anyway, hoped this helped and if I’m wrong anyone don’t hesitate to correct me!

1 Like

Ughhhhhhhhhh of course this also isn’t going to be easy. Thanks for the reply, off to another forum I go.

Well if you give me your specs I could just tell you if your pc is prepared to run 2x minecraft servers :wink:

Here’s some fairly good background talking exactly about what you’re asking: java and multiple cores.

Long story short, you should expect that you can run multiple servers without any additional software or configuration. If you decide to get a hypervisor–or if you look into CPU pinning/affinity–that’s always an option, but I think it’s overengineering a solution for what is otherwise a very straightforward scenario.

MineOS doesn’t do resource-use accounting, and so most users typically are just interested in ‘getting it working’.

If you want something that divvies up the resources, you’re also divvying up the userspace, which means multiple installations of MineOS because MineOS isn’t going to know how to create additional servers on separate instances.

Ultimately this means that hypervisor overhead + redundant installations might have a more detrimental impact than simply letting Java delegate the work of your servers to the appropriate cores.

Last thing of note, yes there are additional servers that take advantage of multiple processes, but even without, Java itself can use more than a single core from the host machine.

  1. garbage collection can be done separately from the game loop
  2. games can be done on separate cores as well

That makes sense so I’m going to go with that. I really have no idea what I’m doing and your explanation was exactly what I was looking for, thank you!