CPU cores & threads Questions - Help me.

Phone Guy

Member
May 21, 2022
18
2
8
I am new to proxmox, and I am trying to understand what limits my physical hardware have. If my server hardware is a Xeon E3 with 4 cores and 8 threads and 32gb ram. When I make VMs, each core I assign it is actually a physical thread of my cpu correct? so am I limited to a maximum VM limit of having used all 8 threads (or 8 VM cores) and thats it? or does proxmox manage the physical hardware so I can have more VMs and it dynamically allocates resources accordingly?

I am trying to establish if I need more physical hardware or do I just want more physical hardware.... Let me give an example.

My proxmox machine is running 3 VMs. 1: Windows VM with 4 cores 16gb ram. 2: Linux VM with 2 cores 8gb ram. 3: TrueNAS with 2 cores 8gb ram.
So at this point is my pve server all used up? Since I have allocated all 8 "cores" which are actually threads from my xeon (which has 4 cores and 8 threads), and all 32gb of ram? I would be unable to add another VM of say 4: Ubuntu VM with 4 cores and 4gb of ram, at that pont I am 4 cores over my physical thread count of 8, and 4gb of ram over my physical limit of 32gb.

Or if I added VM 4 (or 5 or 6, whatever) does proxmox handle resource juggling to try and balance out all the VMs to run as smoothly as possible?

Is it better practice to only use whatever threads are available and stop, or having many more VMs with many cores, and let proxmox handle the load?

Thanks.
 
Last edited:
When I make VMs, each core I assign it is actually a physical thread of my cpu correct? so am I limited to a maximum VM limit of having used all 8 threads (or 8 VM cores) and thats it? or does proxmox manage the physical hardware so I can have more VMs and it dynamically allocates resources accordingly?
No, you don't assign cores or threads. All cores of all VMs are running as processes inside of the underlying Linux, so there is no limit. The maximum amount of running threads (now the "process-thread", not the "core-thread") is the numter of "core-threads". If you have more running threads, those will be scheduled to run and you will experience "slowliness".

Or if I added VM 4 (or 5 or 6, whatever) does proxmox handle resource juggling to try and balance out all the VMs to run as smoothly as possible?
Yes. This.

Is it better practice to only use whatever threads are available and stop, or having many more VMs with many cores, and let proxmox handle the load?
No, you can overprovision. The problem is when all virtual hardware is used, then you use more than you actually have and throttleling starts.
 
And you are overprovisioning your RAM which should be avoided. Keep in mind that every VM needs more RAM then you assign to it (virtualization overhead). You can for example run top or htop and look at the KVM processes that run your VM. Its not unusual that a KVM process of a 4GB RAM VM will need something like 5GB RAM. And then Proxmox VE itself will need RAM (atleast 2GB) too. And in case you are using ZFS, ZFS also wants 1GB to 16GB RAM (up to 50% of your hosts RAM) for its ARC.
 
  • Like
Reactions: melroy89

About

The Proxmox community has been around for many years and offers help and support for Proxmox VE, Proxmox Backup Server, and Proxmox Mail Gateway.
We think our community is one of the best thanks to people like you!

Get your subscription!

The Proxmox team works very hard to make sure you are running the best software and getting stable updates and security enhancements, as well as quick enterprise support. Tens of thousands of happy customers have a Proxmox subscription. Get yours easily in our online shop.

Buy now!