咱们天天的生活中都在用水用电,我只会关心本身的水管是否有水,水压是否稳定,若是咱们把水龙头拧到最大,仍是一滴一滴的流水。那咱们就要愤怒了,直接找房东问明状况。咱们历来没想过去找自来水公司。咱们天天都会上网,网速很慢,看个电影很卡,须要等好久才缓冲一个画面,咱们打开网页很慢,IE状态条一直50%,那咱们就要愤怒了,直接找电信、网通公司问明状况。
我想说以上的状况是正常的,若是你在优酷上看视频,须要缓冲好久。而后,你跟优酷客服打电话;访问博客园网站半天打不开,就跟dudu打电话,那咱们若是不是对网络一窍不通的白痴,那必定是脑抽了。其实,我想说明的是,你可能历来不关心一个自来水厂供应多少水,但供应多少水对一个自来厂来讲却很是重要。你可能历来不关心一个系统的吞吐量,但吞吐量对一个系统来讲却很是重要。
ps:依照我的惯例,纯文字的内容必须配一张淡疼的图片!^_^
吞吐量
指在一次性能测试过程当中网络上传输的数据量的总和。
对于交互式应用来讲,吞吐量指标反映的是服务器承受的压力,在容量规划的测试中,吞吐量是一个重点关注的指标,由于它可以说明系统级别的负载能力,另外,在性能调优过程当中,吞吐量指标也有重要的价值。如一个大型工厂,他们的生产效率与生产速度很快,一天生产10W吨的货物,结果工厂的运输能力不行,就两辆小型三轮车一天拉2吨的货物,比喻有些夸张,但我想说明的是这个运输能力是整个系统的瓶颈。
提示,用吞吐量来衡量一个系统的输出能力是极其不许确的,用个最简单的例子说明,一个水龙头开一天一晚上,流出10吨水;10个水龙头开1秒钟,流出0.1吨水。固然是一个水龙头的吞吐量大。你能说1个水龙头的出水能力是10个水龙头的强?因此,咱们要加单位时间,看谁1秒钟的出水量大。这就是吞吐率。
吞吐率
单位时间内网络上传输的数据量,也能够指单位时间内处理客户请求数量。它是衡量网络性能的重要指标,一般状况下,吞吐率用“字节数/秒”来衡量,固然,你能够用“请求数/秒”和“页面数/秒”来衡量。其实,不论是一个请求仍是一个页面,它的本质都是在网络上传输的数据,那么来表示数据的单位就是字节数。
不过以不一样的方式表达的吞吐量能够说明不一样层次的问题。例如,以字节数/秒方式表示的吞吐量主要受网络基础设置、服务器架构、应用服务器制约;以请求数/秒方式表示的吞吐量主要受应用服务器和应用代码的制约。
可是从业务的角度看,吞吐率也能够用“业务数/小时或天”、“访问人数/小时或天”、“页面访问量/小时或天”来衡量。例如,在银行卡审批系统中,能够用“千件/小时”来衡量系统的业务处理能力。那么,从用户的角度,一个表单提交能够获得一次审批。又引出来一个概念---事务。
事务web
就是用户某一步或几步操做的集合。不过,咱们要保证它有一个完整意义。好比用户对某一个页面的一次请求,用户对某系统的一次登陆,淘宝用户对商品的一次确认支付过程。这些咱们均可以看做一个事务。那么如何衡量服务器对事务的处理能力。又引出一个概念----TPS
TPS (Transaction Per second)数据库
每秒钟系统可以处理事务或交易的数量,它是衡量系统处理能力的重要指标。
点击率(Hit Per Second)
点击率能够看作是TPS的一种特定状况。点击率更能体现用户端对服务器的压力。TPS更能体现服务器对客户请求的处理能力。
每秒钟用户向web服务器提交的HTTP请求数。这个指标是web 应用特有的一个指标;web应用是“请求-响应”模式,用户发一个申请,服务器就要处理一次,因此点击是web应用可以处理的交易的最小单位。若是把每次点击定义为一个交易,点击率和TPS就是一个概念。容易看出,点击率越大。对服务器的压力也越大,点击率只是一个性能参考指标,重要的是分析点击时产生的影响。
须要注意的是,这里的点击不是指鼠标的一次“单击”操做,由于一次“单击”操做中,客户端可能向服务器发现多个HTTP请求。
吞吐量指标的做用:
再次将话题回归到吞吐量上,在咱们的性能测试中查看吞吐量对咱们的测试有什么意义呢。
1. 用户协助设计性能测试场景,以及衡量性能测试场景是否达到了预期的设计目标:在设计性能测试场景时,吞吐量可被用户协助设计性能测试场景,根据估算的吞吐量数据,能够对应到测试场景的事务发生频率,事务发生次数等;另外,在测试完成后,根据实际的吞吐量能够衡量测试是否达到了预期的目标。
2. 用于协助分析性能瓶颈:吞吐量的限制是性能瓶颈的一种重要表现形式,所以,有针对性地对吞吐量设计测试,能够协助尽快定位到性能冰晶所在位置。
扩展:
RBI(rapid bottleneck identify)
是Empirix公司提出的快速识别系统性能瓶颈的方法。该方法基于如下事实。
1. 发现的80%系统的性能瓶颈都由吞吐量制约;
2. 并发用户数和吞吐量瓶颈之间存在必定的关联;
3. 采用吞吐量测试能够更快速定位问题。
经过不断增长并发用户数和吞吐量观察系统的性能瓶颈。而后,从网络、数据库、应用服务器和代码自己4个环节肯定系统的的性能瓶颈。
其实,我讲了这么多概念,咱们无非是站在不一样的角度去分解系统的性能,站在用户的角度,服务器的角度、系统的各类角度。了解一我的须要多方面,了解一个系统也须要多方面。我在尽可能把这些东西讲的不枯燥,并且易懂。其实,本身写的过程也是思考的过程。