项目性能测试实践总结(转)

上一篇 / 下一篇  2011-10-08 16:35:42

转自地址:http://qa.taobao.com/?p=6022

性能测试过程中最重要也是最有挑战的就是性能测试结果分析,测试结果的分析是需要很多经验的积累的,不断的实践不断总结,下面是我做过的几个项目整理下来的一些常用东东

1.性能测试执行过程中经常遇到的问题

在测试执行的过程中,有时一个性能测试点,相同的测试场景是需要经过多次的执行的,有时会遇到 后面几次运行的结果与前面运行的测试结果大相径庭,遇到这种情况时 ,我们可以先从以下几点来查

首先查看linux的内存利用情况.

命令:free -m     通常可用内存占10%是可接受范围的

如果可用内存很小的话

1.一种是程序有问题

 2.另一种可能是磁盘空间不足, 当磁盘空间不足就会去写内存,就会导致可用内存减少

第一种情况一时半会很难确定,所以我们可以先从第二种情况着手,看看是否是磁盘空间不足了

命令 tf -m

结果有两种:

1.如果可用为0, 那就是磁盘空间满了, 可以先进入当前目录查看这个目录下的磁盘空间占了多少 , 有可能是log日志写满了, 

2.如果磁盘空间没占满的话 在查看下哪些进程占用了这么多

命令:top

我所遇到的项目中,很多都是由于项目log日志级别设置错误,几次运行下来,导致磁盘空间占满,接着导致内存减少,性能测试结果下降趋势

2.性能测试常用命令

free -m,ps -aux,df -h,pwd,du -sh,tail -n 文件名,cd,ll,:q 是退出命令,cd ~

ctrl+c是终止

ctrl+d向下翻页

ctrl+f 向上翻页

/perf 查询命令

tail-f (实时查询)

grep ‘关键词’ -c  查询这个“关键词”出现的次数

grep ‘关键词’  查看这个关键词出现的地方都显示出来

grep这个命令用的情况比较多,比如查询某处超时出现的次数,以便判断超时是否严重

3.性能测试执行中 要注意fgc情况

如何查看fgc情况,首先要知道java进程id 命令    ps -ef | grep java

 

admin   18949 18938 99 13:43 pts/2   00:00:31 /opt/taobao/java1/bin/java -Dprogram.name=run.sh -server -Xms1536m -Xmx1536m -XX:NewSize=320m -XX:MaxNewSize=320m -XX:PermSize=96m -XX:MaxPermSize=256m -Xmn500m -XX:MaxTenuringThreshold=5 -Djava.awt.headless=true

运行结果中的  18949是java进程id号

然后运行 [admin@capatest059a ~]$  /opt/taobao/java1/bin/jstat -gcutil 18949 1000(1000是显示多少行)

  S0     S1     E      O      P     YGC     YGCT    FGC    FGCT     GCT  

  0.00   0.00  79.97   4.13  40.51   2657   12.652     4    1.349   14.000

针对这几个区的理解:

s0 和 s1 是交换区  当新生区达到一定百分比,这时交换区负责把e区里的对象搬到old 区(o)里,  s0和s1不会同时占用的

OLD 区 是老区  会检查这个区是不是设置的太小了,当E区放满了就会启用YGC,YGCT 是处理YGC的时间,当YGC达到一定值, 就会启用FGC ,而FGC很消耗内存,p区是存放java的类文件,一些静态文件的,这个区基本不变

运行之前记录下fgc情况,运行之后看下fgc情况,看下这段时间内处理一次fgc所用的时间,判断的参考值 是几百ms是比较多的,一般情况下是几十ms

针对fgc这块 了解的还是很少,在以后的项目实践中在不断学习深入

性能测试还有很多东西要去学习,而学习最好的方式就是实践,通过实践才能深入的了解


TAG:

 

评分:0

我来说两句

日历

« 2024-05-05  
   1234
567891011
12131415161718
19202122232425
262728293031 

我的存档

数据统计

  • 访问量: 1665
  • 日志数: 2
  • 建立时间: 2011-10-08
  • 更新时间: 2011-10-08

RSS订阅

Open Toolbar