1. QPS (Query Per Second)
服务端每秒执行的查询(query)请求数, 它是对特定查询服务器在给定时间段内处理的流量的度量。
2. TPS (Transactions Per Second)
每秒处理的事务数, (它是软件测试结果的度量单位)。事务是一个过程,其中客户端向服务器发送请求,服务器进行响应。客户端在发送请求时开始计时,在接收服务器响应后结束计时,这用于计算所用的时间和完成的事务数量。
3. QPS VS TPS
QPS 与 TPS 最大的不同点在于, tps 是度量一次事务,而qps 是对一次请求的度量
例如,访问一个页面请求服务器2秒,一次访问,产生一个“ tps”,产生2个单独的“ qps”。
4. Concurrency number(并发数)
服务端程序 "同时" 处理请求或事务的任务数。
5. QPS(TPS) 并发数 怎么计算?
QPS(TPS)= Concurrency number(并发数)/ Average response time(rt 平均响应时间)。
Concurrency number(并发数) = QPS * Average response time (rt 平均响应时间)。
6. 什么是28 法则?
如果每天 **80% 的访问集中在 20% 的时间,这20% 的时间 **被称为峰值时间。
峰时QPS = (页面访问数 PV * 80% ) / ( 86400s * 20% )
所需服务器数 = 峰时QPS / 一台服务器QPS承载数
7. 最佳线程数怎么设置?
单线程的QPS = 1000ms/RT(响应时间)
场景:单线程处理一个请求执行平均耗时79ms, 那么单线程支持的 QPS 大约是 12.65。
QPS 与线程数是线性相关的,多线程场景中增加线程数,可以成倍的提高QPS (但是要考虑服务器 cpu core 数,内核数
如果分配超出内核 2倍的线程数,无疑会增加线程上线文切换和总线hub的调度成本。)
最佳线程数 = {(线程等待时间+ 线程CPU切换耗时)/ 线程CPU切换耗时} * CPU core(核数)
需要注意的是:** 当达到最优线程数,继续增加线程数量,QPS 也不会继续线性增长,并且响应时间可能变长,如果继续增加线程数就会造成QPS 降低, 所有切记线程数不是越多越好。**
每个系统都有其最佳线程数,但在不同的状态下,最佳线程数会发生变化。瓶颈资源可能(CPU,Memory(内存),锁,IO 等)
** 超过最优线程将会导致 (资源竞争,增加响应时间)。**
网友评论