诊断
eBPF剖析
eBPF是一种强大的内核技术,允许在不修改内核源代码的情况下,动态地在内核中运行沙箱程序。在应用性能监控领域,eBPF持续剖析功能能够实时捕捉应用程序中的性能瓶颈,包括CPU、IO的使用,帮助开发者通过详细的分析找到性能瓶颈,从而优化程序、降低延迟、增加吞吐量、节约成本。
- On-CPU:表示在CPU上执行的时间,即函数实际消耗的CPU时间,帮助识别CPU消耗较大的函数。
- Off-CPU:表示等待CPU时间,分析在 I/O、锁、计时器、分页/交换等阻塞时等待的时间,适用于分析线程阻塞或调度瓶颈。
新建剖析
- 进入诊断轻应用,单击右上角的新建剖析按钮,弹出新建剖析页。
- 选择本次剖析的类型、进程、采集频率和持续时间:
- 剖析类型:On-CPU、Off-CPU,支持同时选择。
- 选择进程:支持选择最近30分钟活跃的进程,支持根据主机IP、主机名称、应用名称、实例名称等过滤进程。
- 采集配置:默认采集频率50次/秒,持续时间是1分钟。
注意:
- 仅支持UniAgent 4.2.0.0+、Kubernetes UniAgent 4.2.0.0+。
- 内核版本:x86架构需4.19+,arm64架构需5.5+。
- 不支持Nginx、PHP语言的进程。
- JDK版本要求(需支持Serviceability Agent),
- 支持以下 JDK 类型与版本:
- OpenJDK 1.7+
- Oracle JDK(HotSpot)、 Adoptium 等主流发行版
- 不支持以下类型与版本:
- JDK1.5、JDK1.6(未内置 SA 支持)
- IBM JDK(架构不同,SA 不兼容)
- Oracle JRockit(JRockit 为独立实现,不兼容 HotSpot 的调试机制)
- 支持以下 JDK 类型与版本:
- 以下版本Linux进行eBPF剖析时可能存在问题:
- 有缺陷的版本:6.1.x ,修复版本:6.1.36
- 有缺陷的版本:6.3.x ,修复版本:6.3.10
- 有缺陷的版本:5.19及5.19以上5.x,6.0.x和6.2.x ,修复版本:6.3.1
