并发数 和  TPS 有什么联系吗?

jackxiang 2014-2-26 13:35 | |
背景:昨天一QQ群里的兄弟问了个问题:并发数 和  TPS 有什么联系吗?我在微信里作了下简单回答如下,顺带今天了解下其它参数。
TPS 是Transactions Per Second 的 缩 写, 也 就 是 事 务 数/ 秒。 它 是软件测试结 果 的 测 量 单 位。 一 个 事 务 是 指 一 个 客 户 机 向 服 务 器 发 送 请 求 然 后 服 务 器 做 出 反 应 的 过 程。 客 户 机 在 发 送 请 求 时 开 始 计 时, 收 到 服 务 器 响 应 后 结 束 计 时, 以 此 来 计 算 使 用 的 时 间 和 完 成 的 事 务 个 数, 最 终 利 用 这 些 信 息 来 估 计 得 分。 客 户 机 使 用 加 权 协 函 数 平 均 方 法 来 计 算 客 户 机 的得 分,测试软件就是 利 用 客 户 机 的 这 些 信 息 使 用 加 权 协 函 数 平 均 方 法 来 计 算 服 务 器 端 的 整 体TPS 得 分。

如求TPS,例子,一个软件测试以并发2000,发现其经过1分钟后软件给出Response Time(sec)一条曲线,在0.2左右。
此时TPS=并发数/平均响应时间(平均)=2000/0.2 = 10000,1w并发,也就是说能接受1万的并发值,注意是平均响应。
点击在新窗口中浏览此图片
——————————————————————————————————————————————————————
Q:
并发数 和  TPS 有什么联系吗?
A:
对长连接无联系,tps是并发数/平均响应时间(平均),并发是一次能接受多少个连接(长时间连接上的不一定要立即响应,TPS不是考量的重点)。而像http这样的并发数大了响应时间可能较长(处理不过来),它们是恒量一个系统是否健壮的不可缺少的互补参数。

Q:
我总觉得 并发量大了  会导致响应时间变长 还有这些对软件的压力测试 和 具体的硬件有联系吗? 还有 比如nginx qps 可以再2k以上 这个数值在不同的机器上都是差不多稳定的吗? PS: 你还在公司加班?
A:软件必须要和硬件互补才行,对于nginx这样的已经到很高水平了,并法高出现tps急剧降低可能是业务太重,更多是直连db等拖累,这要从架构高耦合低内聚上作切割,横向纵向分拆等扩展模式,想榨干硬件的想法对小公司不切实际,大公司会根据自身业务而不是选nginx这样的通用服务器软件,都会定做,以节省机器省成本。我下班了,在家了呵呵。


摘录:
QPS(TPS):每秒钟request/事务 数量
并发数: 系统同时处理的request/事务数
响应时间:  一般取平均响应时间
(很多人经常会把并发数和TPS理解混淆)
理解了上面三个要素的意义之后,就能推算出它们之间的关系:
QPS(TPS)= 并发数/平均响应时间
一个系统吞吐量通常由QPS(TPS)、并发数两个因素决定,每套系统这两个值都有一个相对极限值,在应用场景访问压力下,只要某一项达到系统最高值,系统的吞吐量就上不去了,如果压力继续增大,系统的吞吐量反而会下降,原因是系统超负荷工作,上下文切换、内存等等其它消耗导致系统性能下降。

以上资料来自:http://my.oschina.net/dlpinghailinfeng/blog/186161

学院派书籍参考《软件评测师教程》第8章的内容,对于软件需求分析的讲解比较系统:
第8章 应用负载压力测试
http://pan.baidu.com/share/link?shareid=36980465&uk=1762807079&fid=505510906

作者:jackxiang@向东博客 专注WEB应用 构架之美 --- 构架之美,在于尽态极妍 | 应用之美,在于药到病除
地址:http://jackxiang.com/post/7044/
版权所有。转载时必须以链接形式注明作者和原始出处及本声明!


最后编辑: jackxiang 编辑于2016-11-16 17:57
评论列表
发表评论

昵称

网址

电邮

打开HTML 打开UBB 打开表情 隐藏 记住我 [登入] [注册]