Ubuntu系统HPC应用分析任务数据采集失败
现象描述
Ubuntu系统HPC应用分析任务数据采集失败。
可能原因
由于Ubuntu 13.04及以后版本禁用了perf script中的python scripting功能,创建HPC应用分析任务进行数据采集时会失败。为了能在Ubuntu操作系统中支持这一功能,需要重新编译并替换系统中的perf。
处理步骤
- 使用SSH远程登录工具,以root用户进入Linux操作系统命令行界面。
- 执行命令uname -r,查看当前的内核版本kernel-version。
本例中查询结果如上图所示,则内核版本为4.15.0。
- 执行以下命令下载当前内核对应的perf版本。
mkdir /home/linux_kernel
cd /home/linux_kernel
apt-get update
apt-get source linux-source-<kernel-version>, 其中kernel-version为步骤 2中的结果。
下载源码如下图所示:
- 编译perf。
执行以下命令看当前版本缺少哪些包。
cd /home/linux_kernel/linux_4.15.0/tools/perf
make
控制台提示找不到有些包,需要依据提示信息安装对应包。
python scripting功能需要的包有:python-dev libelf-dev libunwind-dev libaudit-dev libslang2-dev。
执行以下命令安装包:
apt-get install python-dev libelf-dev libunwind-dev libaudit-dev libslang2-dev
make
make install
可以发现libaudit, libelf, libpython, libslang, libunwind, lzma, bpf 开关已打开。
- 执行如下命令,检测perf编译是否成功。
cd /home/linux_kernel
/home/linux_kernel/linux-4.15.0/tools/perf/perf record
/home/linux_kernel/linux-4.15.0/tools/perf/perf script -g python
目录下生成perf-script.py文件,说明perf编译成功。
- 执行如下命令,替换系统中原有perf,即可在Ubuntu中使用python scripting功能。
cp /home/linux_kernel/linux-4.15.0/tools/perf/perf /usr/bin