Okay, got some ideas for you..
Chrome Remote Desktop instead of Teamviewer. easy to setup and access from any device, fast and free.
Not use Windows virtual Machines, but either Windows contaners, or Linux LXC containers you save 80% resources that way if you are limited in CPU and RAM
enable deduplication between your Guest OS Virtual Storages, you will save Storage cost on every file that exists more than once, like your Guest OS
ALWAYS use virtIO drivers for the VM guest Hardware (install inside VM) and RAM + CPU ballooning --> see Proxmox Wiki for Download, also usable in VBox
If you have root access and install Proxmox, use Spice (virt-viewer) instead of Chrome RDP for local access
Skip the whole plan with your 20 VMs, too much overhead, Resources, Energy and Cost(!!), invest the time in sourcing a good Proxy Provider (not
VPN) and Build a fingerprinted Browser yourself with some automation software and automate the whole thing. will run on 1c/2gb smoothly (including windows 1gb of ram and 3-400mb free) or just use sphere browser or different browser profiles with proxy addon, one VM per account is much overkill..
For my own setup, i have xeon e5-2690v2 (10c/20t), 64gb ram, 1tb nvme raid 10.
Proxmox PVE
It runs 1 Jarvee VM 4c/4gb/32gb(15 free)
5 Automation VMs 8c/8gb/50gb (lots of cached chrome browser profiles there)
1 Nextcloud (4c/4gb)
1 extra MySQL (4c/8gb/32gb) for managing communication between VMs
1 extra only for making backups from shared VM NAS
1 extra as workstation (16c/16gb), the other stuff uses so much less than i expected
i know that CPU cores and RAM added together don't match with the server specs, that is ballooning, it shifts resources to the VM who needs it.. the 8c/8gb are not reserved and assigned, but rather a "maximum allowed" value, which is almost never even close to be needed
Conclusion after 6months uptime: less cores -> average CPU utilisation is 5-7% and there is a LOT of automation stuff running on there, i even use it as workstation
ram is okay -> 32 of the 64gb is cache for ZFS
nvme's are too slow, there are too many random reads and writes with the browser profiles, especially when VMs backup once a night i got so much delay it feels like an old hdd... on 2x2 raid10 nvme!
Also, the Jarvee and automation VMs could easily be downgraded to 1c/2gb, but i let them as is in case i program directly inside them
hope that helps for your decision