性能测试-并发和QPS

性能测试-并发和QPS

响应时间:

cpu计算耗时 + cpu等待耗时 + 网络io耗时 + 磁盘io耗时

并发:

服务端并发和客户端并发不是同一个概念。客户端并发仅仅是为了模拟多用户访问,服务端并发是同时处理的请求数。从收到客户端的请求处处理完成发出响应,都是属于并发执行的请求。html

客户端并发数不等于服务端并发数。虽然服务端同一时刻执行的线程数等于cpu个数,可是高性能的服务通常是都会使用了异步io;遇到io操做就扔给了操做系统执行,cpu接着干其余的事。因此应用程序同时能够处理多于cpu数目不少的请求。但也不是无限多的。影响并发的系统资源有socket数,带宽紧张程度,内存紧张程度,cpu繁忙程度,磁盘繁忙程度。这些资源共同影响并发数。git

这些资源中有些很是充足好比socket数(普通的服务都是设置了600000, 经过ulimit -n查看),有些就比较匮乏,好比磁盘(具体效率能够去google)。当磁盘遇到瓶颈的时候,socket资源充当了缓冲区。虽然同时可以接受不少请求,可是真正能作出响应的比较少,形成响应时间增长,这种并发没有意义。github

因此,能保证最低响应时间的并发才是有效并发。
咱们在压力测试过程当中,不断的增长并发数,若是平均响应时间增长,说明并发能力已经到头了,再加大并发整体性能将要下降。shell

上面已经谈及到,并发数可经过屡次实验来得到。apache

下面在来介绍一个种估算并发数据的方法:网络

C=n*L/T

C:并发

n:压测时间段内全部的请求数

L:平均响应时间

T:压测总时长

这里注意:L(平均响应时间)≠ T(总时长)/ n(总请求)

摘自:
从压测工具谈并发、压力、吞吐量
Method for Estimating the Number of Concurrent Users并发

QPS:每秒请求数,qps是衡量吞吐量指标

咱们在压测工具制做中,一直存在一个争议——吞吐量的计算。

在性能测试中,吞吐量的计算有两种常见的公式:

公式1: 吞吐量=并发数/平均响应时间

公式2: 吞吐量=请求总数/总时长

公式一、2你们应该都接触过,虽然看上去不同,其实理论上都是ok的。

首先咱们能够从C = nL / T 推导:

并发 = 请求总数*平均响应时间 / 总时长

=》并发 / 平均响应时间 = 请求总数 / 总时长

=》公式1 = 公式2

摘自:
从压测工具谈并发、压力、吞吐量异步

性能测试工具

附上一些性能测试工具,排名不分前后,你们喜欢哪一个用哪一个。socket

hey
siege
vegeta
wrk
abwordpress

相关文章
相关标签/搜索