安装 sysTrace

硬软件要求

操作系统: openEuler -- 内核版本 5.10.0 +

软件版本:

  • CANN 8.0RC3
  • torch 2.1.0
  • torch_npu 2.1.0.post10

安装 sysTrace

下载源码

git clone https://gitcode.com/openeuler/sysTrace.git

安装依赖包

openEuler 系统

## 软件包版本要求:libbpf >= 0.8.1, clang >= 10.0.0, gcc >= 8.3.0, bpftool >= 6.8.0 libunwind >=1.7
## 如果版本均满足则跳过下面的安装依赖步骤
yum install gcc g++ cmake make python3-devel protobuf-compiler protobuf-devel protobuf-c-devel libbpf clang libbpf-devel bpftool elfutils-devel elfutils-libelf-devel nlohmann-json-devel libunwind libunwind-devel

安装依赖

安装 sysTrace 依赖libbpf、 bpftool。如果系统自带的libbpf、 bpftool 版本不满足要求(libbpf >= 0.8.1,bpftool >= 6.8.0),需要手动安装。

安装 libbpf

git clone https://github.com/libbpf/libbpf.git
cd libbpf
git checkout v0.8.1
cd src
make && make install

安装 bpftool

git clone --recurse-submodules https://github.com/libbpf/bpftool.git
cd bpftool
git submodule update --init
cd src
make && make install

编译项目

sysTrace 支持两种数据格式:pb(protobuf)和 json。编译时可以选择不同的格式:

编译为 pb 格式(默认):

cd sysTrace
bash build.sh

编译为 json 格式:

cd sysTrace
bash build.sh --mode=json

关闭默认python采集

cd sysTrace
bash build.sh --python-tracing=off

编译产物说明:

编译产物均在 build 目录下,主要用到 libsysTrace.so(用于LD_PRELOAD挂载) 和 sysTrace_cli(命令行工具)

# ll build/
total 1776
-rw-r--r--. 1 root root   17000 Jun 12 16:58 CMakeCache.txt
drwxr-xr-x. 7 root root    4096 Jun 12 17:10 CMakeFiles
-rw-r--r--. 1 root root    1798 Jun 12 16:58 cmake_install.cmake
-rw-r--r--. 1 root root  534270 Jun 12 17:10 libcommon.a
-rwxr-xr-x. 1 root root 1209296 Jun 12 17:10 libsysTrace.so
-rw-r--r--. 1 root root   20479 Jun 12 17:10 Makefile
drwxr-xr-x. 3 root root    4096 Jun 12 17:10 protos
-rwxr-xr-x. 1 root root   76736 Jun 12 17:10 sysTrace_cli