恋恋冬季

有你的冬天很温暖

性能测试的有关定义

性能 perfotmance —— 应用程序的性能是进行典型操作所需的时间。性能常常用 响应时间 的标准来衡量。性能经常是重要的业务需求之一。
 

响应时间 response time —— 是应用程序处理一个请求所需的时间 比如:从用户的浏览器得到的一个 HTTP 请求 一般我们对平均响应时间感兴趣,在负载增大时响应时间的一贯性也很重要。提高负载后若响应时间曲线出现锯齿,往往说明性能乏善可陈,还有潜在的不稳定。
 

延迟时间 latency ——是从应用程序得到反馈所需的最少时间(不管程序是否需要做多工作才能得到这个反馈,远程方法调用具有很长的延迟;不管被调用的方法是否成功,都有一个固定的最小开销)。
 

吞吐量( throughput )——是程序或者组件在一段给定时间内所能进行工作的总和(对 web 应用来说,常常用每秒点击率来衡量;对事务处理应用来说,则是每秒能完成的事务数)。
 

可伸缩性( scalability )——指应用程序如何应对增长的流量。说到可伸缩性的时候,我们通常指向上可伸缩( scaling up ),以便应对更大的负载。可伸缩性经常等价于水平可伸缩性( horizontal scalability ):向上伸缩到服务器集群来提高吞吐量。 我们也可以通过把应用转移到更强的服务器上来提高吞吐量。后者要简单得多,但显然并不能让应用更牢固,也只能得到有限的提高。
另一种选择是垂直伸缩(
vertical scaling ):在每台服务器上运行多份服务。“垂直伸缩”这个术语被 Fowler 用来指“为单台服务器增加更多的计算能力”,比如添加额外的 CPU 或者内存。
性能和可伸缩性有时候在现实中是对立的。能在单台服务器上高性能运行的应用,却可能无法被部署到集群中, 比如:为了获得高性能,针对每个用户在 session 中维护大量的数据;而在集群环境下,这些数据无法被高效地复制。然而,必须意识到,性能地下的应用同样不会具有很好的可伸缩性。如果应用程序在单台服务器上浪费资源,就以为着即便在集群中运行,也只不过是浪费更多的资源。
 

性能测试简单说,就是在预期的压力下,我的应用能跑多快。注意,这里的压力是你预期的,更多的时候就是你的性能指标。

负载测试( load test )——目标是给系统以期望的负载量[ 在没有速度要求的情况下,我的应用能支撑多少的并发用户,这里更多的是考虑容量。 ]

压力测试( stress test )——目标是在超过期望能力时确定系统行为[ 超过容量压力下的表现,也关注应用的恢复能力,这里更多的是关注系统的变化,属于健壮性测试(robustness )一类 ]

稳定性测试 stability test )—— 测试系统长时间运行的表现,更多的是发现一些资源泄漏等问题,一般压力随便设置。

基准测试对比性测试 benchmark ——一般用来厂商之间同类产品之间,相同产品版本之间的对比。


posted on 2006-04-13 11:10 恋恋冬季 阅读(338) 评论(0)  编辑  收藏 所属分类: 测试资料


只有注册用户登录后才能发表评论。


网站导航: