zoukankan      html  css  js  c++  java
  • 性能测试经验

    对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 FilesJavajdk1.6.0_43in

    运行时如下图所示

  • 相关阅读:
    使用Razor视图引擎来生成邮件内容
    Asp .Net Core 2.0 登录授权以及多用户登录
    简单几步,提升.Net Core的开发效率
    百万数据测试 Entity Framework 到底有多慢
    纸壳CMS(ZKEACMS)体验升级,快速创建页面,直接在页面中修改内容
    ZKEACMS 配置使用 HTTPS
    使用 jQuery.Pin 垂直滚动时固定导航
    底层的增删查改
    关于hangfire的使用
    巧用 CSS 实现酷炫的充电动画
  • 原文地址:https://www.cnblogs.com/joewu/p/3905263.html
Copyright © 2011-2022 走看看