使用jmeter和gcview观察JVM垃圾收集情况和性能
2009-12-22 16:10
561 查看
使用
jmeter
和
gcview
观察
JVM
垃圾收集情况和性能
作者:韩超工具介绍:
jakarta-jmeter-2.3.4
一款免费的压力测试软件可以对应用服务器和DB
进行压力测试,能够返回服务性能指标值
gcviewer-1.29
是免费的开源垃圾回收视图化查看工具
这个工具只能在1.5
以下的版本中运行,1.6
以后没有对应。这个工具是根据JVM
的GC
执行的log
来视图化的,因此我们第一件要做的就是产生gc log
。要产生gc log
需要修改JVM
的配置。
各版本JDK
配置如下:(官方说法)
Sun JDK
1.4/1.5 with the options
-Xloggc:<file>
[
-XX:+PrintGCDetails
]
Sun JDK
1.2.2/1.3.1/1.4 with the option
-verbose:gc
IBM JDK
1.3.1/1.3.0/1.2.2 with the option
-verbose:gc
IBM iSeries
Classic JVM 1.4.2 with
option -verbose:gc
HP-UX JDK
1.2/1.3/1.4.x with the option
-Xverbosegc
BEA JRockit
1.4.2/1.5 with the option
-verbose:memory
实验方法
介绍
此实验目的是为了通过实验学会jmeter
和gcviewer
工具的使用,是我们在以后的工作中能够更好的通过此工具定位中间件问题,更好的开展工作。
实验环境
RedHat
虚拟机(Linux localhost
2.6.9-89.0.11.ELsmp #1 SMP Tue Sep 15 07:16:37 EDT 2009 i686 i686 i386
GNU/Linux
)
中间件("WebLogic Platform" Version="10.3.1.0"
)
JDK
(java full version
"1.6.0_11-b03"
)
Weblogic JDK
设置(java -client
-Xms256m -Xmx512m -XX:CompileThreshold=8000 -XX:PermSize=48m
-XX:MaxPermSize=128m
)
实验步骤
1、
到weblogic
域目录下bin
目录下打开startWebLogic.sh
文件在文件中加一行JAVA_OPTIONS="${JAVA_OPTIONS}
-verbose:gc -Xloggc:gc.log"
重启weblogic
,此时在域目录下产生了gc.log
文件。
2、
启动jmeter
工具建立线程组(配置线程数1000
,停顿时间1
秒,循环次数是永远)。
然后在循环组里建立了HTTP
请求(请求的URL
是
http://192.168.1.102:7001/console/console.portal?_nfpb=true&_pageLabel=ServerMonitoringPerformancePage
,http
请求时同时发送username=weblogic
,password=12345678
)
建立使用图表和列表监控器查看压力测试结果
1、
当发现使用浏览器无法进入weblogic
控制台时停止压力测试,观察gc.log
发现
11538.463: [Full GC 520255K->502074K(520256K),
3.4326990 secs]
11542.221: [Full GC 520255K->501900K(520256K),
3.4342490 secs]
11545.797: [Full GC 520255K->503636K(520256K),
3.5118180 secs]
11549.563: [Full GC 520255K->504382K(520256K),
3.2005410 secs]
11552.915: [Full GC 520255K->502837K(520256K),
3.2495890 secs]
11556.393: [Full GC 520255K->502607K(520256K),
3.0438470 secs]
11559.630: [Full GC 520253K->503526K(520256K),
3.0430040 secs]
11562.785: [Full GC 520255K->503659K(520256K),
3.3416990 secs]
11566.199: [Full GC 520255K->507217K(520256K),
3.1960570 secs]
11569.887: [Full GC 520245K->505854K(520256K),
3.2310940 secs]
11573.307: [Full GC 520253K->507130K(520256K),
3.4036820 secs]
11577.002: [Full GC 520251K->506423K(520256K),
4.3883250 secs]
11581.734: [Full GC 520251K->503336K(520256K),
2.9926290 secs]
11584.866: [Full GC 520255K->505005K(520256K),
2.9095000 secs]
11588.180: [Full GC 520255K->502112K(520256K),
3.3802670 secs]
11591.926: [Full GC 520256K->501053K(520256K),
3.0464990 secs]
11595.410: [Full GC 520255K->497727K(520256K),
2.9174710 secs]
说明频繁在做Full GC weblogic
无法正常的相应用户请求。
2、
使用gcviewer
工具分析gc.log
从图中可以看出在进行压力测试过程中JVM
由原来测256M
增加到512M
(红色部门代表total heap
),垃圾回收出现逐渐上升的趋势(图中蓝色部分)说明有一部分对象不能正确回收也就是内存泄露存在。图中黑色部分说明此时JVM
已经出现异常(黑色代表Full GC
)频繁进行Full GC
而每次FULL GC
也不能回收内存而FULL GC
时JVM
不想应用户请求所以导致weblogic
控制台进不去。图中绿色线代表每次垃圾回收时间从中可以看出垃圾回收时间也在增加。
相关文章推荐
- JVM垃圾收集器使用调查:CMS最受欢迎
- sql2005 性能调校 观察各种资源的使用情况
- 查看JVM使用的什么垃圾收集器
- JVM 垃圾回收器工作原理及使用实例介绍(GC算法、垃圾收集器、GC参数)
- JVM(HotSpot) 7种垃圾收集器的特点及使用场景
- JVM垃圾收集器使用调查:CMS最受欢迎
- JVM垃圾收集器使用调查:CMS最受欢迎
- 查看JVM使用的什么垃圾收集器
- JVM垃圾收集器使用调查:CMS最受欢迎
- JVM性能优化:垃圾收集
- JVM性能调优-GC内存模型及垃圾收集算法
- JVM性能优化:垃圾收集
- JVM垃圾收集相关经常使用參数
- 在Eclipse中查看、收集JVM的内存使用情况
- 在Eclipse中查看、收集JVM的内存使用情况
- 使用JMeter进行性能测试之Java请求
- JVM垃圾收集算法
- 使用jmeter简单性能测试
- JVM01--jvm内存结构与垃圾收集算法
- JVM垃圾收集算法