After many years of using VMWare Workstation (currently v 15.5.6) to create and use DotNet (Visual studio, SQL, IIS) Development Environments, and trying to follow best practices, I'm finally looking for the right settings (Swap, disks, etc) to give me a development machine that is as responsive and efficient as possible. Best practices seem to vary by source, so I thought I'd expand my search into the userbase.
My host is running Linux Mint 19.3 Cinnamon (soon to be 20)
Intel i4790K running at 4GHz
32 GB Ram
SSD for root and /home filesystems
8Gb Swap also on SSD, typically about 500M in use when VMs running
Development Guest (May be 1 or possibly 2 running at a time in virtual network):
Windows 10 , configured with 2 Processors 4GB memory, and single virtual disk per VM settings.
So, my question is what configurations others might recommend to make the Guest feel as much like pure iron as possible, without killing the Host for other things.
I have an old system, Xeon proc, 6 core, 3.5 GHz, 32GB ECC Ram. Running Mint LMDE 20/Mate. System has never run Windows. System on SDD and VM's across 2 other SDD's. Backups go to spinny-go-rounds with mirror RAID. I think it is more important to have VM's on SSD than the host system. Swap is on SSD but I set swappiness to 0 so it only swaps if it has to. This does not prevent swapping like some people think. Doesn't seem to make that much difference anymore, used to way back when.
Don't let AV programs mess with your VM files while you are running. I don't let the network start on boot up, slows things down when all the Windows stuff phones home. I turn it on when I want to use it. If you run Windows Defender, disable shared folders until you need them. It panicked when I downloaded a new version of the Sonicwall client to my Linux host download folder. Not sure if it scans mapped drives or not. I don't leave them active. Windows tends to be a bully, I guess that is good along with being annoying.
I run (mostly) 2 W10 VM's at the same time and usually 1 or 2 Linux VM's. The W10 VM's are on different drives. The W10 I use for development has 6 GB Ram, 1 Proc, 3 cores. This seems to help Visual Studio and SQL server (light) which are resource hungry. I am doing some work with netcore and Blazor Server which is also resource hungry. I seemed to get a big improvement going from 1 core to 2, less so to 3 and 4 seemed a waste. Without Visual Studio, I would probably run that system with 1 or 2 cores. The Linux VM's are all 1 core, 2GB. I rarely see any hiccups, performance is suitable for me. Can't compare to native, don't have a Windows system other than a surveillance camera system (W7).
My Raspberry Pi runs dotnet core. It is slow.
My way is "a" way, but maybe not the best way. Have a good one.
Thanks for the tips. I'm VERY unfamiliar with Windows 10 - only started using it because Win7 went EOL - so the Windows tips are much appreciated.
Any thoughts on the VM configuration settings (mainmem.X, etc)?
Other than the settings above, I pretty much follow defaults. I don't do any video stuff, pretty much development with Visual Studio. I sometimes test support stuff with an ESXi VM, but that is vanilla as well.