我在成长
性能测试学习笔记二
上一篇 /
下一篇 2010-05-02 00:35:32
/ 个人分类:个人日记
下面就详细的展开一下
一 性能测试基础概念
1、首先说下我理解的性能测试
performance test:指通过模拟生产运行的业务压力或用户使用场景来调试系统的性能是否满足生产性能的要求
这个是比较官方的说法,就是说在生产环境的数据压力下,我们的系统能不能扛住,这个是比较狭义的解说了,广义上就会包括很多种性能测试了,什么压力啊,负载啊,强度啊之类,就是看各种变态环境下能不能承受的住了。
比如:
stress test:对系统不断施加压力的测试,压力测试的目的是发现在什么条件下系统的性能变得不可接受,往往压力测试的结果能够反映出一个性能曲线,在曲线上有明显的拐点反应系统的性能情况
load test:一定的压力下的持续时间,直到系统的一些性能指标达到极限(稳定性场景)
还
有很多的性能测试的分类,大家可以去google下,其实在我看来,这些分类不是非常的明确,他们之间可能有些地方是有交叉的,性能测试的过程中,我们往
往是使用了多种方法,去总和测试系统的性能情况,综合分析系统的性能情况,起码的,我需要知道每种分类的重点在哪里,使用的时候根据不同的侧重点有所选
择,作为一名测试工程师,起码你要知道,他们不是一回事儿。
而我做过的几个性能测试来看,也可以分成两种目的的,一种偏向验证性的性能测试,明确
的知道系统上线后承受的压力指标,要求测评出,这个系统能够承受预期的压力指标,能的话,在这个压力下,系统表现出来的情况是怎么样的,不能的话,系统消
耗性能的瓶颈在哪里;另外一种偏向调优型的性能测试,系统已经在线上跑了很久了,随着数据量的增大和业务的增长,系统慢慢表现出了一些端倪,我们需要去测
试下,系统可能会出现什么问题,瓶颈即将会出现在哪里,调优后系统将来的表现可能是什么样字的。那么一定要根据前期的需求,明确测试的目的,选择测试策略
上需要权衡了。
2、性能测试的一些指标
a、商业指标
page
view:相信很多同学都听说过,一些产品经理会提交给我们一个线上监控,网站上某个页面的pv是多少,某个按钮上的点击是多少,数据仓库会给我们一个曲
线图表明一定时间周期内的波动情况。往往我们根据这个数据来进行压力数据评估,不知道大家对这个的重视有多高,在我个人看来,这个非常重要,我们需要时时
去监控这个数据的变化情况,可能这个月网站的pv是万级,下个月就是十万级了,或者变化更大,这个一定需要引起重视。
同时在线用户数:这个一般指导我们进行并发数据评估
对于商业指标,往往我们进行监控的是一个集群,一整张页面等等,拿回来的数据我们需要分析,定位到某一个请求上的数据往往会有变化,需要大家多加注意,同
时对于集群,很多网站可能都是多dns域名提供服务的,具体可以定位到是集群中多少服务器在提供被测服务,也是需要注意的。
b、服务器指标
这个就比较常见了,网上也有很多,我就不写全写了,挑几个说说我自己的看法。
load:the system load is a measure of the amount of the work that a computer system is doing.
那现在大部分系统都是每5s取一次系统信息,大家常用的不管是uptime 还是 top 看到的分别是1分钟、5分钟、15分钟的average
load。那么在分析的时候,怎么就算系统负载高了呢,往往也是和cpu个数挂钩的,average
load的值小于cpu个数的时候,系统表现出来的性能应该是不错的。也有说法是在cpu的70%是最好的状态。
应用一篇文章,挺好的,建议看一下:http://blog.scoutapp.com/articles/2009/07/31/understanding-load-averages
另外还需要监控几个其他的指标,包括cpu使用,内存使用,网路情况,磁盘读写情况,这些都是根据被测系统的实际情况来定的,前期分析系统消耗的时候,需要有针对性,测试过程中需要重点关注。
3、性能测试常用的一些工具
工具上还是比较多了,说下我用的几个,包括施压、监控和脚本录制
常见的就有
lr,jmeter,nmon,apache的ab,badboy,还有公司自己同学开发的监控工具等等,反正整体的思想就是能够使用工具模拟出你设计的
压力场景,包括并发,包括压力波动等等,然后去监控你需要监控的指标,通过指标进行分析,总体的感觉lr其实还是很方便的,整个过程都整合到了工具里面,
那诸如需要license这种就不多说了,那jmeter也是目前挺流行的,不过在linux下进行分布式施压的时候,尤其是一些网络消耗比较大的时候,
容易影响结果定位,另外ab个人觉得比较适合系统性能初测,或者叫概测?
反正就是用起来很方便,很简单,但是同时也去除了很大的外部依赖,结果对于非web服务性系统,最多可以粗粗的看下性能情况,到实际场景进行测试的时候,
往往结果是比ab测试出来的要查一些的,有的时候差的还不少。
相关阅读:
- tomcat 内存 释放不了(网站挂了!)解决方法! (超越自我, 2009-1-06)
- web性能测试需要监控IIS的哪些性能指标?(转自51testin) (fengyun32, 2009-2-23)
- AIX系统 性能评估(推荐) (aprincess, 2009-4-10)
- LR通过snmp监控linux下的内存使用情况 (fairylly, 2009-6-01)
- tomcat增大内存使用量 (fairylly, 2009-7-31)
- vmware-vmx.exe 狂占cpu 100% (omg, 2009-8-22)
- linux-snmp不同版本监控内存数据 (fairylly, 2009-9-24)
- UNIX内存占用基本检查 (huozheba, 2009-10-26)
- 又遇vmware-vmx.exe 狂占cpu 100% (omg, 2009-11-06)
- 判断内存中是否存在指定函数 (chenyb85, 2009-12-23)
收藏
举报
TAG:
CPU
性能指标
内存
cpu
pv