I created this web app VM, ensuring it's pretty vanilla until the last moment when the content is actually going to be added. It's a Postgres database, with a Docker container that runs the servlets. Previously they ran in a single VM but it's easier for each to have its own VM with their own database server respectively.
This allows vSphere snapshots to capture database state, ZFS snapshots can be triggered too and unlike vSphere this are cumulative without slowing down the VM, that's two shots at recovery before the backups. When the servlets start running they get massive, as everything Java-based does; it was easy to see there wasn't deduplication at all in the same VM by the guest OS' part but then again the host was Windows Server 2012 R2. It was upgraded in-place to 2019 and it still seemed to lack memory deduplication. Now they're on Fedora Server 33 and hopefully the hypervisor can do a better job, even if it can't the difference between Fedora and Windows should even things out and still keep ahead.
Normally I would assume vSphere would do its magic and find out that at least the binaries are identical and act accordingly but is there anything that I can do to ensure this happens? Are there any technologies, for instance; security-related, isolation, etc. that would prevent the memory pages from being shared. Should things like IOMMU be enabled or not, y'know, what's adjusted in the VM itself outside the guest OS. Security is not a concern, BTW.
Thanks!