文章目录
- 1,ubuntu子系统中perf工具安装不了
- 1.1,查看perf版本如下所示
- 1.2,网上找不到对应的版本的内核源码,下载别的版本后,编译各种报错
- 2,百度查到说是WSL1不支持perf
- 2.1,查看WSL版本
- 2.2,升级WSL2
- 2.2.1,启用虚拟机功能
- 2.2.2,按照步骤 4 - 下载 并安装WSL 2 Linux内核更新包
- 2.2.2.1,下载更新包
- 2.2.2.2,双击下载后的 wsl_update_x64.msi 来安装
- 2.2.3,将 WSL 2 设置为默认版本
- 2.2.3.1,启动windows虚拟机平台功能Hyper_V
- 2.2.3.2,再次执行wsl --set-default-version 2
- 2.2.3.3,虽然成功执行了wsl --set-default-version 2,但WSL版本还是1
- 2.2.3.3.4,需要使用wsl.exe --set-version Ubuntu 2进行命令进行转换
- 2.2.3.3.5,可以看到成功切换了WSL2
- 2.2.4,进入ubuntu终端后可以看到版本变成了5.10.16.3-microsoft-standard-WSL2
- 3,升级完WSL后,查看perf可以用了
- 3.1,如果还不能用的话,按以下步骤在WSL2中安装perf
1,ubuntu子系统中perf工具安装不了
1.1,查看perf版本如下所示
perf --version
1.2,网上找不到对应的版本的内核源码,下载别的版本后,编译各种报错
2,百度查到说是WSL1不支持perf
对于 WSL 1 来说,主要的缺点有:
-
文件 I/O 慢,尤其是在大量IO操作时,例如使用 git 克隆仓库;
-
不支持内核程序;
WSL 2 针对以上两个缺点进行了修正:
- 相比较于 WSL 1 使用翻译层将 linux 系统调用转化成 windows 系统调用,WSL 2 使用了一个轻量级的、无需维护的虚拟机,并在这个虚拟机中运行了一个完整的 linux 内核。
- WSL 2 使用一个 VHD 虚拟磁盘文件作为 linux 发行版的根目录,其中使用 ext4文件系统格式,极大提升了IO性能。
2.1,查看WSL版本
wsl --list --verbose
2.2,升级WSL2
参考windows官方文档
https://docs.microsoft.com/zh-cn/windows/wsl/install-manual#step-3—enable-virtual-machine-feature
2.2.1,启用虚拟机功能
dism.exe /online /enable-feature /featurename:VirtualMachinePlatform /all /norestart
2.2.2,按照步骤 4 - 下载 并安装WSL 2 Linux内核更新包
2.2.2.1,下载更新包
2.2.2.2,双击下载后的 wsl_update_x64.msi 来安装
2.2.3,将 WSL 2 设置为默认版本
wsl --set-default-version 2
2.2.3.1,启动windows虚拟机平台功能Hyper_V
如果没有Hyper_V,可以参考:
https://blog.csdn.net/weixin_44801799/article/details/123140330
2.2.3.2,再次执行wsl --set-default-version 2
2.2.3.3,虽然成功执行了wsl --set-default-version 2,但WSL版本还是1
2.2.3.3.4,需要使用wsl.exe --set-version Ubuntu 2进行命令进行转换
wsl.exe --set-version Ubuntu 2
2.2.3.3.5,可以看到成功切换了WSL2
2.2.4,进入ubuntu终端后可以看到版本变成了5.10.16.3-microsoft-standard-WSL2
3,升级完WSL后,查看perf可以用了
3.1,如果还不能用的话,按以下步骤在WSL2中安装perf
如果您在WSL 2中使用Ubuntu,这是必需的命令:
sudo apt install build-essential flex bison libssl-dev libelf-dev
克隆WSL 2 Linux内核存储库
git clone --depth=1 https://github.com/microsoft/WSL2-Linux-Kernel.git
转到perf文件夹并编译:
cd WSL2-Linux-Kernel/tools/perf
make