开发的缘由,须要对吞吐量(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/sec,即每秒的响应请求数,也便是最大吞吐能力。 (看来是相似于TPS,只是应用于特定场景的吞吐量)服务器