压力测试
평균이 왜 존재하지 않는 사용자를 묘사하는지, p99 가 왜 소수의 불운한 사용자가 아니라 거의 모든 사용자의 일상인지에서 시작합니다. 실제 컨테이너에 부하를 걸어 기준선을 만들고, 동시성 사다리로 포화 지점을 찾고, 일부러 느린 애플리케이션을 만들어 병목을 재현하고 제거한 뒤 필요한 인스턴스 수까지 계산합니다. 클러스터 자원을 실제로 태우는 코스라 구독자 전용입니다.
고급 · 레슨 30 · 实验 10
커리큘럼
负载模型与指标(RPS、p95、错误率)
- 平均值察觉不到尾部在变坏 reading
- 建立基线 lab
- 测验:负载模型与指标 quiz
测试设计与预热
- 压测工具要配合背压 reading
- 负载阶梯与饱和点 lab
- 测验:测试设计与预热 quiz
找瓶颈
- 拒绝不是失败,是保护 reading
- 复现并消除瓶颈 lab
- 测验:找瓶颈 quiz
容量估算
- 估规模,就是把数量级对上 reading
- 压测的目标数值从哪里来 lab
- 测验:容量估算 quiz
协调性遗漏
- 最糟的时刻从结果里消失了 reading
- 服务器停顿了两秒,p99 却是60毫秒 lab
- 测验:协调性遗漏 quiz
当压测端成为瓶颈
- 压测端没造出来的负载不是服务端的极限 reading
- 报告写着每秒500次,实际只有48次 lab
- 测验:压测端的限制 quiz
如何合并百分位数
- 三个 p95 的平均值不是任何一个 p95 reading
- 把各分片的 p95 求平均,比真实 p95 高出了 108 毫秒 lab
- 测验:合并百分位数 quiz
到达过程与思考时间
- 平均每秒 100 个请求说明不了负载 reading
- 平均值一样,却只有一边把队列压垮了 lab
- 测验:到达过程 quiz
压测说谎的地方
- 拿到 200 并不等于真的干了活 reading
- 每秒三千次请求,结果全是错误页面 lab
- 测验:这次压测可信吗 quiz
性能回归的判定
- “慢了 8%”这句话里少了噪声的大小 reading
- 被当成性能回归回滚的改动,其实只是噪声 lab
- 测验:回归判定 quiz