吞吐量(TPS)、QPS、并发数、响应时间(RT)概念
黑龙江博物馆开发的原因,需要对吞吐量(TPS)、QPS、并发数、响应时间(RT)⼏个概念做下了解,查⾃百度百科,记录如下:
1. 响应时间(RT)
响应时间是指系统对请求作出响应的时间。直观上看,这个指标与⼈对软件性能的主观感受是⾮常⼀致的,因为它完整地记录了整个计算机系统处理请求的时间。由于⼀个系统通常会提供许多功能,⽽不同功能的处理逻辑也千差万别,因⽽不同功能的响应时间也不尽相同,甚⾄同⼀功能在不同输⼊数据的情况下响应时间也不相同。所以,在讨论⼀个系统的响应时间时,⼈们通常是指该系统所有功能的平均时间或者所有功能的最⼤响应时间。当然,往往也需要对每个或每组功能讨论其平均响应时间和最⼤响应时间。
对于单机的没有并发操作的应⽤系统⽽⾔,⼈们普遍认为响应时间是⼀个合理且准确的性能指标。需要指出的是,响应时间的绝对值并不能直接反映软件的性能的⾼低,软件性能的⾼低实际上取决于⽤户对该响应时间的接受程度。对于⼀个游戏软件来说,响应时间⼩于100毫秒应该是不错的,响应时间在1秒左右可能属于勉强可以接受,如果响应时间达到3秒就完全难以接受了。⽽对于编译系统来说,完整编译⼀个较⼤规模软件的源代码可能需要⼏⼗分钟甚⾄更长时间,但这些响应时间对于⽤户来说都是可以接实训总结万能版
受的。放屁多的原因
2. 吞吐量(Throughput)
吞吐量是指系统在单位时间内处理请求的数量。对于⽆并发的应⽤系统⽽⾔,吞吐量与响应时间成严格的反⽐关系,实际上此时吞吐量就是响应时间的倒数。前⾯已经说过,对于单⽤户的系统,响应时间(或者系统响应时间和应⽤延迟时间)可以很好地度量系统的性能,但对于并发系统,通常需要⽤吞吐量作为性能指标。
对于⼀个多⽤户的系统,如果只有⼀个⽤户使⽤时系统的平均响应时间是t,当有你n个⽤户使⽤时,每个⽤户看到的响应时间通常并不是n×t,⽽往往⽐n×t⼩很多(当然,在某些特殊情况下也可能⽐n×t⼤,甚⾄⼤很多)。这是因为处理每个请求需要⽤到很多资源,由于每个请求的处理过程中有许多不⾛难以并发执⾏,这导致在具体的⼀个时间点,所占资源往往并不多。也就是说在处理单个请求时,在每个时间点都可能有许多资源被闲置,当处理多个请求时,如果资源配置合理,每个⽤户看到的平均响应时间并不随⽤户数的增加⽽线性增加。实际上,不同系统的平均响应时间随⽤户数增加⽽增长的速度也不⼤相同,这也是采⽤吞吐量来度量并发系统的性能的主要原因。⼀般⽽⾔,吞吐量是⼀个⽐较通⽤的指标,两个具有不同⽤户数和⽤户使⽤模式的系统,如果其最⼤吞吐量基本⼀致,则可以判断两个系统的处理能⼒基本⼀致。
3. 并发⽤户数
并发⽤户数是指系统可以同时承载的正常使⽤系统功能的⽤户的数量。与吞吐量相⽐,并发⽤户数是⼀个更直观但也更笼统的性能指标。实际上,并发⽤户数是⼀个⾮常不准确的指标,因为⽤户不同的使⽤模式会导致不同⽤户在单位时间发出不同数量的请求。⼀⽹站系统为例,假设⽤户只有注册后才能使⽤,但注册⽤户并不是每时每刻都在使⽤该⽹站,因此具体⼀个时刻只有部分注册⽤户同时在线,在线⽤户就在浏览⽹站时会花很多时间阅读⽹站上的信息,因⽽具体⼀个时刻只有部分在线⽤户同时向系统发出请求。这样,对于⽹站系统我们会有三个关于⽤户数的统计数字:注册⽤户数、在线⽤户数和同时发请求⽤户数。由于注册⽤户可能长时间不登陆⽹站,使⽤注册⽤户数作为性能指标会造成很⼤的误差。⽽在线⽤户数和同事发请求⽤户数都可以作为性能指标。相⽐⽽⾔,以在线⽤户作为性能指标更直观些,⽽以同时发请求⽤户数作为性能指标更准确些。
4. QPS每秒查询率(Query Per Second)
每秒查询率QPS是对⼀个特定的查询服务器在规定时间内所处理流量多少的衡量标准,在因特⽹上,作为域名系统服务器的机器的性能经常⽤每秒查询率来衡量。对应fetches/c,即每秒的响应请求数,也即是最⼤吞吐能⼒。(看来是类似于TPS,只是应⽤于特定场景的吞吐量)
附:
QPS提升带来什么?
QPS提升说明单台服务器处理能⼒提升,如果QPS提升1倍,服务器资源减少1半,或者说服务器不变可以⽀撑2倍的请求量。
如何提升QPS?
1)减少CPU的使⽤时间(哪些代码会消耗CPU:循环、字符串拼接\查找\替换、编码\解码、序列化\反序列化、压缩)
2)增加CPU的数量
3)减少同步锁
(如果CPU不能被压到85%以上,并且此时的QPS已经达到了峰值,则说明另有瓶颈,接下去关注内存)
RT提升带来什么?
响应速度提升说明单次请求的处理速度提升,⽤户感觉任务处理速度更快,系统反应速度更快。当然在处理能⼒不变的情况下,RT的提升必然会提升QPS。
科学领域活动教案
如何提升RT?
1)减少I/O的响应时间
法布尔的昆虫记2)减少I/O的调⽤次数
3)减少CPU使⽤时间(当然在I/O占⼤头的应⽤⾥,这⽅⾯优化效果肯定不明显)
QPS和TPS的区别
QPS:Queries Per Second意思是“每秒查询率”,是⼀台服务器每秒能够相应的查询次数,是对⼀个特定的查询服务器在规定时间内所处理流量多少的衡量标准。
TPS:是TransactionsPerSecond的缩写,也就是事务数/秒。它是软件测试结果的测量单位。⼀个事务是指⼀个客户机向服务器发送请求然后服务器做出反应的过程。客户机在发送请求时开始计时,收到服务器响应后结束计时,以此来计算使⽤的时间和完成的事务个数。
劳务合同样本⼀个系统的吞吐量(承受能⼒)与request对CPU的消耗,外部接⼝,IO等等紧密关联。
单个request对CPU消耗越⾼,外部系统接⼝,IO影响速度越慢,系统吐出能⼒越低,反之越⾼。
系统吞吐量⼏个重要参数:QPS(TPS),并发数,应答时间叉烧包的做法
QPS(TPS):每秒钟request/事务数量
并发数:系统同时处理的request/事务数
应答时间:⼀般取平均应答时间
很多⼈经常会把并发数和TPS理解混淆,理解上⾯三个要素的意义之后,就能推算出他们之间的关系:
闹钟的英语QPS(TPS)=并发数/平均响应时间
⼀个系统吞吐量通常由QPS(TPS),并发数两个要素决定,每套系统这两个值都有⼀个相对极限值,在应⽤场景访问压⼒下,只要某⼀项达到系统最⾼值,系统的吞吐量就上不去了,如果压⼒继续增⼤,系统的吐出量反⽽会下降,原因是系统超负荷⼯作,上下⽂切换,
内存等等其他消耗导致系统性能下降。