Jmeter OutOfMemoryError
2012-03-04 16:01 Joeyyyy 阅读(2709) 评论(0) 收藏 举报上周接了一个比较不大的性能测试项目,是掌上团购的接口。因为场景也比较简单,又要和xml打交道,用LR就不太顺手了,于是选择了JMeter。
脚本制作也还顺利,但是执行时碰到了一点小麻烦,JMeter总是在10分钟不到的时候因为内存溢出crash掉了,控制台报错OutOfMemoryError。
我想JMeter应该不至于那么逊,这么简单的场景都处理不了吧,于是网上查了些资料将问题解决了,现在将一些优化方法列在下面分享给大家。
1. JVM参数优化
修改jmeter.bat(windows下),jmeter.sh(linux下)
我优化后使用的参数是
JVM_ARGS="-Xmx2g -Xms2g -Xmn256m -XX:PermSize=128m -Xss256k -XX:+DisableExplicitGC -XX:+UseConcMarkSweepGC -XX:+CMSParallelRemarkEnabled -XX:+UseCMSCompactAtFullCollection -XX:LargePageSizeInBytes=128m -XX:+UseFastAccessorMethods -XX:+UseCMSInitiatingOccupancyOnly -XX:+UseCompressedOops"
2. XPath Extractor使用简单的绝对表达式
这个场景中较多用到了XPath Extractor,其中有的地方,我偷懒直接写了//id。
建议写成绝对的表达式,修改后变成:/list/com.yihaodian.mobile.vo.address.GoodReceiverVO/id
3. 不要使用gui,减少Listener
监听器配置一个Simple Data Writer即可,其他report都可以过后通过日志文件重新计算。
-n表示无gui
例如: jmeter -t 脚本名.jmx -n
4. 如果机器配置较差,可以通过远程方式执行
在远程机器上执行jmeter-server启动服务端。当然这样的话,jvm优化应该配置在远程机器上。如果想后台执行的话,可以执行
nohup jmeter-server&
控制机上执行如下,其中-r表示使用远程机器执行,-Jremote_hosts填写远程机器ip,或者也可以修改jmeter配置文件,不过个人觉得写在命令行上更方便。
jmeter -t mobilegroupon.jmx -r -n -Jremote_hosts=192.168.6.79
浙公网安备 33010602011771号