Thursday, January 08, 2009

吞吐量与响应时间

在性能测试中,作为评价性能好坏的两个重要指标:吞吐量和响应时间, 是很容易让人混淆的。
吞吐量:字面上的意思是单位时间里处理任务的能力,它的单位常常以hits/sec或者MB/sec为主,它以系统资源为对象的,因此系统性能的好坏直接影响了吞吐量的(理论)极限值。

响应时间:这里是指从发送请求到完成响应的整个过程所经历的时间,它的单位常常以s或者ms为主。它是以某个请求为对象的,因此请求的大小以及复杂程度直接影响到响应时间的长短。

这里提到一个概念是“排队论”(http://en.wikipedia.org/wiki/Queuing_theory), 在计算机系统中,这个概念是最常见的,了解排队理论对于我们理解吞吐量和响应时间的关系以及区别很有帮助!
通常,平均响应时间越短,系统吞吐量越大;平均响应时间越长,系统吞吐量越小;
但是,系统吞吐量越大, 未必平均响应时间越短;因为在某些情况(例如,不增加任何硬件配置)吞吐量的增大,有时会把平均响应时间作为牺牲,来换取一段时间处理更多的请求。
一个例子,比如一个理发店,原先只有一个理发师,因为穷,只买的一张理发椅子,和一个长凳用来方便等待的人休息。理发师一次只能处理一个客户,其他等待的用户显得很不耐烦,外面打算进来理发的人也放弃了这家店理发的打算。。。
有一天,理发师有钱了,他多买了2个理发椅子,这样,他可以同时给3个人理发,当其中一个人理到一定阶段需要调整或者定型的时候,他就转到另外一个客户去修剪头发,依次类推,这样,他发现一天他可以理的人数比以前增多了,但是还会有一些后来的客户抱怨等待时间太长。
后来,理发师打算招聘2名学徒帮助他一起干活,这样,他发现每天的理发效率增加了将近2倍,而且客户的等待时间明显也减少了许多。但是成本增多了,理发用具,洗发水,发工资,这让他觉得开个理发店也要精打细算:)

一个consultant的解释,很形象,很具体:http://www.forsythesunsolutions.com/node/114

No comments:

Post a Comment