一、QPS
1、定义:
是 Queries Per Sencond 的缩写,表示每秒能够响应的查询次数,即1秒内能完成的请求数量,用来反映系统的吞吐能力。
2、补充说明:
(1)客户端请求一个地址时(即一个完整的事务操作),可能不只有一个请求,也可能会包含多个请求。比如百度首页,其实不是只有一个html请求,还会产生如css、js、jpg等很多个请求
(2)是对一个特定的查询服务器,在规定时间内所处理流量多少的衡量标准,计算关系:QPS = 并发量 / 平均响应时间
(3)可使用Jmeter进行压测,查看结果报告即可得出QPS,安装步骤参考JMeter下载和安装
3、如何提高QPS
(1)优化机器的性能,从CPU、内存、IO、网络等方面进行优化
(2)优化程序代码,比如线程池的设置、异步提速等,找出瓶颈点并解决掉,常用的方法是日志埋点或者用专业的apm工具做钻取分析
(3)优化逻辑架构,检查架构设计是否合理,模块之间的调用是否合理等,如果瓶颈模块依赖的接口是别的部门或外网资源,通常只能是重构
二、TPS
1、定义:
是 Transactions Per Second的缩写,表示每秒事务数,即1秒内能处理的事务总数。
2、补充说明:
(1)TPS描述的一个事务,包括 客户端发送请求到服务端、服务端内部进行处理、服务端向客户端返回响应结果 三个动作,都完成才表示一个事务处理完成
(2)一般来说,评价系统的性能主要看系统的TPS,系统的整体性能取决于性能最低的模块的TPS值。即一个木桶的容量有多大取决于它的最短板
三、两者的区别
(1)调用一个接口,且接口内部不会再去请求其它接口,那么 TPS = QPS,否则,TPS ≠ QPS
(2)一个请求同时调用N 个查询接口,且每个接口内部都不会再去请求其它接口,QPS = N * TPS