一、QPS(每秒查询)
QPS(Queries Per Second):表示“每秒查询率”,指一台服务器每秒能够相应的查询次数,是对一个特定的查询服务器在规定时间内所处理流量多少的衡量标准。
二、TPS(每秒事务)
TPS(Transaction Per Second):表示每秒的事务数,指软件测试的测量单位。这其中一个事务是指一个客户端向服务器发送请求然后服务器做出反应的过程。TPS的一个完整计时周期是客户机在发送请求时开始计时,收到服务器的响应后结束计时,以此来统计相应时间内的完成事务的个数即TPS,即每秒完成的事务数量。
三、RT(响应时间)
RT(Response Time):表示响应时间,指执行一个请求从开始到最后收到响应数据花费的总体时间,即从客户端发起请求到收到服务器响应结果的时间。因此RT直接代表了服务系统的快慢,是线上服务最重要的指标之一,直接关联着用户体验。
四、并发数
并发数是指系统同时能处理的请求数量,直接反映了系统的负载能力
五、吞吐量
系统的吞吐量(承压能力)与request对CPU的消耗、外部接口和IO读写等等有密切的关联,单个request对CPU的消耗越高,IO速度越慢和对外部接口的依赖越多,就会导致系统吞吐率越低,反之则越高。
系统吞吐量几个重要参数:QPS(TPS)、并发数、响应时间。
QPS(TPS):每秒钟request/事务 数量
并发数: 系统同时处理的request/事务数
响应时间: 一般取平均响应时间
六、最佳线程数、QPS、RT
1、单线程QPS公式:QPS=1000ms/RT
对同一个系统而言,支持的线程数越多,QPS越高。假设一个RT是80ms,则可以很容易的计算出QPS,QPS = 1000/80 = 12.5
多线程场景,如果把服务端的线程数提升到2,那么整个系统的QPS则为 2*(1000/80) = 25, 可见QPS随着线程的增加而线性增长,那QPS上不去就加线程呗,听起来很有道理,公司也说的通,但是往往现实并非如此。
2、最佳线程数量
刚好消耗完服务器的瓶颈资源的临界线程数,公式如下
最佳线程数量=((线程等待时间+线程cpu时间)/线程cpu时间)* cpu数量
特性:
在达到最佳线程数的时候,线程数量继续递增,则QPS不变,而响应时间变长,持续递增线程数量,则QPS开始下降。
每个系统都有其最佳线程数量,但是不同状态下,最佳线程数量是会变化的。
瓶颈资源可以是CPU,可以是内存,可以是锁资源,IO资源:超过最佳线程数-导致资源的竞争,超过最佳线程数-响应时间递增。