BPF学习之性能分析
1. 概览
1.1.目标
性能分析前我们需要先明确目标,有的放矢.明确了目标后,进一步的分析工作就有了上下文,不至于跑偏.
一般来说,性能分析的目标是改进用户最终体验和降低运行成本.
有了目标,最好能将其进行量化:这种量化能够表明是否已经达到优化的目标,还可以定义离目标的差距有多远.
可测量的指标:
- 延迟: 多久可以完成一次请求操作,通常以毫秒为单位.
- 速率: 每秒操作或请求的速率.
- 吞吐量: 通常指每秒传输的数据量,以比特(bit)或者字节(byte)为单位.
- 利用率: 以百分比形式表示的某资源在一段时间内的繁忙程度.
- 成本: 开销/性能的比例.
1.1.1 改进用户体验
最终用户眼中的性能,是端到端的"迟延".这个过程可能由许多组件构成,我们需要细化分析每个组件的开销.由于同时对多个组件跟踪
会带来显著的性能损失.因此在实践中,通常用小而专的工具来研究特定组件的时间开销和延迟.
1.1.2 降低运行成本
需要观测软件和硬件资源是如何使用的,从中定位可优化的部分,目标是降低公司在云和数据中心方面的开支.
1.2 分析工作
BPF性能分析工具,不只用于分析特定类型的问题.还可以考虑如何使用它们改进监控、非回归测试,以及其它性能分析活动.
性能分析活动 | BPF性能分析工具 |
---|---|
1.原型软件或硬件的性能特征分析 | 测量不同业务负载下的延迟直方图 |
2.在开发阶段、集成阶段之前的性能分析 | 解决 |