ESXi with TPS: more (shared) memory for your homelab
Hi everyone,
This post will be about a nice trick I learned to get the maximum out of your VMware Homelab.
TPS, or Transparent Page Sharing, is a function where, in short, multiple identical virtual memory pages are pointing to the same page within the memory of the host. Here is a whitepaper that goes more in-depth.
It used to be on by default, but I believe that it was turned off due to security concerns (KB). However, it’s still easy to turn on.
I won’t go into full detail, for more information check out the above mentioned links, along with these two posts about TPS.
For my homelab, the security does not need to be that strict that I can’t have shared memory, and the performance decrease is acceptable as well (due to higher memory access times.)
To enable TPS, go into the advanced settings of your ESXi host, and set:
Mem.AllocGuestLargePage to 0
and set Mem.ShareForceSalting to 0
as well.
It may take a few hours before your memory usage decreases, but for the best performance I would recommend restarting all virtual machines. This, for me, decreased the memory usage on my server from 109GB to 89GB.
Have fun with your lab and I hope that this was useful to you!
See you next time, have a nice day.