xpt*_*xpt 11 vmware vmware-workstation
与 redhat bugzilla - kcompacd0 using 100% cpu中发布的相同,已关闭INSUFFICIENT_DATA
.
也与
\n\n重新打开,因为那里的解决方案对我不起作用。
\n这是我的情况:
\nkcompactd0
不断地在一个核心上使用 100% cpu,并vmware-vmx
在八个核心上使用 100% cpu。\n根据上游要求,以下是更多信息:
\n$ lsb_release -a\nNo LSB modules are available.\nDistributor ID: Ubuntu\nDescription: Ubuntu 21.10\nRelease: 21.10\nCodename: impish\n\n\n$ grep -r . /sys/kernel/mm/transparent_hugepage/*\n/sys/kernel/mm/transparent_hugepage/defrag:always defer defer+madvise [madvise] never\n/sys/kernel/mm/transparent_hugepage/enabled:always [madvise] never\n/sys/kernel/mm/transparent_hugepage/hpage_pmd_size:2097152\n/sys/kernel/mm/transparent_hugepage/khugepaged/defrag:1\n/sys/kernel/mm/transparent_hugepage/khugepaged/max_ptes_shared:256\n/sys/kernel/mm/transparent_hugepage/khugepaged/scan_sleep_millisecs:10000\n/sys/kernel/mm/transparent_hugepage/khugepaged/max_ptes_none:511\n/sys/kernel/mm/transparent_hugepage/khugepaged/pages_to_scan:4096\n/sys/kernel/mm/transparent_hugepage/khugepaged/max_ptes_swap:64\n/sys/kernel/mm/transparent_hugepage/khugepaged/alloc_sleep_millisecs:60000\n/sys/kernel/mm/transparent_hugepage/khugepaged/pages_collapsed:0\n/sys/kernel/mm/transparent_hugepage/khugepaged/full_scans:19\n/sys/kernel/mm/transparent_hugepage/shmem_enabled:always within_size advise [never] deny force\n/sys/kernel/mm/transparent_hugepage/use_zero_page:1\n\n$ cat /proc/90/stack | wc\n 0 0 0\n\necho never > /sys/kernel/mm/transparent_hugepage/defrag\necho 0 > /sys/kernel/mm/transparent_hugepage/khugepaged/defrag\necho never > /sys/kernel/mm/transparent_hugepage/enabled\n\n$ grep -r . /sys/kernel/mm/transparent_hugepage/*\n/sys/kernel/mm/transparent_hugepage/defrag:always defer defer+madvise madvise [never]\n/sys/kernel/mm/transparent_hugepage/enabled:always madvise [never]\n/sys/kernel/mm/transparent_hugepage/hpage_pmd_size:2097152\n/sys/kernel/mm/transparent_hugepage/khugepaged/defrag:0\n/sys/kernel/mm/transparent_hugepage/khugepaged/max_ptes_shared:256\n/sys/kernel/mm/transparent_hugepage/khugepaged/scan_sleep_millisecs:10000\n/sys/kernel/mm/transparent_hugepage/khugepaged/max_ptes_none:511\n/sys/kernel/mm/transparent_hugepage/khugepaged/pages_to_scan:4096\n/sys/kernel/mm/transparent_hugepage/khugepaged/max_ptes_swap:64\n/sys/kernel/mm/transparent_hugepage/khugepaged/alloc_sleep_millisecs:60000\n/sys/kernel/mm/transparent_hugepage/khugepaged/pages_collapsed:0\n/sys/kernel/mm/transparent_hugepage/khugepaged/full_scans:19\n/sys/kernel/mm/transparent_hugepage/shmem_enabled:always within_size advise [never] deny force\n/sys/kernel/mm/transparent_hugepage/use_zero_page:1\n\n
Run Code Online (Sandbox Code Playgroud)\n基本上,解决方法的来源是Fedora 错误报告 \xe2\x80\x9ckhugepaged eat 100%CPU\xe2\x80\x9d。该错误从未得到修复,“解决方案”适用于 2013 年的 Fedora 17,并且
\n\n\n在过去 3 个,也许是 4-5 个版本的 Fedora Kernels 中,我没有再遇到过这个问题。
\n
但现在又发生了。
\n这是我在 Ubuntu 20.04 上的解决方案:
# Fix problem where vmware battles with kcompactd0.
vm.compaction_proactiveness=0
Run Code Online (Sandbox Code Playgroud)
[更新 2022-03-06]:如果您升级到 VMware Workstation Pro 16.2.1,请确保在测试之前将虚拟机升级到 16.2 并重新启动计算机。升级后我没有重新启动,问题一直持续到重新启动。
[更新2022-11-28]:查看“加速3D图形”是否启用,如果不需要则禁用它。这可能是此问题的触发因素。
这实际上是一个 IOMMU 问题,解决方案包括在内核命令行启用它。在固件中启用 VT-d(Intel IOMMU 内核驱动程序)是不够的,修补compaction_proactiveness 和swappiness 只会限制这种行为,而无法解决根本原因。
我自己也遇到了这个问题(Ubuntu 22.04主机,内核版本5.15.0,VMware Player 16.2.4,Windows 10 guest)。当来宾计算机在 Firefox 中打开多个选项卡、打开数据库应用程序或两者兼而有之时,这种情况尤其明显。
值得注意的是,设置vm.compaction_proactiveness=0
没有效果。设置vm.swappiness=10
有一点帮助,但问题仍然存在。
尽管主机固件中启用了 VT-x 和 VT-d,但事实证明,至少在内核版本 5.15.0-46-default 中,内核是使用 intel_iommu 编译的,但默认情况下该配置是禁用的。因此,
cat /boot/config* | grep INTEL_IOMMU
返回(以及其他行)(注意 octothorpe 注释掉第二行):
CONFIG_INTEL_IOMMU=y
# CONFIG_INTEL_IOMMU_DEFAULT_ON is not set
Run Code Online (Sandbox Code Playgroud)
解决方案是将以下字符串添加到内核命令行中。这将启用 intel_iommu,修复来宾冻结,并防止kcompactd0
将其 CPU 核心固定在 100%,至少到目前为止是这样:
intel_iommu=on
因此,对于 GRUB,编辑/etc/default/grub
以将上述字符串添加到GRUB_CMDLINE_LINUX_DEFAULT
,例如,
GRUB_CMDLINE_LINUX_DEFAULT="intel_iommu=on"
保存并关闭文件,然后运行:
# update-grub
重启即可生效。
对于systemd-boot,(a) 将上述字符串添加到单独的行中/etc/kernel/cmdline
,或者 (b) 将以下密钥添加到启动条目 .conf 文件中/loader/entries
:
options intel_iommu=on
保存并关闭文件,然后重新启动即可生效。
编辑
这个问题部分仍然是 IOMMU 问题,但出现了一些附加信息:
敬请关注。
归档时间: |
|
查看次数: |
9399 次 |
最近记录: |