各位同窗知道本身负责系统各个接口能抗多大量吗?TP99多少?需不须要扩容?面对大促的流量会不会系统会不会挂掉?
压测的做用
- 知道接口能抗多大量。
- 知道接口的瓶颈在哪里。
- 发现系统存在的问题。
压测分类
- 全链路压测
- 单接口压测
压测须要关注的数据
- docker 主要关注:cpu利用率、内存使用率、网络流入流出速率、TCP链接数、磁盘繁忙【%】、FULLGC
- redis 主要关注:物理机cpu利用率、ops、used_memory、网络流入流出速率
- mysql 主要关注:cpu利用率、mysql read、write、insert、update 的qps
压测环境准备
压测通常分为读接口和写接口压测
针对读接口,首先保证压测的实例线上没有流量打进来。
针对写接口,最好彻底隔离一套环境,从主机,redis,数据库,mq等所有隔离一套环境,千万保证流量不能打到线上去。
压测别人接口时必定要提早通知。
压测小技巧
确认压测目标:tp99(秒级|分钟级)要达到多少。好比和去年高点对比,新接口和业务方确认估出一个值来。
量由少到多,当发现增长压测并发量,tp99上升不明显反而降低时,找出瓶颈,修改,反复压测,最后决定是否须要扩容。
好比修改下日志级别改为error,分段确认代码的性能,找出具体那段代码耗时最长,找出性能很差的机器摘调再试试等等。
结语
写的很笼统,不少细节没能表述出来,压测的时候碰到不少问题,能够帮你发现系统的不少问题,这些小的问题,可能在大促大流量面前就会被放大。
经过压测找到系统每个死角,能够帮助你在大促时安心,不太回担忧系统挂了,扛不住大流量。