skywalking定位慢接口调用链路的使用笔记

SkyWalking慢接口调用链分析

背景

测试在生产验证过程中反馈接口很慢。响应时间为10s左右。

查看日志确实存在慢接口的日志打印
在这里插入图片描述

解决思路

由于接口没有任何报错,而且只是等待时间过长。因为初步判断是网络路由问题。

其实arthas提供了针对接口的调用的完整链路打印功能
在这里插入图片描述

可是由于生产环境是集群部署的,不清楚请求分给哪个节点处理了。因此使用该工具会比较麻烦。需要每个节点都启动监听

后面发现 skywalking 也是天生支持链路追踪的

需要在 Trace Profiling 中新建任务,定时采样接口请求情况

在这里插入图片描述

新建任务各选项

在这里插入图片描述

请求接口后,就能看到详细的慢接口调用情况

在这里插入图片描述

点击查看可以看到具体的请求接口

在这里插入图片描述

skywalking 提供了多种性能剖析(Profiling) 工具帮助定位深入定位应用性能瓶颈

功能名称核心目标剖析维度关键特点主要适用场景
Trace Profiling关联特定慢请求,定位代码行关联特定Trace与慢调用链直接关联,精确定位到导致延迟的代码方法或行分析已知的,可复现的慢接口或高延迟调用链
eBPF Profiling全进程深度剖析,涵盖内核态整个进程(物理实例)无需代码侵入,可剖析用户态和内核态执行,生成火焰图,适合分析系统级瓶颈分析系统调用,网络栈,锁竞争等底层性能问题,尤其适合非JVM应用
Async ProfilingJVM应用内部剖析JVM进程专为JVM设计,支持CPU,内存分配,锁分析,集成async-profiler,开销低深度分析Java应用的CPU热点、内存分配压力、同步锁瓶颈。

SkyWalking 提供了多种性能剖析(Profiling)工具来帮助开发者深入定位应用性能瓶颈。它们各有侧重,共同构成了从代码到系统层面的立体化性能分析能力。下面我用一个表格为你快速梳理它们的核心区别,然后再详细说明。

功能名称核心目标剖析维度关键特点主要适用场景
Trace Profiling关联特定慢请求,定位代码行关联特定Trace与慢调用链直接关联,精确定位到导致延迟的代码方法或行。分析已知的、可复现的慢接口或高延迟调用链。
eBPF Profiling全进程深度剖析,涵盖内核态整个进程(物理实例)无需代码侵入,可剖析用户态和内核态执行,生成火焰图,适合分析系统级瓶颈。分析系统调用、网络栈、锁竞争等底层性能问题,尤其适合非JVM应用。
Async ProfilingJVM应用内部剖析JVM进程专为JVM设计,支持CPU、内存分配、锁分析,集成async-profiler,开销低。深度分析Java应用的CPU热点、内存分配压力、同步锁瓶颈。

🔍 详细功能介绍

1. Trace Profiling:关联业务逻辑的慢请求分析

Trace Profiling 用于定位导致特定慢请求(Trace)的代码行。当某个接口调用链耗时过长时,你可以针对该Trace发起剖析,SkyWalking Agent会对相关线程进行周期性栈快照。通过分析这些快照,可以统计出哪些方法或代码行耗时最长,从而精准定位问题根源

典型流程

  1. 在SkyWalking UI的Trace列表中找到一个慢请求(Trace)。
  2. 创建Trace Profiling任务,Agent会开始对执行该请求的线程进行采样。
  3. 分析完成后,查看结果,通常会精确定位到导致延迟的特定代码方法或行
2. eBPF Profiling:系统级的深度性能剖析

eBPF Profiling 利用Linux内核的eBPF技术,无需代码侵入即可对整个进程进行深度监控,包括用户态和内核态的执行情况。它能生成火焰图,帮助你分析系统调用、内核阻塞、网络IO等底层瓶颈,尤其适合分析非JVM应用或需要洞察系统资源的场景

典型流程

1.确保SkyWalking Rover(eBPF Agent)部署在目标主机上。

2.在UI上选择目标服务或进程,创建eBPF Profiling任务(如On-CPU剖析)。

3.Rover会进行采样,并将数据发送回SkyWalking后端。

4.查看生成的火焰图,分析进程在内核和用户空间的函数耗时分布。

3. Async Profiling:JVM生态的专项利器

Async Profiling 专为JVM应用设计,它集成了async-profiler,能够以很低的开销对Java进程进行CPU、内存分配(Allocation)、锁竞争(Lock)等方面的剖析。这对于分析Java应用的内存压力、同步瓶颈等问题非常有效

支持的分析类型

  • CPU采样:分析JVM的CPU热点方法。
  • 内存分配采样:分析对象分配的位置和频率,追踪内存消耗的源头。
  • 锁分析:发现同步瓶颈和竞争激烈的锁

典型流程

  1. 为Java服务配置SkyWalking Java Agent。

  2. 在UI上选择目标服务实例,创建Async Profiling任务,选择事件类型(如CPU、ALLOC)。

  3. Agent控制async-profiler进行采样,并将生成的JFR文件上传。

  4. 在UI中分析火焰图或相关报告,定位JVM层面的性能问题

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值