The problem with SQL Server VMs is that these VMs will ALWAYS consume all amount of memory you've allocated to these VMs. To detect over-sized VMs we use Memory Usage counter
, the memory which is actively used by the VM. Furthermore, in order not to be too aggressive with the recommendation we add addition 25% of buffer to the average memory usage you have for the VMs in question.
I would recommend taking a look at the performance graph of memory usage for this very VM (either via drill down report or a predefined VM performance report templae), I bet you will notice that it is not actively using all 20 GBs of RAM.