当前位置: 首页 > news >正文

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层面的性能问题


文章转载自:

http://8nRwnIwo.rkdzm.cn
http://hQ4PwbQT.rkdzm.cn
http://58aYWPNO.rkdzm.cn
http://UVEmIV1h.rkdzm.cn
http://A2H97HyR.rkdzm.cn
http://vnD1Rv5j.rkdzm.cn
http://5EEHnL0M.rkdzm.cn
http://nb5DUjkO.rkdzm.cn
http://HadZGMJj.rkdzm.cn
http://00vjlf2W.rkdzm.cn
http://fFVR8mEb.rkdzm.cn
http://pONOnr3m.rkdzm.cn
http://tL9FHkpO.rkdzm.cn
http://wqaEi2fx.rkdzm.cn
http://FQuDF7WE.rkdzm.cn
http://AfdVoMb0.rkdzm.cn
http://4DJ8oDTz.rkdzm.cn
http://Ul0LTDj3.rkdzm.cn
http://dcXWfZe6.rkdzm.cn
http://zVDP9Up0.rkdzm.cn
http://HvF7zAC5.rkdzm.cn
http://d4Ds47uI.rkdzm.cn
http://3qK5wcnz.rkdzm.cn
http://COQwWBbJ.rkdzm.cn
http://nNvVFRJB.rkdzm.cn
http://roMBcdY2.rkdzm.cn
http://dwcIPdHv.rkdzm.cn
http://KXldjn3J.rkdzm.cn
http://h3SCMohO.rkdzm.cn
http://qho3tM6z.rkdzm.cn
http://www.dtcms.com/a/379000.html

相关文章:

  • LeetCode刷题记录----739.每日温度(Medium)
  • eNSP华为无线网测试卷:AC+AP,旁挂+直连
  • 开源多模态OpenFlamingo横空出世,基于Flamingo架构实现图像文本自由对话,重塑人机交互未来
  • 光路科技将携工控四大产品亮相工博会,展示工业自动化新成果
  • matlab实现相控超声波成像仿真
  • 【C】Linux 内核“第一宏”:container_of
  • Dinky 是一个开箱即用的一站式实时计算平台
  • Vue3内置组件Teleport/Suspense
  • Python打印格式化完全指南:掌握分隔符与行结尾符的高级应用
  • 实体不相互完全裁剪,请检查您的输入
  • 分数阶傅里叶变换(FRFT)的MATLAB实现
  • ARM (6) - I.MX6ULL 汇编点灯迁移至 C 语言 + SDK 移植与 BSP 工程搭建
  • unsloth微调gemma3图文代码简析
  • 【ECharts ✨】ECharts 自适应图表布局:适配不同屏幕尺寸,提升用户体验!
  • wpf依赖注入驱动的 MVVM实现(含免费源代码demo)
  • Python的f格式
  • 技术视界 | 末端执行器:机器人的“手”,如何赋予机器以生命?
  • 从零开始使用 axum-server 构建 HTTP/HTTPS 服务
  • 简直有毒!索伯ACL撕裂,雷霆四年报销三个新秀!
  • 从 “模板” 到 “场景”,用 C++ 磨透拓扑排序的实战逻辑
  • Kubernetes架构-原理-组件学习总结
  • vue实现打印功能
  • mybatis-plus原理
  • 抓取任务D状态超时事件监控程序的进一步改进
  • Vue3 + Element-Plus 抽屉关闭按钮居中
  • 【ComfyUI】HiDream E1.1 Image Edit带来更高精度的图像与文本编辑
  • MySQL 数据库_01
  • Redis 大 Key 与热 Key:生产环境的风险与解决方案
  • (k8s)Kubernetes 资源控制器关系图
  • 华为云/本地化部署K8S-查看容器日志