I have a new Windows Server 2016 box with 32GB of RAM, it will be used for dev testing by one or two users max. There will be occasional use of VM/Hyper-V instances and a couple of IIS test sites running from time to time.
I also need to install all versions of SQL Server from 2008 through to 2016. These will each have many databases attached but very few will actually be active at a time unless testing calls for it.
Assuming there is no practical issue with installing several different SQL Server installations on the same box, what options do I have to configure the best use of RAM? I know that on a standard installation, SQL will try to hog all available RAM but I want to try to avoid this leaving around 12GB for other services and allocate a maximum of 24GB for ALL the SQL instances to share equally without fighting with each other over resources.
Is there a good way to achieve this?
Never. Do. That. Install Hyper-V run everything in Hyper-V instances. Do not run load on the "physical" machine.
Not totally sure, mostly because of your large selection. I keep a separate VM for every generation - easier to get rid of them this way.
Back to the start. Dump SQL Server in a VM, assign 24gb, finished. SQL Servers, running alone in the VM, will never use more memory.
COnsider upgrading RAM - 32gb is quite low for a development all kind of stuff server in days where workstation motherboards can go up to 64gb.