一 准备环境和指标

1.主机三台(linux,这里显示的都是伪主机地址):最好用干净的机子,做性能测试的时候别装其他东西在上面跑。

100.22.0.98  部署自己的项目服务
 100.22.0.96  部署rpc服务(这里没用到 可以不搞)
 100.22.0.97  部署jmeter (这是必须的)
2.统计指标:
TPS  Avg time(ms) cpu% mem% IO%(net) cpu%(client) IO%(client)

errors

注: 还可以统计gc情况,连接数等,我这里只列举一部分。

3.测试标准

》》》线程: 1    20    50   100   200

》》》报文:10B  1k  2k  4k   8k

二 准备jmx(需了解jmeter的基本使用)

这里使用jmeter3.3版本,直接在官网下载。

先在本地解压运行,注意用管理员权限运行jemter.bat,否则无法保存jmx文件。

1.测试http连接,主要配置和元件如下图,可以先用一个线程测试一下连通性,然后保存为一个jmx文件。保存之前先把线程组勾成永远。

2.junit连接测试

这个稍微麻烦一点,需要先搞定代码,把测试类写好,然后打包自己的项目,可以使用maven打包,最好打成tar包之类的。如XXXX.tar.gz

解压以后,你的test类在哪个jar包里,就把哪个jar包放到jemter对应的目录下:如 C:\Program Files\jmeter\apache-jmeter-3.3\lib\junit

其余的所有依赖jar包都放到这个目录下:C:\Program Files\jmeter\apache-jmeter-3.3\lib

类名称就是你放在junit目录里可选择的测试类,还可以选择对应的test方法。和上面一样,用一个线程测试连通性之后就可以保存成jmx文件了。

3.部署环境

测试命令:./bin/jmeter -n -t jmx路径 -l 输出的日志文件

机器上测http很简单,把jmx文件全上传到服务器,运行jmeter命令就行了。

但是测试junit就需要向刚才在本地一样,把对应的jar包放到junit目录里,然后其他jar包放到lib目录里。

建议先做基线测试,就是一个线程分别跑10B 、1k等长度的报文,统计指标数据。

三 测试指标采集

97(client)机器上是这样的:

通过上面这个图可以看出两个指标,TPS是163269/s左右,avg平均响应时间是0。 active是线程数。这里跑了200个线程来做测试。可以忽略第一条打印的结果,因为它把系统寻找时间之类的加上去了。

用top命令看下内存和cpu使用量: cpu = us+sy = 24.3%      mem = 4.5%

IO%(client) 这个指标的采集需要借助一个叫netstat的工具。

nicstat -M -i eth0(网卡名) 1s

注: watch cat /proc/net/dev   (查看当前linux系统使用网卡,一般流量最大的网卡就是当前使用的)

还有一个叫磁盘使用量,也是借助一个叫dstat的工具,查看命令如下

dstat -d --disk-util

98(server)机器上

用top命令看下cpu和mem,然后记录到表。用netstat命令采集IO%(net)。

五 JvisualVM 和 java飞行器

待监测应用打开jvisualvm端口

示例:

在wrapper打包的应用中的/etc/wrapper.conf中添加以下三行:

wrapper.java.additional.25=-Dcom.sun.management.jmxremote.port=8888 #端口可自行修改
wrapper.java.additional.26=-Dcom.sun.management.jmxremote.ssl=false
wrapper.java.additional.27=-Dcom.sun.management.jmxremote.authenticate=false #不开启权限认证

#若需打开飞行器,只需多添加如下两行:

wrapper.java.additional.28=-XX:+UnlockCommercialFeatures
wrapper.java.additional.29=-XX:+FlightRecorder

我本地是这样的:配置好了重启项目服务,通过jvisualvm和jmc访问对应接口

还有一个据说很强大的神器叫JproFilter还有一个据说很强大的神器Jprofilter :

JProfiler性能分析:https://www.cnblogs.com/shoutn/p/7800829.html

转载于:https://www.cnblogs.com/chaos-li/p/9811570.html

java项目性能测试过程记录相关推荐

  1. java eclipse profile_在 Eclipse 中集成JProfiler 进行 JAVA 项目性能分析

    1.双击安装 2.选择路径 默认路径:Install into:C:\Program Files\jprofiler11 自定义:Customize installation 选择完成后点击 next ...

  2. Java项目性能监控和调优工具-Javamelody

    JavaMelody能够在运行环境监测Java或Java EE应用程序服务器.并以图表的形式显示:Java内存和Java CPU使用情况,用户Session数量,JDBC连接数,和http请求.sql ...

  3. App性能测试过程记录

    测试点如下: 1,关键业务耗时:如APP启动时间,列表页打开时间,详情页打开时间 等等. 2,关键业务接口耗时:如上面说的APP启动时间在细分启动过程中所有加载的请求,以及API接口耗时,体大小等,对 ...

  4. java 程序性能优化 记录1(java代码优化方面)

    性能判断六个方面-cpu时间,响应时间,io操作,网络状态,执行时间,内存分配等 调优方面-设计模式,jvm,数据库,操作系统,代码等 代码:1-尽量避免代码重复,尤其在循环体内 2-局部变量存放在栈 ...

  5. 拿着阿里这份Java性能调优手册,我把公司项目性能提升了300%

    程序的性能受代码质量的直接影响.那么该如何让代码在级别上提升系统性能呢? 其实性能提升永远没有捷径,需要 分析.优化.实验.监控 ,需要一点点积累和深入.随着你对项目和性能优化理解不断深入,会发现提升 ...

  6. kotlin与java混合开发_使用kotlin和Java混合开发Android项目爬坑记录

    使用kotlin和Java混合开发Android项目爬坑记录 不定期将开发过程中遇到的问题添加在此处,加深记忆. 主要内容包括但不限于java与kotlin语言的一些区别,以及在使用android-s ...

  7. 立足GitHub学编程:13个不容错过的Java项目

    今天我们将整理一大波干货满满的优秀Java项目. GitHub可谓一座程序开发的大宝库,有些项目值得fork,有些则能帮助我们改进自有代码或者学习编程技能.无论如何,开发工作当中我们几乎不可能绕得开G ...

  8. java虚拟机性能监控调优及原则

    转载自 https://www.cnblogs.com/thingk/p/6840585.html 摘抄 http://uule.iteye.com/blog/2114697 一.JVM内存模型及垃圾 ...

  9. 一次完整的性能测试过程

    当我们聊起性能测试的时候,有人一定会说我们用的是loadrunner做性能,诚然,我们在进行性能测试工作的过程中,需要借助工具的辅助来帮我们完成一些工作,但loadrunner并不等于性能测试,或者说 ...

最新文章

  1. 中班音乐 机器人教案_幼儿园中班音乐活动教案《机器人》
  2. 计算机视觉与深度学习,看这本书就够了
  3. user_all_tables,user_tables等视图的说明
  4. 2.数据湖DeltaLake之DDL操作
  5. php7与golang,golang 调用 php7
  6. ReactiveCocoa入门
  7. 云联惠认证时间_云联惠强制关闭真正原因是什么?
  8. SpringBoot 如何统计、监控 SQL运行情况?
  9. leetcode 5 查找最长的回文子串
  10. 【LGP5161】WD与数列
  11. BFS(广度优先搜素,附例题)
  12. MyBatis动态代理执行原理
  13. 【游戏开发指路】Unity学习路线,三万字大纲(面试题大纲 | 知识图谱 | Unity游戏开发工程师)
  14. 远程teamviewer|远程工具teamviewer|远程控制软件teamviewer
  15. java发微信_java实现微信发送消息
  16. 通过堡垒机rdp 黑屏_如何绕过堡垒机远程登录
  17. 携手并进,利尔达科技集团与中国计量大学举办捐赠签约仪式
  18. day 19 C# 窗体金额换算
  19. ucenter通信实现同步登录、同步退出(详细)
  20. (附源码)计算机毕业设计ssm个人人际关系管理软件

热门文章

  1. SQL SERVER 2008如何卸载干净
  2. jee websocket搭建总结
  3. AS2的MD5/SHA1/TEA等加密算法类
  4. Intel汇编语言程序设计学习-第三章 汇编语言基础-中
  5. POJ3080方法很多(暴力,KMP,后缀数组,DP)
  6. 计算机网络-OSPF协议
  7. 【Groovy】编译时元编程 ( ASTTransformation#visit 方法简介 | org.codehaus.groovy.ast.ModuleNode 脚本节点 )
  8. 【Groovy】闭包 Closure ( 闭包作为函数参数 | 代码示例 )
  9. 【Android 逆向】整体加固脱壳 ( DexClassLoader 加载 dex 流程分析 | 查找 DexFile 对应的C代码 | dalvik_system_DexFile.cpp 分析 )
  10. 【Android 逆向】Android 中常用的 so 动态库 ( libdvm.so | libart.so | libandroid_runtime.so | libandroidfw.so )