容器内安装Linux Perf工具
摘要:本文记录了在Ubuntu系统中安装Perf工具时遇到的版本不匹配问题及解决方案。通过安装linux-tools-generic包后,删除自动检测内核版本的perf脚本,并手动创建符号链接到指定版本的工具路径(如/usr/lib/linux-tools/4.15.0-162-generic/perf)。该方法可绕过内核版本检测,但可能存在兼容风险。文中还提供了错误提示的说明和参考链接。
概述
因为工作需要排查性能问题,第一时间想到的就是Perf工具,但是因为程序运行内核版本比较坑,在基础容器内找不到对应的Perf工具,后面各种搜索,最终在网上找到解决方案,博文记录,用于备忘。
解决方案
从参考链接摘取过来的步骤
sudo apt install linux-tools-generic
sudo ln -s /usr/lib/linux-tools/4.15.0-162-generic/perf /usr/bin/perf
但是我在Ubuntu 20.04.3镜像下测试的结果和参考链接略微不同
apt install linux-tools-generic
#删除安装的perf脚本,该脚本会检测内核版本
rm -rf /usr/bin/perf
#将程序链接到/usr/bin/perf目录
ln -s /usr/lib/linux-tools/4.15.0-162-generic/perf /usr/bin/perf
注意:
4.15.0-162-generic这个是根据镜像系统而定的,具体可以安装linux-tools-generic软件后,自行去/usr/lib/linux-tools/路径下查看
Q&A
Q:
安装后,直接执行perf,提示以下错误
WARNING: perf not found for kernel 4.19.90
You may need to install the following packages for this specific kernel:
linux-tools-4.19.90-25.10.v2101.ky10.aarch64
linux-cloud-tools-4.19.90-25.10.v2101.ky10.aarch64
You may also want to install one of the following packages to keep up to date:
linux-tools-25.10.v2101.ky10.aarch64
linux-cloud-tools-25.10.v2101.ky10.aarch64
A:
主要是软件包默认安装/usr/bin/的perf是一个脚本文件,该脚本文件会校验内核版本,不匹配就会提示上面内容后退出。
一般情况,建议安装和内核版本匹配的perf工具,实在没辙了,可以采用本文的方法绕过内核的版本检测,是否会引起新的问题,后续测试后补充。
参考链接
魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。
更多推荐

所有评论(0)