Recently my virtual machine setup under a Linux host (Kernel 5.13.0) has been plagued by extreme lagginess to the point of being unusable. Checking
top shows that
vmware-vmx is using all the CPU that is allocated to the VM, but the VM does not respond.
Things I tried that didn’t work:
- Disable 3D acceleration
- Launching VMWare player with the NVIDIA GPU (Intel iGPUs are blacklisted from hardware acceleration)
- Disable visual effects in the Windows guest
top stood out to me and it was
kcompact. A Google search reveals that VMware fights with the Linux kernel memory compression, which is why it deadlocks every 30 seconds then keep fighting. The solution is simple:
sudo sysctl vm.compaction_proactiveness=0
vm.compaction_proactiveness=0 can be set in
sysctl.conf to be permanent.
Phew, now I can keep writing my draft again!
This is a quick tip post. They are written in a way to help users quickly resolve a problem that I ran into in my daily work and usually don’t go in depth about the details of ‘why’. Please feel free to comment or contribute to the knowledge.