Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
36 changes: 21 additions & 15 deletions docs/zh/02-ce-install/01-overview.md
Original file line number Diff line number Diff line change
Expand Up @@ -28,21 +28,22 @@ permalink: /ce-install/overview
# 运行权限及内核要求

DeepFlow 中的 eBPF 能力(AutoTracing、AutoProfiling)对内核版本的要求如下:
| 体系架构 | 发行版 | 内核版本 | kprobe [1] | Golang uprobe | OpenSSL uprobe | perf |
| -------- | ------ | ------- | ---------- | ------------- | -------------- | ---- |
| X86 | CentOS 7.9 | 3.10.0-940+ **[2]** | Y | Y **[3]** | Y **[3]** | Y |
| | RedHat 7.6 | 3.10.0-940+ **[2]** | Y | Y **[3]** | Y **[3]** | Y |
| | \* | 4.14 **[4]** | Y | Y **[3]** | | Y |
| | \* | 4.15 | Y | Y **[3]** | | Y |
| | \* | 4.16 | Y | Y | | Y |
| | \* | 4.17+ | Y | Y | Y | Y |
| | SUSE 12 SP5 | 4.12 [5] | Y | Y | | Y |
| ARM | CentOS 8 | 4.18 | Y | Y | Y | Y |
| | EulerOS | 5.10+ [6]| Y | Y | Y | Y |
| | 麒麟 KylinOS V10 SP1 | 4.19.90-23 [7] | Y | Y | Y | Y |
| | 麒麟 KylinOS V10 SP2 | 4.19.90-25.24+ [8] | Y | Y | Y | Y |
| | 麒麟 KylinOS V10 SP3 | 4.19.90-52.24+ | Y | Y | Y | Y |
| | 其他发行版 | 5.8+ | Y | Y | Y | Y |

| 体系架构 | 发行版 | 内核版本 | kprobe [1] | Golang uprobe | OpenSSL uprobe | perf [9] | TCP Option Trace | CPU Balancer |
| -------- | ------ | -------- | ---------- | ------------- | -------------- | ---- | ---------------- | ------------ |
| X86 | CentOS 7.9 | 3.10.0-940+ **[2]** | Y | Y **[3]** | Y **[3]** | Y | | |
| | RedHat 7.6 | 3.10.0-940+ **[2]** | Y | Y **[3]** | Y **[3]** | Y | | |
| | \* | 4.14 **[4]** | Y | Y **[3]** | | Y | | |
| | \* | 4.15 | Y | Y **[3]** | | Y | | Y **[11]** |
| | \* | 4.16 | Y | Y | | Y | | Y **[11]** |
| | \* | 4.17+ | Y | Y | Y | Y | 5.10+ **[10]** | Y **[11]** |
| | SUSE 12 SP5 | 4.12 [5] | Y | Y | | Y | | |
| ARM | CentOS 8 | 4.18 | Y | Y | Y | Y | | Y **[11]** |

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

对于同样的发行版系统和内核,在x86和arm架构下具体会有支持上的区别吗?如果有的话,是不是改为按系统/内核作为主区分项,架构作为内部子区分项来更新这个表格?

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

“同样的发行版系统和内核,在x86和arm架构下具体会有支持上的区别吗?”,无法判定,除非完全测试。但是经验来说可能会有区别,x86支持,ARM不一定支持。

“体系架构 | 发行版 | 内核版本”,其实就是罗列,x86我们已知的情况,ARM的已知的情况,未知不确定的按照linux社区最低限来设定 例如“| 其他发行版 | 5.8+”

| | EulerOS | 5.10+ [6] | Y | Y | Y | Y | Y **[10]** | Y **[11]** |
| | 麒麟 KylinOS V10 SP1 | 4.19.90-23 [7] | Y | Y | Y | Y | | Y **[11]** |
| | 麒麟 KylinOS V10 SP2 | 4.19.90-25.24+ [8] | Y | Y | Y | Y | | Y **[11]** |
| | 麒麟 KylinOS V10 SP3 | 4.19.90-52.24+ | Y | Y | Y | Y | | Y **[11]** |
| | 其他发行版 | 5.8+ | Y | Y | Y | Y | 5.10+ **[10]** | Y **[11]** |

对内核版本的额外说明:

Expand All @@ -63,6 +64,11 @@ DeepFlow 中的 eBPF 能力(AutoTracing、AutoProfiling)对内核版本的
- 4.19.90-vhulk2211.3.0.h1543.eulerosv2r10.aarch64
- [7]: 已验证 KylinOS V10 SP1 的部分 aarch64 内核(如 4.19.90-23.48.v2101.ky10.aarch64)可以正常运行 deepflow-agent,但不保证 KylinOS V10 SP1 的所有内核版本均能正常运行。
- [8]: KylinOS V10 SP2 某些内核如:4.19.90-24.4.v2101.ky10.aarch64 由于不支持 `bpf_probe_read_user()` 无法读取用户态的任何数据因而不支持 AutoTracing 功能,但可支持持续剖析和文件读写追踪功能。
- [9]: `perf` 表示通用 eBPF Profiling 能力。其中,以下增强能力有额外的内核要求:
- DWARF 栈回溯(DWARF Unwind):支持 Linux 5.2+,以及 Kylin V10 SP3 v2207 的 `4.19.90-*.v2207.ky10.*` 白名单内核。

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

目前dwarf unwind ebpf在社区5.2内核版本上加载存在问题,这里改为5.3+是否更合适? + @rvql

Image Image

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

可以
不过 6.x 上也有类似问题

- 解释器脚本函数栈展开(Node.js/V8、PHP、Lua、Python Profiling):支持 Linux 5.2+,以及 Kylin V10 SP3 v2207 的 `4.19.90-*.v2207.ky10.*` 白名单内核。
- [10]: TCP Option Trace 要求 Linux 5.10+,并启用 cgroup v2。
- [11]: CPU Balancer 要求 Linux 4.15+,且内核支持 XDP 和 CPUMAP。

deepflow-agent 运行权限的要求:

Expand Down
69 changes: 35 additions & 34 deletions docs/zh/05-features/04-continuous-profiling/01-auto-profiling.md
Original file line number Diff line number Diff line change
Expand Up @@ -15,41 +15,42 @@ permalink: /features/continuous-profiling/auto-profiling

支持的 eBPF Profiling 数据类型:

| 类型 | 支持语言/库 | 社区版 | 企业版 |
| ---------- | ----------- | ------ | ------ |
| on-cpu | Java | | ✔ |
| | C/C++ | | ✔ |
| | Rust | | ✔ |
| | Golang | | ✔ |
| | CUDA | | ✔ |
| | Node.js/V8 | | ✔ |
| | PHP | | ✔ |
| | Lua | | ✔ |
| | Python | | ✔ |
| off-cpu | Java | | ✔ |
| | C/C++ | | ✔ |
| | Rust | | ✔ |
| | Golang | | ✔ |
| | CUDA | | ✔ |
| | Node.js/V8 | | ✔ |
| | PHP | | ✔ |
| | Python | | ✔ |
| on-gpu | CUDA `*` | | ✔ |
| mem-alloc | Java `**` | | ✔ |
| | Rust | | ✔ |
| | Golang `*` | | ✔ |
| | Python | | ✔ |
| mem-inuse | Rust | | ✔ |
| | Python | | ✔ |
| hbm-alloc | CUDA `*` | | ✔ |
| | Python(调用 CUDA) | | ✔ |
| hbm-inuse | CUDA `*` | | ✔ |
| | Python(调用 CUDA) | | ✔ |
| rdma | C/C++ `*` | | ✔ |
| 类型 | 支持语言/库 | 支持的内核版本 | 社区版 | 企业版 |
| ---------- | ----------- | -------------- | ------ | ------ |
| on-cpu | Java | Linux 4.14+ | ✔ | ✔ |
| | C/C++ | Linux 4.14+ | ✔ | ✔ |

@yinjiping yinjiping Sep 9, 2026

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

支持的内核版本, 我想这一部分就不用修改,直接参考 https://github.com/deepflowio/docs/blob/eb8e004bf50ce6e6332db84d1b355993e7bdbf6c/docs/zh/02-ce-install/01-overview.md
我们给个链接就行。@kylewanginchina

| | Rust | Linux 4.14+ | ✔ | ✔ |
| | Golang | Linux 4.14+ | ✔ | ✔ |
| | CUDA | Linux 4.14+ | ✔ | ✔ |
| | Node.js/V8 | Linux 5.2+/白名单内核 `***` | | ✔ |
| | PHP | Linux 5.2+/白名单内核 `***` | | ✔ |
| | Lua | Linux 5.2+/白名单内核 `***` | | ✔ |
| | Python | Linux 5.2+/白名单内核 `***` | | ✔ |
| off-cpu | Java | Linux 4.14+ | | ✔ |
| | C/C++ | Linux 4.14+ | | ✔ |
| | Rust | Linux 4.14+ | | ✔ |
| | Golang | Linux 4.14+ | | ✔ |
| | CUDA | Linux 4.14+ | | ✔ |
| | Node.js/V8 | Linux 5.2+/白名单内核 `***` | | ✔ |
| | PHP | Linux 5.2+/白名单内核 `***` | | ✔ |
| | Python | Linux 5.2+/白名单内核 `***` | | ✔ |
| on-gpu | CUDA `*` | Linux 4.14+ | | ✔ |
| mem-alloc | Java `**` | Linux 4.14+ | | ✔ |
| | Rust | Linux 4.14+ | | ✔ |
| | Golang `*` | Linux 4.14+ | | ✔ |
| | Python | Linux 5.2+/白名单内核 `***` | | ✔ |
| mem-inuse | Rust | Linux 4.14+ | | ✔ |
| | Python | Linux 5.2+/白名单内核 `***` | | ✔ |
| hbm-alloc | CUDA `*` | Linux 4.14+ | | ✔ |
| | Python(调用 CUDA) | Linux 5.2+/白名单内核 `***` | | ✔ |
| hbm-inuse | CUDA `*` | Linux 4.14+ | | ✔ |
| | Python(调用 CUDA) | Linux 5.2+/白名单内核 `***` | | ✔ |
| rdma | C/C++ `*` | Linux 4.14+ | | ✔ |

说明:
- `*`: features in development
- `**`: 运行 Java 程序的 JVM 须有符号表,参考[检查方法](#jvm-符号表检查)
- `***`: 已适配的麒麟 V2207 内核:版本以 `4.19.90-` 开头且包含 `.v2207.ky10.`
- 类型:
- on-cpu:函数在 CPU 上消耗的时间
- off-cpu:函数等待 CPU 的时间
Expand Down Expand Up @@ -108,9 +109,9 @@ Off-CPU Profiling 功能**仅会**采集如下调用栈:

支持的 Java Profiling 数据类型:

| 类型 | 支持语言/库 | 社区版 | 企业版 |
| ---- | ----------- | ------ | ------ |
| cpu | Java | | ✔ |
| 类型 | 支持语言/库 | 支持的内核版本 | 社区版 | 企业版 |
| ---- | ----------- | -------------- | ------ | ------ |
| cpu | Java | 推荐 Linux 4.14+ | | ✔ |

说明:
- 类型:
Expand Down
36 changes: 21 additions & 15 deletions translate/translated/02-ce-install/01-overview.md
Original file line number Diff line number Diff line change
Expand Up @@ -29,21 +29,22 @@ If you currently do not have suitable resources to deploy DeepFlow, you can log
# Running Permissions and Kernel Requirements

The eBPF capabilities (AutoTracing, AutoProfiling) in DeepFlow have the following kernel version requirements:
| Architecture | Distribution | Kernel Version | kprobe [1] | Golang uprobe | OpenSSL uprobe | perf |
| -------- | ------ | ------- | ---------- | ------------- | -------------- | ---- |
| X86 | CentOS 7.9 | 3.10.0-940+ **[2]** | Y | Y **[3]** | Y **[3]** | Y |
| | RedHat 7.6 | 3.10.0-940+ **[2]** | Y | Y **[3]** | Y **[3]** | Y |
| | \* | 4.14 **[4]** | Y | Y **[3]** | | Y |
| | \* | 4.15 | Y | Y **[3]** | | Y |
| | \* | 4.16 | Y | Y | | Y |
| | \* | 4.17+ | Y | Y | Y | Y |
| | SUSE 12 SP5 | 4.12 [5] | Y | Y | | Y |
| ARM | CentOS 8 | 4.18 | Y | Y | Y | Y |
| | EulerOS | 5.10+ [6]| Y | Y | Y | Y |
| | KylinOS V10 SP1 | 4.19.90-23 [7] | Y | Y | Y | Y |
| | KylinOS V10 SP2 | 4.19.90-25.24+ [8] | Y | Y | Y | Y |
| | KylinOS V10 SP3 | 4.19.90-52.24+ | Y | Y | Y | Y |
| | Other Distributions | 5.8+ | Y | Y | Y | Y |

| Architecture | Distribution | Kernel Version | kprobe [1] | Golang uprobe | OpenSSL uprobe | perf [9] | TCP Option Trace | CPU Balancer |
| ------------ | ------------ | -------------- | ---------- | ------------- | -------------- | ---- | ---------------- | ------------ |
| X86 | CentOS 7.9 | 3.10.0-940+ **[2]** | Y | Y **[3]** | Y **[3]** | Y | | |
| | RedHat 7.6 | 3.10.0-940+ **[2]** | Y | Y **[3]** | Y **[3]** | Y | | |
| | \* | 4.14 **[4]** | Y | Y **[3]** | | Y | | |
| | \* | 4.15 | Y | Y **[3]** | | Y | | Y **[11]** |
| | \* | 4.16 | Y | Y | | Y | | Y **[11]** |
| | \* | 4.17+ | Y | Y | Y | Y | 5.10+ **[10]** | Y **[11]** |
| | SUSE 12 SP5 | 4.12 [5] | Y | Y | | Y | | |
| ARM | CentOS 8 | 4.18 | Y | Y | Y | Y | | Y **[11]** |
| | EulerOS | 5.10+ [6] | Y | Y | Y | Y | Y **[10]** | Y **[11]** |
| | KylinOS V10 SP1 | 4.19.90-23 [7] | Y | Y | Y | Y | | Y **[11]** |
| | KylinOS V10 SP2 | 4.19.90-25.24+ [8] | Y | Y | Y | Y | | Y **[11]** |
| | KylinOS V10 SP3 | 4.19.90-52.24+ | Y | Y | Y | Y | | Y **[11]** |
| | Other Distributions | 5.8+ | Y | Y | Y | Y | 5.10+ **[10]** | Y **[11]** |

Additional notes on kernel versions:

Expand All @@ -64,6 +65,11 @@ Additional notes on kernel versions:
- 4.19.90-vhulk2211.3.0.h1543.eulerosv2r10.aarch64
- [7]: Some aarch64 kernels of KylinOS V10 SP1 (e.g., 4.19.90-23.48.v2101.ky10.aarch64) have been verified to run deepflow-agent correctly. However, not all kernel versions of KylinOS V10 SP1 are guaranteed to be compatible.
- [8]: Some kernels of KylinOS V10 SP2, such as 4.19.90-24.4.v2101.ky10.aarch64, do not support `bpf_probe_read_user()` and cannot read any user-space data, thus not supporting AutoTracing functionality, but can support continuous profiling and file read/write tracing functions.
- [9]: `perf` indicates the generic eBPF Profiling capability. The following enhanced capabilities have additional kernel requirements:
- DWARF stack unwinding: Linux 5.2 or later, or a whitelisted Kylin V10 SP3 v2207 kernel matching `4.19.90-*.v2207.ky10.*`.
- Interpreter-level script stack unwinding (Node.js/V8, PHP, Lua, and Python Profiling): Linux 5.2 or later, or a whitelisted Kylin V10 SP3 v2207 kernel matching `4.19.90-*.v2207.ky10.*`.
- [10]: TCP Option Trace requires Linux 5.10 or later with cgroup v2 enabled.
- [11]: CPU Balancer requires Linux 4.15 or later and kernel support for XDP and CPUMAP.

Requirements for running permissions of deepflow-agent:

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -17,42 +17,43 @@ By using eBPF to capture snapshots of an application's function call stack, Deep

Supported eBPF profiling data types:

| Type | Supported Languages/Libraries | Community Edition | Enterprise Edition |
| ---------- | ----------------------------- | ----------------- | ------------------ |
| on-cpu | Java | | ✔ |
| | C/C++ | | ✔ |
| | Rust | | ✔ |
| | Golang | | ✔ |
| | CUDA | | ✔ |
| | Node.js/V8 | | ✔ |
| | PHP | | ✔ |
| | Lua | | ✔ |
| | Python | | ✔ |
| off-cpu | Java | | ✔ |
| | C/C++ | | ✔ |
| | Rust | | ✔ |
| | Golang | | ✔ |
| | CUDA | | ✔ |
| | Node.js/V8 | | ✔ |
| | PHP | | ✔ |
| | Python | | ✔ |
| on-gpu | CUDA `*` | | ✔ |
| mem-alloc | Java `**` | | ✔ |
| | Rust | | ✔ |
| | Golang `*` | | ✔ |
| | Python | | ✔ |
| mem-inuse | Rust | | ✔ |
| | Python | | ✔ |
| hbm-alloc | CUDA `*` | | ✔ |
| | Python (using CUDA) | | ✔ |
| hbm-inuse | CUDA `*` | | ✔ |
| | Python (using CUDA) | | ✔ |
| rdma | C/C++ `*` | | ✔ |
| Type | Supported Languages/Libraries | Supported Kernel Versions | Community Edition | Enterprise Edition |
| ---------- | ----------------------------- | ------------------------- | ----------------- | ------------------ |
| on-cpu | Java | Linux 4.14+ | ✔ | ✔ |
| | C/C++ | Linux 4.14+ | ✔ | ✔ |
| | Rust | Linux 4.14+ | ✔ | ✔ |
| | Golang | Linux 4.14+ | ✔ | ✔ |
| | CUDA | Linux 4.14+ | ✔ | ✔ |
| | Node.js/V8 | Linux 5.2+/whitelisted kernels `***` | | ✔ |
| | PHP | Linux 5.2+/whitelisted kernels `***` | | ✔ |
| | Lua | Linux 5.2+/whitelisted kernels `***` | | ✔ |
| | Python | Linux 5.2+/whitelisted kernels `***` | | ✔ |
| off-cpu | Java | Linux 4.14+ | | ✔ |
| | C/C++ | Linux 4.14+ | | ✔ |
| | Rust | Linux 4.14+ | | ✔ |
| | Golang | Linux 4.14+ | | ✔ |
| | CUDA | Linux 4.14+ | | ✔ |
| | Node.js/V8 | Linux 5.2+/whitelisted kernels `***` | | ✔ |
| | PHP | Linux 5.2+/whitelisted kernels `***` | | ✔ |
| | Python | Linux 5.2+/whitelisted kernels `***` | | ✔ |
| on-gpu | CUDA `*` | Linux 4.14+ | | ✔ |
| mem-alloc | Java `**` | Linux 4.14+ | | ✔ |
| | Rust | Linux 4.14+ | | ✔ |
| | Golang `*` | Linux 4.14+ | | ✔ |
| | Python | Linux 5.2+/whitelisted kernels `***` | | ✔ |
| mem-inuse | Rust | Linux 4.14+ | | ✔ |
| | Python | Linux 5.2+/whitelisted kernels `***` | | ✔ |
| hbm-alloc | CUDA `*` | Linux 4.14+ | | ✔ |
| | Python (using CUDA) | Linux 5.2+/whitelisted kernels `***` | | ✔ |
| hbm-inuse | CUDA `*` | Linux 4.14+ | | ✔ |
| | Python (using CUDA) | Linux 5.2+/whitelisted kernels `***` | | ✔ |
| rdma | C/C++ `*` | Linux 4.14+ | | ✔ |

Notes:

- `*`: features in development
- `**`: The JVM running the Java program must have a symbol table. See the [check method](#jvm-symbol-table-check).
- `***`: Adapted Kylin V2207 kernels whose versions start with `4.19.90-` and contain `.v2207.ky10.`
- Types:
- on-cpu: Time a function spends on the CPU
- off-cpu: Time a function waits for the CPU
Expand Down Expand Up @@ -111,9 +112,9 @@ The Off-CPU profiling feature **only** collects the following call stacks:

Supported Java Profiling data types:

| Type | Supported Language/Library | Community Edition | Enterprise Edition |
| ---- | -------------------------- | ----------------- | ------------------ |
| cpu | Java | | ✔ |
| Type | Supported Language/Library | Supported Kernel Versions | Community Edition | Enterprise Edition |
| ---- | -------------------------- | ------------------------- | ----------------- | ------------------ |
| cpu | Java | Linux 4.14+ recommended | | ✔ |

Notes:

Expand Down
Loading