1.什么情况下预示着你的服务器到了瓶颈?
答:1.被测服务器资源CPU超过70% 2.被测服务器带宽占用率超过70% 3.吞吐量开始下降 4.响应时间开始上升
2.并发量=在线用户/10
所以1W的并发量,就相当于当前在线用户是10W
二、压测步骤(制定压测目标时要预留出一些buffer)
1. 我们压测试单场景,压一个接口的,一般是运行10分钟
2.明确压测的目标接口,这个一般是业务or后端RD给出
3.明确要求支持多少并发数?我们业务的体量是要求1w并发数
4.TPS(每秒钟处理事务数)目标多少?基准值一般是通过平时监控线上高峰的数据给出;我的业务的体量基准tps是40
5.明确响应时间是多少?我们一般要求是200毫秒
6.准备压测数据一般有几种方式,根据具体场景可以:
1、直接DB建数据
2、通过业务接口建数据
3、线上流量COPY
三、压测中
1.逐步加压到目标QPS
2.在加压过程中,观测并记录发现的问题,如果出现阻塞性问题,停止压测。
观测指标:cpu使用率、内存使用率、响应时间、tps吞吐量
四、压测结束
1.发送压测报告(压测目标值通过or不通过)
2.分析压测结果
五、影响压测的一些原因
压测过程出现性能瓶颈,若压力机任务管理器查看到的cpu、网络和cpu都正常,未达到90%以上,则可以说明服务器有问题,压力机没有问题
2.影响性能考虑点包括:数据库、应用程序、中间件(tomact、Nginx)、网络和操作系统等方面
六、压测好几次了,代码也优化过几次了,一直不通过怎么办?
结论是:压不过就压不过,不会死人的,这个时候你需要review下你的QPS目标是不是定的过高了,和开发讨论下还有没有优化的空间,和业务讨论下这个业务是不是能降级掉,和依赖方讨论下能否对某些不重要的依赖方降级,压测只是一种手段,保证业务能够正常运行才是我们的最终目的