If you run VMware Workstation 11 or above you may encounter high CPU usage from process khugepaged on Ubuntu 15.04+
The fix is to disable transparent hugepages. It seems Ubuntu has it enabled by default.
You can check the current status on your system by running:
cat /sys/kernel/mm/transparent_hugepage/enabled
cat /sys/kernel/mm/transparent_hugepage/defrag
Fedora outputs: always [madvise] never
but Ubuntu outputs: [always] madvise never
Fedora seems to not be effected but I havn't tested it myself.
So I suggest not using madvise and just disable it totally.
To disable it run the following commands as root:
echo never > /sys/kernel/mm/transparent_hugepage/enabled
echo never > /sys/kernel/mm/transparent_hugepage/defrag
That will only disable it for the current session.
To have it persistant across reboots I suggest adding this to your rc.local:
# Fix for VMware Workstation 11+ khugepaged.
echo never > /sys/kernel/mm/transparent_hugepage/enabled
echo never > /sys/kernel/mm/transparent_hugepage/defrag
Ensure this goes above the line:
exit 0
More info and references:
AFAIK (and through my own testing and reading of the kernel source) setting
vm.extfrag_threshold=1000
and disabling transparent hugepage defrag will prevent the kernel from ever compacting memory, reactively or not, and will cause it to fall back to swapping pages out of memory and/or invoking the OOM killer instead.vm.compaction_proactiveness
and/sys/kernel/mm/transparent_hugepage/defrag
controls different aspects of proactive memory compaction, whilevm.extfrag_threshold
controls reactive memory compaction (e.g. when the kernel needs to allocate a large chunk of continuous memory). Settingvm.extfrag_threshold
to1000
disables reactive memory compaction.