JVM Options For GC
1: heap size
a: -Xmx
指定jvm的最大heap大小,如:-Xmx2g
b: -Xms
指定jvm的最小heap大小,如:-Xms1g
c: -Xmn
指定jvm中New Generation的大小,如:-Xmn256m
d: -XX:PermSize
指定jvm中Perm Generation的最小值,如:-XX:PermSize=32m
e: -XX:MaxPermSize
指定Perm Generation的最大值,如:-XX:MaxPermSize=64m
f: -Xss
指定线程桟大小,如:-Xss128k
g: -XX:NewRatio
指定jvm中Old Generation heap size与New Generation的比例,在使用CMS GC的情况下此参数失效, 如:-XX:NewRatio=2
h: -XX:SurvivorRatio
指定New Generation中Eden Space与一个Survivor Space的heap size比例,-XX:SurvivorRatio=8,那么在总共New Generation为10m的情况下,Eden Space为8m
i: -XX:MinHeapFreeRatio
指定jvm heap在使用率小于n的情况下,heap进行收缩,Xmx==Xms的情况下无效,如:-XX:MinHeapFreeRatio=30
j: -XX:MaxHeapFreeRatio
指定jvm heap在使用率大于n的情况下,heap进行扩张,Xmx==Xms的情况下无效,如:-XX:MaxHeapFreeRatio=70
k: -XX:LargePageSizeInBytes
指定Java heap的分页页面大小,如:-XX:LargePageSizeInBytes=128m
2: garbage collector
a: -XX:+UseParallelGC
指定在New Generation使用parallel collector,并行收集,同时启动多个垃圾回收thread,不能和CMS gc一起使用.系统吨吐量优先,但是会有较长长时间的app pause,后台系统任务可以使用此gc
b: -XX:ParallelGCThreads
指定parallel collection时启动的thread个数,默认是物理processor的个数,如:-xx:ParallelGCThreads=8
c: -XX:+UseParallelOldGC
指定在Old Generation使用parallel collector
d: -XX:+UseParNewGC
指定在New Generation使用parallel collector,是UseParallelGC的gc的升级版本,有更好的性能或者优点,可以和CMS gc一起使用
e: -XX:+CMSParallelRemarkEnabled
在使用UseParNewGC的情况下,尽量减少mark的时间
f: -XX:+UseConcMarkSweepGC
指定在Old Generation使用concurrent cmark sweep gc,gc thread和app thread并行,所以称作concurrent.app pause时间较短,适合交互性强的系统,如web server
g: -XX:+UseCMSCompactAtFullCollection
在使用concurrent gc的情况下,防止memory fragmention,对live object进行整理,使memory碎片减少
h: -XX:CMSInitiatingOccupancyFraction=n
指示在old generation在使用了n%的比例后,启动concurrent collector,默认值是68,如:-XX:CMSInitiatingOccupancyFraction=70
有个bug,在低版本的jvm上出现,http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=6486089
i: -XX:+UseCMSInitiatingOccupancyOnly
指示只有在old generation在使用了初始化的比例后concurrent collector启动收集
3:others
a: -XX:MaxTenuringThreshold
指定一个object在经历了n次young gc后转移到old generation区,在linux64的java6下默认值是15,此参数对于throughput collector无效,如:-XX:MaxTenuringThreshold=31
b: -XX:+DisableExplicitGC
禁止java程序中的full gc,如System.gc()的调用
c: -XX:+UseFastAccessorMethods
原始类型get,set方法的优化
d: -XX:+PrintGCDetails
打应垃圾收集的情况如:
[GC 15610.466: [ParNew: 229689K->20221K(235968K), 0.0194460 secs] 1159829K->953935K(2070976K), 0.0196420 secs]
e: -XX:+PrintGCTimeStamps
打应垃圾收集的时间情况,如:
[Times: user=0.09 sys=0.00, real=0.02 secs]
f: -XX:+PrintGCApplicationStoppedTime
打应垃圾收集时,系统的停顿时间,如:
Total time for which application threads were stopped: 0.0225920 seconds
4: a web server product sample
JAVA_OPTS=" -server -Xmx2g -Xms2g -Xmn256m -XX:PermSize=128m -Xss256k -XX:+DisableExplicitGC -XX:+UseConcMarkSweepGC -XX:+UseParNewGC -XX:+CMSParallelRemarkEnabled -XX:+UseCMSCompactAtFullCollection -XX:LargePageSizeInBytes=128m -XX:+UseFastAccessorMethods -XX:+UseCMSInitiatingOccupancyOnly -XX:CMSInitiatingOccupancyFraction=70 "
Reference: http://www.meichua.com/archives/tag/jvm
分享到:
相关推荐
Java虚拟机(JVM)是Java程序运行的基础,它的配置参数和垃圾收集(GC)机制对于优化应用程序性能至关重要。本文将深入探讨JVM参数及其与Java垃圾收集相关的知识。 一、JVM参数详解 JVM参数可以分为三类:启动参数...
`JVM options`,即Java虚拟机参数,能够定制JVM的行为,包括内存分配、垃圾收集策略、性能调优等多个方面。本篇将深入解析IntelliJ IDEA中常用的JVM参数,并探讨如何根据实际需求进行调整。 首先,我们要了解JVM的...
2. jmap -histo:live <pid>:此命令用于查看当前存活的实例,执行过程中可能会触发一次Full GC。 当需要对JVM进行内存溢出处理时,可以通过两个参数来实现自动导出堆内存信息。这两个参数为: 1. -XX:+...
关闭此选项意味着 JVM 将不再预留额外的空间,从而可能减少 Full GC 的频率。 - **应用场景**: 对于内存管理有特殊需求的应用程序,关闭新生代收集担保可以帮助减少 Full GC 的次数,从而提高应用的整体性能。 - **...
JADX最新版本,支持中文,2019年8月31日编译,JVM内存已经修改为8G,运行请点击bin目录下的...set DEFAULT_JVM_OPTS="-Xms128M" "-Xmx8g" "-Dawt.useSystemAAFontSettings=lcd" "-Dswing.aatext=true" "-XX:+UseG1GC
具体路径为`HKEY_LOCAL_MACHINE\SOFTWARE\ApacheSoftwareFoundation\TomcatServiceManager\Tomcat6\Parameters\JavaOptions`,在此处加入相应的内存参数。 #### 查看与监控JVM内存信息 为了实时监控JVM内存状态,...
- **用途**:查看JVM运行时的统计信息,如类加载信息、编译信息、GC信息等。 - **语法**: - `jstat -class <pid>`:查看类加载信息。 - `jstat -gc <pid>`:查看Java堆的垃圾收集统计信息。 - `jstat -gcutil ...
2. **VJTools的jvm-options.sh**:VJTools提供了一个jvm-options.sh脚本,可以根据实际需求稍作修改即可用于自己的项目中。这是一个非常实用的工具,能够帮助快速地进行JVM参数配置。 3. **JVM调优“标准参数”的...
为了快速定位并解决问题,我们需要收集多种类型的运行时信息,包括但不限于系统日志、堆转储文件(heap dump)、线程转储文件(thread dump)以及垃圾收集日志(GC log)等。Java虚拟机(JVM)提供了一系列内置的...
- **建议设置**:在服务器环境下,通常建议将`-Xms`和`-Xmx`设置为相同的值,这样可以避免每次GC后JVM调整堆大小的操作,提高系统的稳定性。 #### 三、配置方法 ##### 1. Linux环境 - **配置文件**:在Linux环境...
这通常包括了创建不同的JVM配置文件(如`jvm.options`),编写脚本自动化调优过程,以及学习如何解读和分析JVM生成的日志文件,以便找出性能瓶颈。 总的来说,JVM调优是一个深度且复杂的主题,涉及到许多技术细节。...
- **使用方法**:`jhat <heapdumpfile>` 或 `jhat -J<options> <heapdumpfile>`。 ##### 5. jmap:内存映像工具 - **功能**:`jmap` 可以获取堆内存的快照,并将其输出为一个文件,也可以显示堆中的对象信息。 - **...
jstat是一个命令行工具,可以实时监控JVM的资源使用情况,如堆内存使用、GC活动等。 **主要功能:** - 监控classloader行为 (`-class`)。 - 监控编译行为 (`-compile`)。 - 监控GC活动 (`-gc`)。 - 显示不同区域的...
总结来说,GChisto是一款强大的GC日志分析工具,它通过解析和可视化JVM的GC日志,帮助开发者和运维人员找出内存管理的问题,特别是Old Generation区域的问题,从而提升Java应用的性能和稳定性。正确使用GChisto,并...
IDEA修改JVM内存配置可以通过修改idea安装目录下的bin文件夹中的vmoptions文件来实现。vmoptions文件中可以设置JVM的内存大小、垃圾回收算法等参数。 例如,原配置如下: -Xms128m -Xmx750m -XX:...
- **重要性**: 合适的初始内存大小有助于减少垃圾回收(GC)的频率,提高应用性能。 2. **-Xmx (Maximum heap size)**: - **含义**: 设置JVM的最大堆内存大小。 - **重要性**: 当应用程序使用的内存接近-Xmx指定...
* -J options 传递给 JVM 的参数 * -port 端口号 例如:jhat -port 9999 dump.dat 五、jstat jstat 主要用来监控 JVM 的垃圾回收和内存使用情况。语法格式如下:jstat [options] [vmid]。指令行参数选项解释如下...
- `-dump:<dump-options>`: 生成堆的快照文件。 - **示例**: `jmap -dump:live,format=b,file=E:\heap.bin <pid>` 可以生成一个包含活动对象的二进制格式的堆文件。 ##### jvisualvm - **功能**: 既可以在线查看...