在win10主机上的VMware虚拟机里的centos7执行 perf list cache,显示空:
[work@control-plane ~]$ perf list cache
List of pre-defined events (to be used in -e):
[work@control-plane ~]$
原因是cpu cache的计数需要硬件支持,在虚拟机里是需要开启虚拟化cpu性能计数器。
以VMware为例,勾选“虚拟化cpu性能计数器”:
然后重新启动VMware里的centos7,结果提示:
VMware Workstation 不支持此主机上的虚拟化性能计数器。
模块“VPMC”启动失败。
未能启动虚拟机。
原因是之前安装了wsl,启用了windows的虚拟化平台,限制了VMware的虚拟化功能。
将“windows虚拟机监控程序平台”和“虚拟机平台”关闭,如图:
然后重启windows,现在VMware里的centos7可以正常启动了,登录进去再次执行 perf list cache:
[work@control-plane ~]$ perf list cache
List of pre-defined events (to be used in -e):
L1-dcache-load-misses [Hardware cache event]
L1-dcache-loads [Hardware cache event]
L1-dcache-stores [Hardware cache event]
L1-icache-load-misses [Hardware cache event]
branch-load-misses [Hardware cache event]
branch-loads [Hardware cache event]
dTLB-load-misses [Hardware cache event]
dTLB-loads [Hardware cache event]
dTLB-store-misses [Hardware cache event]
dTLB-stores [Hardware cache event]
iTLB-load-misses [Hardware cache event]
iTLB-loads [Hardware cache event]
[work@control-plane ~]$
成功了!
但是此时的wsl登录显示:
请启用虚拟机平台 Windows 功能并确保在 BIOS 中启用虚拟化。
有关信息,请访问 https://aka.ms/wsl2-install
[已退出进程,代码为 4294967295 (0xffffffff)]
现在可以使用Ctrl+D关闭此终端,或按 Enter 重新启动。
所以,我们需要在wsl和VMware中二选一,我个人选择了VMware,因为wsl访问挂载的windows本地文件并没有我预想的那样快,和VMware共享文件夹比没有优势,而且wsl启用cpu计数器也需要一顿繁杂的骚操作。