Ubuntu系统HPC应用分析任务数据采集失败

现象描述

Ubuntu系统HPC应用分析任务数据采集失败。

可能原因

由于Ubuntu 13.04及以后版本禁用了perf script中的python scripting功能,创建HPC应用分析任务进行数据采集时会失败。为了能在Ubuntu操作系统中支持这一功能,需要重新编译并替换系统中的perf。

处理步骤

  1. 使用SSH远程登录工具,以root用户进入Linux操作系统命令行界面。
  2. 执行命令uname -r,查看当前的内核版本kernel-version。

    本例中查询结果如上图所示,则内核版本为4.15.0。

  3. 下载当前内核对应的perf版本。

    1
    2
    3
    4
    mkdir /home/linux_kernel
    cd /home/linux_kernel
    apt-get update
    apt-get source linux-source-<kernel-version>
    

    其中<kernel-version>为步骤 2中的结果。

    下载源码如下图所示:

  4. 编译perf。

    查看缺少的依赖包。

    1
    2
    cd /home/linux_kernel/linux_4.15.0/tools/perf
    make
    

    控制台提示找不到的依赖包,需要依据提示信息安装对应包。

    python scripting功能需要的包有:python-dev、libelf-dev、libunwind-dev、libaudit-dev和libslang2-dev。

    执行以下命令安装包:

    1
    2
    3
    apt-get install python-dev libelf-dev libunwind-dev libaudit-dev libslang2-dev
    make
    make install
    

    可以发现libaudit, libelf, libpython, libslang, libunwind, lzma, bpf 开关已打开。

  5. 检测perf编译是否成功。

    1
    2
    3
    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编译成功。

  6. 替换系统中原有perf,即可在Ubuntu中使用python scripting功能。

    1
    cp /home/linux_kernel/linux-4.15.0/tools/perf/perf /usr/bin