压测的重要性

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

猜你喜欢

转载自www.cnblogs.com/wudiffs/p/9238815.html