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
Something in 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
Or 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.