Quick and dirty post.
Lots of people read the Microsoft implementation guide and assume that the minimum/recommended specifications are correct, well.. They are, kind of. There is however a massive BUT.
SQL Server uses memory like I drink coffee and use to smoke. SQL Server loves memory. Giving SQL Server 16Gb of memory will give SQL Server the ability to use 16Gb of memory. Fantastic… Wait? What about the OS it’s hosted on?
Give the VM you”re going to use +2gb to anything recommended. For the recommended+ 16Gb deployment – give it 18Gb, limit SQL to use 16gb, give your actual system some breathing room.. I’m sure I read somewhere that you need to give the OS 20% breathing room, but then.. Who really cares about the architecture of your deployment?
Personally, I’d rather do that than just stick 16Gb onto the VM and let it go and do it’s own thing, but then.. I’m not usually the one paying for the deployment 😉