Go实现的压测工具
压测是用来确定系统稳定性的一种测试方法,主要检测服务器的承受能力,包括用户承受能力。这样可以对未来可能达到用户数量以及活动时高流量时有一个预估,可以提前准备机器来保证项目稳定运行。
压测名词及服务器指标名词
- QPS:服务器每秒钟处理请求数量 (req/sec 请求数/秒 一段时间内总请求数/请求时间)
- 错误率:在压测中,请求成功的数量与请求失败数量的比率
- 平均响应时间:在一次压测中,从发出请求或指令系统做出的反映(响应)的平均时间
- cpu的利用率:CUP 利用率分用户态、系统态和空闲态,CPU利用率是指:CPU执行非系统空闲进程的时间与CPU总执行时间的比率
- 内存的使用率:内存使用率指的是此进程所开销的内存。
- 网卡负载:网卡的进出带宽,包量
压测的指标
- 压测我们需要有目的性的压测,这次压测我们需要达到什么目标(如:单台机器的性能为 100QPS?网站能同时满足100W人同时在线)
- 可以通过以下计算方法来进行计算:
- 压测原则:每天80%的访问量集中在20%的时间里,这20%的时间就叫做峰值
- 公式: ( 总PV数
*
80% ) / ( 每天的秒数*
20% ) = 峰值时间每秒钟请求数(QPS) - 机器: 峰值时间每秒钟请求数(QPS) / 单台机器的QPS = 需要的机器的数量
- 假设:网站每天的用户数(100W),每天的用户的访问量约为3000W PV,这台机器的需要多少QPS?
( 30000000*0.8 ) / (8640