性能测试经验

对java类型的应用做性能测试,我一般会从如下三个方面去进行

1. 利用jmter 测试应用程序的吞吐量、响应时间

  准备脚本,设置线程,执行即可

      脚本里要设置的内容:响应断言、察看结果树(仅显示错误)、聚合报告、Response Time Graph.

聚合报告里的各项含义:

Label:说明是请求类型,如Http,FTP等请求。
#Samples:也就是图形报表中的样本数目,总共发送到服务器的样本数目。
Average:也就是图形报表中的平均值,是总运行时间除以发送到服务器的请求数。
Median:也就是图形报表中的中间值,是代表时间的数字,有一半的服务器响应时间低于该值而另一半高于该值。
90%line:是指90%请求的响应时间比所得数值还要小。
Min:是代表时间的数字,是服务器响应的最短时间。
Max: 是代表时间的数字,是服务器响应的最长时间。
Error%:请求的错误百分比。
Throughput:也就是图形报表中的吞吐量,这里是服务器每单位时间处理的请求数,注意查看是秒或是分钟。
KB/sec:是每秒钟请求的字节数。
   

  官网说明:

http://jmeter.apache.org/usermanual/glossary.html

 

2. 利用nmon 测试服务器的硬件情况

    步骤:2.1 安装nmon

      下载链接:http://pan.baidu.com/s/1kT5f2b9

      将*.tar.gz解压即可,然后选择与被测服务器操作系统相同的文件,进行赋权限

            2.2 执行命令,收集服务器数据

      ./nmon -f -t -r Test1 -s30 -c120 

       -f:写文件 默认写入当前目录下的localhost_140811_1713.nmon文件里  

      -t:    include top processes in the output   

      -r <runname>  用于电子表格文件 [default hostname]  

      -s30:每30秒收集一次数据

      -c120:一共收集120次   

             2.3 压力测试执行结束后,利用nmon_analyser打开localhost_140811_1713.nmon,可得分析后的图表和结果

nmon介绍:https://www.ibm.com/developerworks/community/wikis/home?lang=en#!/wiki/Power%20Systems/page/nmon

nmon analyser介绍:https://www.ibm.com/developerworks/community/wikis/home?lang=en#!/wiki/Power%20Systems/page/nmon_analyser

多个分析文件也可以合并https://www.ibm.com/developerworks/community/wikis/form/anonymous/api/wiki/61ad9cf2-c6a3-4d2c-b779-61ff0266d32a/page/18ee9baa-3998-4d2f-95e8-6673431ef42a/attachment/062aff55-72fe-4b63-9685-e76e7210d049/media/nmonmerge2.tar.gz

各参数说明:http://blog.csdn.net/launch_225/article/details/7275202#_Toc282426704

3. 利用jstat 测试服务器的内存情况

    步骤:jstat是JAVA的功能,故不需要单独安装,直接执行命令即可

                 例:jstat -gcutil 7676 30000 490  >> jvm0811.csv

                     7676:进程号

       30000:30000毫秒即30秒收集一次数据

       490:一共收集490次

                    >> jvm0811.csv:写到jvm0811.csv文件里

 一些术语的中文解释:

         S0C:年轻代中第一个survivor(幸存区)的容量 (字节)          S1C:年轻代中第二个survivor(幸存区)的容量 (字节)          S0U:年轻代中第一个survivor(幸存区)目前已使用空间 (字节) S1U:年轻代中第二个survivor(幸存区)目前已使用空间 (字节)            EC:年轻代中Eden(伊甸园)的容量 (字节)            EU:年轻代中Eden(伊甸园)目前已使用空间 (字节)            OC:Old代的容量 (字节)            OU:Old代目前已使用空间 (字节)            PC:Perm(持久代)的容量 (字节)            PU:Perm(持久代)目前已使用空间 (字节)          YGC:从应用程序启动到采样时年轻代中gc次数        YGCT:从应用程序启动到采样时年轻代中gc所用时间(s)          FGC:从应用程序启动到采样时old代(全gc)gc次数        FGCT:从应用程序启动到采样时old代(全gc)gc所用时间(s)          GCT:从应用程序启动到采样时gc用的总时间(s)

    NGCMN:年轻代(young)中初始化(最小)的大小 (字节)

    NGCMX:年轻代(young)的最大容量 (字节)

        NGC:年轻代(young)中当前的容量 (字节)

   OGCMN:old代中初始化(最小)的大小 (字节)

   OGCMX:old代的最大容量 (字节)

       OGC:old代当前新生成的容量 (字节)

   PGCMN:perm代中初始化(最小)的大小 (字节)

   PGCMX:perm代的最大容量 (字节)  

       PGC:perm代当前新生成的容量 (字节)

          S0:年轻代中第一个survivor(幸存区)已使用的占当前容量百分比

         S1:年轻代中第二个survivor(幸存区)已使用的占当前容量百分比

           E:年轻代中Eden(伊甸园)已使用的占当前容量百分比

           O:old代已使用的占当前容量百分比

           P:perm代已使用的占当前容量百分比

  S0CMX:年轻代中第一个survivor(幸存区)的最大容量 (字节)

S1CMX :年轻代中第二个survivor(幸存区)的最大容量 (字节)

    ECMX:年轻代中Eden(伊甸园)的最大容量 (字节)

       DSS:当前需要survivor(幸存区)的容量 (字节)(Eden区已满)

          TT: 持有次数限制

       MTT : 最大持有次数限制

 官方介绍:http://download.oracle.com/javase/1.5.0/docs/tooldocs/share/jstat.html

 

另外:jconsole也可用来监听java应用。但个人不建议用于对远程机做长时间的压测,可用来短时测试,或者监测本地的情况。

windows机器上运行jconsole.exe即可,目录C:\Program Files\Java\jdk1.6.0_43\bin

运行时如下图所示

 

posted on 2014-08-11 17:36  娇娇家的美衣阁  阅读(664)  评论(0编辑  收藏  举报

导航