Questions before build

Discussions related to using VirtualBox on Windows hosts.
Post Reply
WuXeS
Posts: 2
Joined: 5. Mar 2021, 11:18

Questions before build

Post by WuXeS »

Hello! I'm very new to this, so I'd like to humbly ask for your patience.

One of my business projects involves employees working from home, on their own computers, using software we provide. This scenario works well when it works, but we've started running into very inconsistent performance because the hardware varies so much and troubleshooting remotely is hard and time-consuming. Hence, the idea of providing a more consistent and sufficiently powerful environment for the employees: on-site desktop PCs with remote access. The obvious weakness is the user's internet connection peformance, but we're willing to risk it for this test.

Since the desktop environments are going to be pretty much identical for all users, and to save on the hardware complexity, I'd like to give VMs a try. I've been reading up a bit and VirtualBox comes up frequently as a possible solution.

The workload is mostly browser-based and involves working in multiple tabs, sometimes on rather heavy websites.

So. Questions.

1. Do I understand correctly that I can install VirtualBox on a Win10 desktop PC and then run, say, three Win10 VMs on it? Does it need to be a specific version of Win10?
2. Do I need separate Win10 licenses for all 3 VMs?
3. Assuming we need 4 cores and 8 GB RAM per user, can I assume that a PC with a 16c/32t CPU (like a Ryzen 3950X) and 64 GB RAM will be sufficient? How much resources should I leave for the host? What is the performance overhead I should account for?
4. Should I be concerned with SSD performance (3 concurrent users working), or will any decent SSD suffice?
5. Is it possible for the users to connect into VMs using AnyDesk (or similar software)? Are there limitations to this scenario when it comes to networking, specific software etc.?
mpack
Site Moderator
Posts: 39134
Joined: 4. Sep 2008, 17:09
Primary OS: MS Windows 10
VBox Version: PUEL
Guest OSses: Mostly XP

Re: Questions before build

Post by mpack »

First, understand that we can't give you absolution. This is a user community and the best we can offer you is opinions, not guarantees.
WuXeS wrote: 1. Do I understand correctly that I can install VirtualBox on a Win10 desktop PC and then run, say, three Win10 VMs on it? Does it need to be a specific version of Win10?
[(didn't notice your later comment when I wrote this)] Yes, but maybe not simultaneously on one PC. Each VM would require 2 CPU cores and around 2GB RAM minimum, plus a 64GB drive. Plus the host OS needs resources too.
WuXeS wrote: 2. Do I need separate Win10 licenses for all 3 VMs?
We have not been authorized to speak on Microsoft's behalf - but yes. Especially since each VM has a different user. You can however completely set up the VM once, clone it twice more, and then apply new product keys to each new clone. Remember to also change the MAC address and machine name for each VM, otherwise they can't share a network.
WuXeS wrote: 3. Assuming we need 4 cores and 8 GB RAM per user, can I assume that a PC with a 16c/32t CPU (like a Ryzen 3950X) and 64 GB RAM will be sufficient? How much resources should I leave for the host? What is the performance overhead I should account for?
See first response. 4 cores are not a good idea: VMs get slower if you allocate more cores than needed. And do they really need 8GB to run whatever? Threads are not relevant to a VM, only cores matter. If AMD genuinely (and their marketing claims have been an issue in the past) gives you 16 cores then yes, it should have enough CPU cores for 3 VMs, with plenty to spare for the host. I'm assuming that none of the VMs will require unusually high disk or network bandwidth.

If it was me then I'd connect all three VMs to the host network using Bridged Networking (that gives the VMs equal access to the host LAN - same access that the host has). Then I'd have employees RDP into their own VM from remote. That way we don't have to worry about VirtualBox provision for graphics, USB, or drag and drop. I don't think you'd even need to install the Guest Additions.
WuXeS wrote: 4. Should I be concerned with SSD performance (3 concurrent users working), or will any decent SSD suffice?
Without knowing the bandwidth required or available it's impossible to give a definitive answer. But yes, I'd expect any decent SSD to do the job. You'll need a big one (e.g. I'm using a Samsung 2TB EVO SSD right now - needed it to run Flight Simulator 2020!).
WuXeS wrote: 5. Is it possible for the users to connect into VMs using AnyDesk (or similar software)? Are there limitations to this scenario when it comes to networking, specific software etc.?
Why AnyDesk? What's wrong with RDP? The latter comes built in to Windows 10 Pro (Home includes client software but not server side). I would be suspicious of using third party software for this task of interacting with Windows remotely. Microsoft are the people who best understand Windows. Microsoft also provide RDP clients for Android so I can check on the status of my PC using my smartphone. I'm sure the same will be true for iPhone but I don't own one to say for sure.

The limitation of any remote desktop similar will be variable graphics performance. This will not affect normal apps, just those requiring high graphics bandwidth: 3D CAD, gaming, watching >=fullHD YouTube videos etc.
WuXeS
Posts: 2
Joined: 5. Mar 2021, 11:18

Re: Questions before build

Post by WuXeS »

mpack wrote:First, understand that we can't give you absolution. This is a user community and the best we can offer you is opinions, not guarantees.
Of course.
WuXeS wrote: 1. Do I understand correctly that I can install VirtualBox on a Win10 desktop PC and then run, say, three Win10 VMs on it? Does it need to be a specific version of Win10?
[(didn't notice your later comment when I wrote this)] Yes, but maybe not simultaneously on one PC. Each VM would require 2 CPU cores and around 2GB RAM minimum, plus a 64GB drive. Plus the host OS needs resources too.
Ok. Is there a rough formula for how much the host OS would need to function without bottlenecks? How taxing is the task of hosting the VMs?
WuXeS wrote: 2. Do I need separate Win10 licenses for all 3 VMs?
We have not been authorized to speak on Microsoft's behalf - but yes. Especially since each VM has a different user. You can however completely set up the VM once, clone it twice more, and then apply new product keys to each new clone. Remember to also change the MAC address and machine name for each VM, otherwise they can't share a network.
Ok, got it.
WuXeS wrote: 3. Assuming we need 4 cores and 8 GB RAM per user, can I assume that a PC with a 16c/32t CPU (like a Ryzen 3950X) and 64 GB RAM will be sufficient? How much resources should I leave for the host? What is the performance overhead I should account for?
See first response. 4 cores are not a good idea: VMs get slower if you allocate more cores than needed. And do they really need 8GB to run whatever? Threads are not relevant to a VM, only cores matter. If AMD genuinely (and their marketing claims have been an issue in the past) gives you 16 cores then yes, it should have enough CPU cores for 3 VMs, with plenty to spare for the host. I'm assuming that none of the VMs will require unusually high disk or network bandwidth.
Yes, I'm positive it's a 16c/32t part. Why do VMs get slower if you allocate more cores than needed? Seems counter-intuitive. Also, about needing 4 cores: if 2-core laptops choke on the tasks sometimes (or often), my logic is that providing the extra oomph should help.
If it was me then I'd connect all three VMs to the host network using Bridged Networking (that gives the VMs equal access to the host LAN - same access that the host has). Then I'd have employees RDP into their own VM from remote. That way we don't have to worry about VirtualBox provision for graphics, USB, or drag and drop. I don't think you'd even need to install the Guest Additions.
Ok, but in this scenario I would still use VirtualBox to set up the VMs, right?
WuXeS wrote: 4. Should I be concerned with SSD performance (3 concurrent users working), or will any decent SSD suffice?
Without knowing the bandwidth required or available it's impossible to give a definitive answer. But yes, I'd expect any decent SSD to do the job. You'll need a big one (e.g. I'm using a Samsung 2TB EVO SSD right now - needed it to run Flight Simulator 2020!).
Understood.
WuXeS wrote: 5. Is it possible for the users to connect into VMs using AnyDesk (or similar software)? Are there limitations to this scenario when it comes to networking, specific software etc.?
Why AnyDesk? What's wrong with RDP? The latter comes built in to Windows 10 Pro (Home includes client software but not server side). I would be suspicious of using third party software for this task of interacting with Windows remotely. Microsoft are the people who best understand Windows. Microsoft also provide RDP clients for Android so I can check on the status of my PC using my smartphone. I'm sure the same will be true for iPhone but I don't own one to say for sure.
So far I've used TeamViewer and AnyDesk for such work. I haven't tried RDP. I'll go with your recommendation though, I think the logic is sound - Win10 -> Win10 should be best handled by MS's own solution.
The limitation of any remote desktop similar will be variable graphics performance. This will not affect normal apps, just those requiring high graphics bandwidth: 3D CAD, gaming, watching >=fullHD YouTube videos etc.
I've been planning to use an entry-level dedicated GPU, such as the GT1030, to make sure this won't be a bottleneck. The user's won't run anything too demanding, but 3 multimedia-heavy websites, with autoplay video etc., can be quite demanding in the "normal use" category.

EDIT: Also, please correct me if I'm wrong. I've been under the impression that I would allocate a specific number of cores exclusively per VM. Is this wrong? Is it more a case of just providing all available cores across all VMs and then the hypervisor (VirtualBox?) will dynamically allocate them as needed?
mpack
Site Moderator
Posts: 39134
Joined: 4. Sep 2008, 17:09
Primary OS: MS Windows 10
VBox Version: PUEL
Guest OSses: Mostly XP

Re: Questions before build

Post by mpack »

Ok. Is there a rough formula for how much the host OS would need to function without bottlenecks? How taxing is the task of hosting the VMs?
Microsoft has a FAQ page somewhere which gives the minimum recommendations for their OS. You should derive your spec from that. For good results you'd want to be comfortably above the minimum. The spec I mentioned (2 cores and 2GB) and the number I find works best for most light duty VMs.
Why do VMs get slower if you allocate more cores than needed? Seems counter-intuitive.
More cores only make sense if (a) your app is maxing out one core, and (b) is written specifically to use multiple cores, which most apps are not. Two cores allows OS background tasks to carry on without ever interfering with the foreground. Additional cores are usually idle most of the time IME. On a physical PC they simply go unused, but in a VM those wasted cores need to continually have their context saved and restored, so they're just overhead.
If it was me then I'd connect all three VMs to the host network using Bridged Networking (that gives the VMs equal access to the host LAN - same access that the host has). Then I'd have employees RDP into their own VM from remote. That way we don't have to worry about VirtualBox provision for graphics, USB, or drag and drop. I don't think you'd even need to install the Guest Additions.
Ok, but in this scenario I would still use VirtualBox to set up the VMs, right?
I don't understand this question. Obviously you can't set up a VirtualBox VM without using VirtualBox.
The limitation of any remote desktop similar will be variable graphics performance. This will not affect normal apps, just those requiring high graphics bandwidth: 3D CAD, gaming, watching >=fullHD YouTube videos etc.
I've been planning to use an entry-level dedicated GPU, such as the GT1030, to make sure this won't be a bottleneck. The user's won't run anything too demanding, but 3 multimedia-heavy websites, with autoplay video etc., can be quite demanding in the "normal use" category.
I'm not convinced that graphical performance translates through an Internet connection, as that isn't my expectation - and anyway I assume it's the clients that actually do the rendering. But, I don't use RDP for graphics intensive work so my opinion isn't based on much.
EDIT: Also, please correct me if I'm wrong. I've been under the impression that I would allocate a specific number of cores exclusively per VM.
No, you had it right the first time. It's not as simple as dedicating a particular core to a particular process, but if you make sure that it's possible for three VMs plus the host to go flat out without dragging each other down then you won't ever go wrong.
Post Reply