`

JProfiler+jemter线上数据压测经验

 
阅读更多

1.目前使用了JProfiler最新版本7.2.3,JMeter使用了2.7的版本

因为项目组要求对某些方法进行性能监控,所以用到了JProfiler和JMeter等测试工具。

2.先说说JMeter,JMeter作为客户端模拟请求:

1)软件都自己下载吧,官网上都有。解压缩包,点击bin目录下的jmeter.bat即可(JavaSwing的界面),在启动界面上面看到‘测试计划’,

在‘测试计划’上面右键-》Threads(user)-》线程组,在‘线程组’右键-》Sampler-》添加java请求,

在‘Java请求’右键-》添加‘聚合报告’,其他的视图一般不需要添加,因为没什么用处,还占系统资源,一般我们比较关注的是聚合报告中的Throughout,也就是传说中的TPS。

2)把你的jar包和依赖都拷贝到lib的ext目录下面,点击‘java请求’节点,右面的类名称选择你的Main方法所在类,这里面有几个地方需要注意:你的Main类需要继承AbstractJavaSamplerClient,当然你的工程中需要引入依赖ApacheJMeter_components.jar
ApacheJMeter_core.jar
ApacheJMeter_ftp.jar
ApacheJMeter_functions.jar
ApacheJMeter_http.jar
ApacheJMeter_java.jar
ApacheJMeter_jdbc.jar
ApacheJMeter_jms.jar
ApacheJMeter_junit.jar
ApacheJMeter_ldap.jar
ApacheJMeter_mail.jar
ApacheJMeter_monitors.jar
ApacheJMeter_native.jar
ApacheJMeter_report.jar
ApacheJMeter_tcp.jar

继承了AbstractJavaSamplerClient后,一般需要实现它的2个方法:

public void setupTest(JavaSamplerContext context) :这个是启动前的准备工作,比如初始化spring容器;

public SampleResult runTest(JavaSamplerContext context) :真正调用的测试方法,写在这里。

下面附上一个简单例子:

package com.jd.saf.thrift;

import org.apache.jmeter.protocol.java.sampler.AbstractJavaSamplerClient;
import org.apache.jmeter.protocol.java.sampler.JavaSamplerContext;
import org.apache.jmeter.samplers.SampleResult;
import org.springframework.context.support.ClassPathXmlApplicationContext;

import com.jd.gp.test.impl.Hello;

public class JMeterThriftTest extends AbstractJavaSamplerClient {
 
 static String testStr = null;
 
 static int num = 500;
 
 static Hello.Iface hello = ThriftClient.instance.getHello();
 //private ClassPathXmlApplicationContext appContext = new ClassPathXmlApplicationContext("classpath:spring-thrift-comsumer.xml");
 
 //private Hello.Iface hello = null;
 
 public void setupTest(JavaSamplerContext context) {
  super.setupTest(context);
  if(testStr == null) {
      StringBuilder sb = new StringBuilder();
   for(int k=0;k<num; k++){
    sb.append("ABCDEFG***");
   }
   testStr = "参数= " + sb.toString() + ",参数长度="+ (sb.length() + 24);
     }
  //hello = (Hello.Iface) appContext.getBean("gpHelloIface");
 }
 
 @Override
 public SampleResult runTest(JavaSamplerContext context) {
  SampleResult result = new SampleResult();
     result.setSuccessful(false);
     result.sampleStart();
     try {
      hello.helloString(testStr);//只有这个地方需要修改,写你的具体业务方法
   result.setSuccessful(true);
  } catch (Exception e) {
  } finally {
            result.sampleEnd();
  }
  return result;
 }
}

 补充,在线程属性中,线程数:一般是模拟客户端的数量,Ramp-Up指定线程启动时间,如果线程启动比较耗时,最好将Ramp-Up的时间设置长一点,防止不必要的错误而设置的过长可能会影响你的TPS数值。

 

3.然后说说JProfiler7.2.3的安装使用:

1)以普通的JavaApp为例子(Tomcat和JBoss等例子网上也很多):

如果是windows作为服务端,直接点击JProfiler.exe进入图形界面,引导安装即可,比较简单

如果是linux作为服务端,直接执行.sh的文件即可。可能需要授权:chomd +x jpro*.sh,虚拟机在加上

(我的licensekey是到官网临时申请的)

 2)windows的步骤,最好配一下环境变量 path : C:\Program Files\jprofiler7\bin\windows

启动脚本示例:

@echo off
title Prop-Main
java -classpath ..\conf;..\lib\* -agentpath:jprofilerti=port=8849,config=C:\Users\Administrator\.jprofiler7\config.xml -Xbootclasspath/a:C:\PROGRA~1\JPROFI~1\bin\WINDOW~1s\agent.jar com.jd.saf.thrift.ThriftServer
pause

3)linux的步骤:

首先到/ect下早点profile文件,在最下面追加:

JPROFILER_HOME=/opt/jprofiler7/bin/linux-x64
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$JPROFILER_HOME
export LD_LIBRARY_PATH=$JPROFILER_HOME

#此处为必须,不加上会提示找不到agent.jar,如果还是提示的话 就断开重连一次

启动脚本示例:

nohup java -classpath ../conf/:../lib/* -server -Xms1024m -Xmx1024m -XX:PermSize=512m -XX:MaxNewSize=512m -XX:MaxPermSize=512m -Djava.awt.headless=true  -agentlib:jprofilerti=port=8849  com.jd.saf.thrift.ThriftServer 

7.2.3的版本,写启动脚本需要特别注意,和之前的版本比不需要其他复杂麻烦的操作。

然后启动客户端的连接即可了。

 

分享到:
评论

相关推荐

    Mac版JProfiler+JVM性能调优工具

    Mac版JProfiler+JVM性能调优工具。 JProfiler 的内存视图部分可以提供动态的内存使用状况更新视图和显示关于内存分配状况信息的视图。所有的视图都有几个聚集层并且能够显示现有存在的对象和作为垃圾回收的对象。

    Mac版JProfiler+JVM性能调优工具 资源在百度网盘

    不错的工具,供大家使用

    JProfiler配置(WAS/Linux/tomcat/windows)

    **JProfiler配置详解** JProfiler是一款强大的Java剖析工具,它集成了CPU、线程和内存的分析,适用于J2SE和J2EE应用程序。通过其直观的GUI界面,开发者能够定位性能瓶颈,检测内存泄漏,解决线程问题,以及进行heap...

    IDEA-JProfiler插件+JProfiler软件.zip

    此时,JProfiler界面会显示应用程序的运行数据,如CPU使用率、内存分配、线程状态等。 CPU使用率分析是JProfiler的核心功能之一。通过查看方法调用树,我们可以找到消耗CPU资源最多的代码片段,进一步优化性能。...

    JProfiler11+注册机+使用手册

    **JProfiler11详解** JProfiler是一款强大的Java性能分析工具,专为Java开发人员设计,用于深入剖析应用程序的性能瓶颈,内存泄漏以及线程问题。它提供了丰富的功能,包括CPU和内存分析,线程和锁检测,SQL查询性能...

    jprofiler9+中文使用手册

    《JProfiler9中文使用手册》全面解析 JProfiler是一款强大的Java性能分析工具,尤其在JVM内存管理和线程分析方面表现突出。JProfiler9作为其重要版本,为开发者提供了更完善的性能优化支持。本篇文章将深入探讨...

    jprofiler 4.3.2+序列号

    无限免费使用jprofiler ,体验jprofiler 的强大功能。

    jprofiler使用教程,数据分析说明

    《JProfiler使用教程与数据分析详解》 在软件开发过程中,性能测试是不可或缺的一环,而JProfiler作为一款强大的Java性能分析工具,可以帮助开发者深入理解应用的运行情况,优化代码性能。本文将详细介绍JProfiler...

    jprofiler 注册码+安装包

    JProfiler生成的报告详尽且易于理解,包括各种图表和统计数据,方便开发者分享和回顾性能问题。 8. **安装过程**: 安装JProfiler相对简单,只需下载对应操作系统的安装包(如“jprofiler_windows_5_1_4”),...

    jprofiler8安装包+注册码

    jprofiler8安装包+注册码 可用

    JProfiler11安装包+注册机+idea最新离线插件.zip

    **JProfiler11安装包与使用详解** JProfiler是一款强大的Java性能分析工具,它提供了详细的内存分析、CPU使用情况监控、线程分析、类装载和垃圾收集等关键功能,是Java开发者进行性能优化的重要助手。在JProfiler11...

    jprofiler4.32安装破解文件+jprofiler4.32使用教程

    《JProfiler 4.32 安装与使用详解》 JProfiler是一款强大的Java性能分析工具,对于Java开发者而言,它是优化代码效率、排查内存泄漏和线程问题的得力助手。本文将详细介绍JProfiler 4.32的安装过程,并提供使用教程...

    jprofiler432性能测试工具1

    jprofiler jmetter 是好工具 内存测试 cpu资源并发测试

    JProfiler

    **JProfiler**是一款强大的Java应用程序性能分析工具,主要用于检测和优化Java应用的内存使用、CPU性能、线程活动、锁竞争、SQL查询性能等问题。它提供了丰富的可视化界面和详细的统计信息,帮助开发者深入理解并...

    jProfiler7 破解版+中英文使用手册

    jProfiler7 破解版+中英文使用手册

    jprofiler详细使用介绍

    jprofiler 详细使用介绍 jprofiler 是一款功能强大的 Java 性能分析工具,能够帮助开发者检测 Java 应用程序中的性能瓶颈、内存泄漏和死锁等问题。下面将详细介绍 jprofiler 的安装、注册和使用过程。 安装 ...

    jprofiler

    jprofiler

    JProfiler安装及使用

    - **查看数据**:通过 JProfiler 提供的各种视图(如 CPU 使用率、内存使用情况等)来分析应用的性能瓶颈所在。 - **导出报告**:分析完成后,可以将收集的数据导出成报表形式,方便团队成员之间共享结果。 #### 四...

    JProfiler11安装包及注册机

    8. **自定义视图和报告**:允许用户创建自定义视图,根据需求定制性能数据的展示方式,并生成详细的分析报告。 **关于安装包和注册机的注意事项:** - **安装包**:下载的JProfiler11安装包通常包含主程序和其他...

    jprofiler7.2.X注册码 JProfiler入门教程(中文)

    JProfiler是一款强大的Java性能分析工具,它为开发者提供了详尽的内存分析、CPU性能剖析、线程检测和JVM配置优化等功能。本教程主要围绕JProfiler 7.2.X版本展开,旨在帮助初学者快速掌握这款工具的使用方法。 首先...

Global site tag (gtag.js) - Google Analytics