概述

因为工作需要排查性能问题,第一时间想到的就是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工具,实在没辙了,可以采用本文的方法绕过内核的版本检测,是否会引起新的问题,后续测试后补充。

参考链接

linux perf安装问题解决

Logo

魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。

更多推荐