20、分布式追踪性能优化全解析

分布式追踪性能优化全解析

1. 利用跨度表示并发工作

使用跨度(span)来表示并发工作的约定有助于性能分析。当两个或多个线程(或工作进程等)并发处理时,为每个线程使用一个独立于其父跨度的单独跨度。例如,若一个线程进行异步调用后继续处理,应创建两个子跨度。这样做便于理解原始线程是否会在异步调用时阻塞,也能让自动跟踪分析更好地了解运行情况。

2. 提升性能的方法

2.1 单个追踪分析

分布式追踪最基本的应用是分析单个请求,寻找意外行为、常见反模式或改进机会。在优化单个追踪时,可考虑以下问题:
- 是否有关键路径上的操作可以优化?
- 关键路径上的查询能否缓存?
- 请求提供的功能能否重构,将昂贵操作与常用操作分离?

在优化追踪时,还需考虑跨度的相对长度。例如,在图 8 - 2 中,若 D 的长度超过 E 的两倍,对 D 进行 20% 的改进所带来的收益将超过对 E 进行 20% 改进的两倍。应将优化工作重点放在构成关键路径最大部分的跨度上。

以下通过具体例子说明重构对性能的影响。假设图 8 - 2 中,跨度 B 代表身份验证操作,跨度 C 代表计算用户自上次登录以来的变化,跨度 E 代表查找用户的显示偏好。最初,这些操作可能捆绑在一起以减少网络开销,但现在该端点常被用于仅执行显示偏好的查找。此时,将端点重构为两部分:一部分确定变化,另一部分返回偏好,可更快地返回这些偏好。

另外,图 8 - 5 展示了一个常见问题。左侧的追踪显示一个根跨度有六个子跨度(标记为 A 到 F),这些跨度代表对其他服务的顺序调用,可能包括对一个或多个远程数据库的查询。通常,这些调用相互独立

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值