原始内容只有 5 条提纲,这里把它整理成一份更适合回看的排查顺序:先稳定复现,再逐段量化,最后做组件隔离。
1. 搭建压测环境
先保证问题可以稳定复现,否则后面的优化收益很难量化。
重点是先确认:
- 流量规模是否接近真实场景
- 压测环境和线上配置差异有多大
- 压测时是否会被其他噪声任务干扰
2. 构造请求
压测数据要尽量覆盖真实瓶颈触发条件,而不是只跑一组最简单的 happy path。
至少要分清:
- 正常请求和大包 / 慢请求
- 冷启动流量和热路径流量
- 是否存在特殊参数会显著拉高耗时
3. 统计各模块内部耗时
先看模块内部哪一段最慢,再决定是否继续深挖实现细节。
适合优先补齐:
- 函数级耗时
- 关键循环 / 关键锁耗时
- I/O、序列化、拷贝等高频操作耗时
4. 统计各模块间耗时
单个模块内部不一定慢,问题也可能出在模块之间的调用和排队。
这里更适合关注:
- RPC / IPC 往返耗时
- 队列等待时间
- 上下游服务之间的时间分布
5. 屏蔽链路上的可疑组件
最后再通过隔离法确认瓶颈到底落在哪一层,例如:
- 暂时绕过某些 service
- 暂时绕过 cache
- 暂时绕过 mysql
如果某个组件被屏蔽后延迟明显下降,就说明下一步应该优先深挖那一层,而不是继续在整条链路上盲目优化。
FEATURED TAGS
Git
Cheat Sheet
Markdown
Tools
C++
Linker
Thread
Linux
TCP
Network
GDB
Debug
leetcode
链表
WSL
Ubuntu
Windows
Linux Kernel
GCC
Android
adb
Troubleshooting
Profiling
Sanitizer
glibc
MySQL
Database
Python
curl
Build
ELF
clang-format
CMake
Graphviz
Performance
vcpkg
Protobuf
排查
速查
内存
STL
调试
性能分析
性能
读书笔记
方法论
架构
网络
Timer
mbedTLS
TLS
安全
负载均衡
脚本
工具
LRU
二叉树
BST
中序遍历
回溯
二分查找
优先队列
排序
旋转数组
jenkins
部署