HyperPacer运行时内存配置与优化
2016-04-15 13:36
337 查看
HyperPacer采用Java JVM做为运行时引擎,运行版本要求Oracle JDK1.7.x及其以上版本,默认配置文件为HyperPacer.ini(Windows和Linux在程序文件根目录下,MacOS上比较特殊,在Contents\MacOS目录下),其中已经内置了常见优化参数及其默认值,一般在开发调试脚本过程中不需要修改,运行大并发测试时用户只需要修改-Xms和-Xmx即可。
修改默认JVM:
HyperPacer默认读取程序目录下jre文件中的JVM程序,如果没有则读取操作系统环境变量中配置的JVM,也可以通过配置指定运行的JVM,在ini配置文件中的-vmargs前增加一行,输入-vm, 回车,在下一行输入JVM可执行文件的路径,如Window下,C:\Program Files\jdk1.7.0_79\bin\java.exe,Linux下,/opt/jdk1.7.0_79/bin/java,注意Linux系统默认安装Open JDK,我们是不支持的,需要安装配置成Oracle
JDK。
修改默认内存大小:
对于不熟悉JVM的人来说,需要注意的是JVM的内存管理策略与Windows 系列不同,JVM采用的是最小资源配置策略,Windows系列默认采用最大资源配置策略。Windows系列的好处是用户不需要关心内存配置,有多少内存就能用完多少,坏处是内存使用不受控制;JVM默认配置了能够满足基本运行条件的内存,不同的平台上默认值不一样,坏处是使用过程中需要用户进行内存优化配置,当然好处是内存使用是可控的。HyperPacer涉及到的主要参数如下:
-Xms:启动JVM时分配的最小堆内存,默认512M。
-Xmx:JVM运行过程中能够使用的最大堆内存,默认512M。
设置多大合适取决于脚本的复杂度、运行脚本和并发用户的数量,没有统一参考的标准,需要在运行脚本的过程中不断监控内存使用情况,才能找到合适的大小。至于怎么监控,JDK提供了jconsole、jmc、jvisualvm等工具,在此不再赘述,可找度娘帮忙。
在脚本调试过程中,HyperPacer默认的参数绝大多数情况下能够满足脚本开发和调试的情况了,如果发现内存不足,可以增加-Xmx的大小,在正式的脚本运行过程中,为了保证测试过程的稳定性,建议将-Xms和-Xmx设置成一样的大小。
由于Java 8 中已经删除了持久代,如果使用Java 8,启动的时候可能提示PermSize已经被移除,可直接删除HyperPacer.ini中的-XX:PermSize和-XX:MaxPermSize。
修改默认JVM:
HyperPacer默认读取程序目录下jre文件中的JVM程序,如果没有则读取操作系统环境变量中配置的JVM,也可以通过配置指定运行的JVM,在ini配置文件中的-vmargs前增加一行,输入-vm, 回车,在下一行输入JVM可执行文件的路径,如Window下,C:\Program Files\jdk1.7.0_79\bin\java.exe,Linux下,/opt/jdk1.7.0_79/bin/java,注意Linux系统默认安装Open JDK,我们是不支持的,需要安装配置成Oracle
JDK。
修改默认内存大小:
对于不熟悉JVM的人来说,需要注意的是JVM的内存管理策略与Windows 系列不同,JVM采用的是最小资源配置策略,Windows系列默认采用最大资源配置策略。Windows系列的好处是用户不需要关心内存配置,有多少内存就能用完多少,坏处是内存使用不受控制;JVM默认配置了能够满足基本运行条件的内存,不同的平台上默认值不一样,坏处是使用过程中需要用户进行内存优化配置,当然好处是内存使用是可控的。HyperPacer涉及到的主要参数如下:
-Xms:启动JVM时分配的最小堆内存,默认512M。
-Xmx:JVM运行过程中能够使用的最大堆内存,默认512M。
设置多大合适取决于脚本的复杂度、运行脚本和并发用户的数量,没有统一参考的标准,需要在运行脚本的过程中不断监控内存使用情况,才能找到合适的大小。至于怎么监控,JDK提供了jconsole、jmc、jvisualvm等工具,在此不再赘述,可找度娘帮忙。
在脚本调试过程中,HyperPacer默认的参数绝大多数情况下能够满足脚本开发和调试的情况了,如果发现内存不足,可以增加-Xmx的大小,在正式的脚本运行过程中,为了保证测试过程的稳定性,建议将-Xms和-Xmx设置成一样的大小。
由于Java 8 中已经删除了持久代,如果使用Java 8,启动的时候可能提示PermSize已经被移除,可直接删除HyperPacer.ini中的-XX:PermSize和-XX:MaxPermSize。
相关文章推荐
- 推荐-计算机视觉、图像处理方面的论文阅读笔记
- Jetty和tomcat的比较
- 10多年码代码经验腾讯管理谈职业规划
- (转载)RESTORE DATABASE命令还原SQLServer 2005 数据库
- LINUX下一款不错的网站压力测试工具webbench
- MariaDB设置主从复制[转载]
- Tmux 速成教程:技巧和调整
- git 的一些常用命令——记录一下
- git 的一些常用命令——记录一下
- Linux-简单的Makefile编写
- Swift写的超级简单的五子棋
- App Transport Security has blocked a cleartext
- Muduo网络库源码分析(四)EventLoopThread和EventLoopThreadPool的封装
- http://blog.csdn.net/zhou452840622/article/details/41820301
- JS学习基础心得
- WAP调用微信支付https://pay.weixin.qq.com/wiki/doc/api/wap.php?chapter=15_1
- spring防止表单重复提交
- Swift写的超级简单的五子棋
- Thrift 使用TNonblockingServer模型时调用PosixThreadFactory出错。
- 小菜鸟成长记