-
Notifications
You must be signed in to change notification settings - Fork 20
Kernel support matrix #782
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: main
Are you sure you want to change the base?
Changes from all commits
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
| Original file line number | Diff line number | Diff line change |
|---|---|---|
|
|
@@ -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]** | | ||
| | | 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]** | | ||
|
|
||
| 对内核版本的额外说明: | ||
|
|
||
|
|
@@ -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.*` 白名单内核。 | ||
|
Contributor
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more.
Contributor
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. 可以 |
||
| - 解释器脚本函数栈展开(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 运行权限的要求: | ||
|
|
||
|
|
||
| Original file line number | Diff line number | Diff line change |
|---|---|---|
|
|
@@ -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+ | ✔ | ✔ | | ||
|
Contributor
Author
There was a problem hiding this comment. Choose a reason for hiding this commentThe 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 |
||
| | | 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 的时间 | ||
|
|
@@ -108,9 +109,9 @@ Off-CPU Profiling 功能**仅会**采集如下调用栈: | |
|
|
||
| 支持的 Java Profiling 数据类型: | ||
|
|
||
| | 类型 | 支持语言/库 | 社区版 | 企业版 | | ||
| | ---- | ----------- | ------ | ------ | | ||
| | cpu | Java | | ✔ | | ||
| | 类型 | 支持语言/库 | 支持的内核版本 | 社区版 | 企业版 | | ||
| | ---- | ----------- | -------------- | ------ | ------ | | ||
| | cpu | Java | 推荐 Linux 4.14+ | | ✔ | | ||
|
|
||
| 说明: | ||
| - 类型: | ||
|
|
||


There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
对于同样的发行版系统和内核,在x86和arm架构下具体会有支持上的区别吗?如果有的话,是不是改为按系统/内核作为主区分项,架构作为内部子区分项来更新这个表格?
There was a problem hiding this comment.
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+”