如何在WSL2上使用Linux perf工具?如何适配对应内核版本的perf?
WSL2环境下perf工具无法启动、apt找不到对应内核工具包的解决方案
问题根因
- 微软未将WSL2定制内核对应的
linux-tools包提交到Ubuntu官方软件源,因此apt无法搜索到对应版本的安装包,该安装路径不可行。 - 你编译阶段出现的
stat.h头文件差异警告属于正常情况,不会影响perf的实际功能,无需额外处理。
操作步骤
步骤1:验证已编译的perf可用性
进入你之前编译WSL内核源码时的tools/perf目录,执行命令确认编译产物正常:
./perf --version
如果正常输出对应内核版本的perf版本信息,说明编译产物无问题。
步骤2:将perf部署到系统全局路径
执行以下命令将编译好的perf复制到全局可执行路径,覆盖系统默认的perf查找逻辑:
sudo cp ./perf /usr/local/bin/ sudo chmod +x /usr/local/bin/perf
执行完成后运行which perf,确认输出为/usr/local/bin/perf即可。
步骤3:开启WSL2的perf事件权限
WSL2默认未开放perf所需的性能事件权限,需要手动修改配置:
- 回到Windows系统,进入当前用户的家目录(一般为
C:\Users\你的Windows用户名\) - 新建名为
.wslconfig的文本文件,写入以下内容:
[wsl2] kernelCommandLine = perf_event_paranoid=-1
- 保存文件后,打开Windows的PowerShell或命令提示符,执行命令关闭WSL:
wsl --shutdown
- 等待10秒后重新打开WSL终端即可。
步骤4:验证perf功能
执行测试命令确认perf正常工作:
sudo perf record -g ls
如果没有报错且当前目录下生成perf.data文件,说明配置已生效。
内容的提问来源于stack exchange,提问作者codertryer
相关产品推荐
相关产品推荐

