一般情况JVM调优参数如下:
set JAVA_OPTS=-server -Xms1400M -Xmx1400M -Xmn768M -Xss128k -XX:PermSize=256M -XX:MaxPermSize=256M -XX:SurvivorRatio=8 -XX:MaxTenuringThreshold=7 -XX:GCTimeRatio=19 -XX:+UseParNewGC -XX:ParallelGCThreads=4 -XX:+UseConcMarkSweepGC -XX:+CMSClassUnloadingEnabled -XX:+CMSClassUnloadingEnabled -XX:+UseCMSCompactAtFullCollection -XX:CMSFullGCsBeforeCompaction=0 -XX:-CMSParallelRemarkEnabled -XX:CMSInitiatingOccupancyFraction=70 -XX:SoftRefLRUPolicyMSPerMB=0 -Xnoclassgc -XX:+DisableExplicitGC -XX:+PrintGCDetails -XX:+PrintGCTimeStamps -XX:+PrintGCApplicationConcurrentTime -XX:+PrintGCApplicationStoppedTime -XX:+PrintHeapAtGC -Xloggc:../logs/gc.log
下面对这些参数做一个详细的解释:
-server 启用能够执行优化的编译器, 显著提高服务器的性能,但使用能够执行优化的编译器时,服务器的预备时间将会较长。
-Xms1548M 初始化堆大小
-Xss128k 线程的栈大小
-Xmx1548M 最大堆大小
-Xmn768M 年轻代大小
-XX:PermSize=128M 初始化持久代大小
-XX:MaxPermSize=128M 最大持久代大小
-XX:SurvivorRatio=5 年轻代中Eden区与两个Survivor区的比值,Survivor是两个,所以Eden与Survivor的比值是5:2,Eden区占了5/7.
-XX:MaxTenuringThreshold=7 表示一个对象如果在救助空间移动7次还没有被回收就放入年老代
-Xnoclassgc 缺省情况下,当一个类没有任何活动实例时,JVM 就会从内存中卸装该类,但是这样会使性能下降。如果关闭类垃圾回收,就可以消除由于多次装入和卸装同一个类而造成的开销
-XX:+UseConcMarkSweepGC -XX:+CMSPermGenSweepingEnabled -XX:+CMSClassUnloadingEnabled 由于使用的框架是Spring/Hibernate大量采用cglib,导致生成的Proxy会比较多,而这些是存放在PermGen区域,sun JDK默认情况下不会去回收,必须加上-XX:+CMSClassUnloadingEnabled -XX:+CMSPermGenSweepingEnabled参数,JDK才会去回收这部分数据
-XX:+DisableExplicitGC 加了這個參數會停止掉WLS或是程式內直接呼叫GC,減少不必要的GC,將GC交由JVM去執行
-XX:+UseParNewGC 设置年轻代为并行收集。可与CMS收集同时使用。JDK5.0以上,JVM会根据系统配置自行设置,所以无需再设置此值
-XX:+UseCMSCompactAtFullCollection 打开对年老代的压缩。可能会影响性能,但是可以消除碎片(老年代才会有full gc)
-XX:CMSFullGCsBeforeCompaction=5 CMSFullGCsBeforeCompaction=N表示执行N次Full GC后执行内存压缩
-XX:-CMSParallelRemarkEnabled 降低标记停顿
-XX:CMSInitiatingOccupancyFraction=50 CMS堆上, 使用50%后开始CMS收集
-XX:SoftRefLRUPolicyMSPerMB=0 "softly reachable objects will remain alive for some amount of time after the last time they were referenced. The default value is one second of lifetime per free megabyte in the heap"
-XX:+PrintGCDetails -XX:+PrintGCTimeStamps -Xloggc:../logs/gc.log
-XX:+PrintGCDetails:输出形式:[GC [DefNew: 8614K->781K(9088K), 0.0123035 secs] 118250K->113543K(130112K), 0.0124633 secs] [GC [DefNew: 8614K->8614K(9088K), 0.0000665 secs][Tenured: 112761K->10414K(121024K), 0.0433488 secs] 121376K->10414K(130112K), 0.0436268 secs]
-XX:+PrintGCTimeStamps -XX:+PrintGC:PrintGCTimeStamps可与上面两个混合使用
输出形式:11.851: [GC 98328K->93620K(130112K), 0.0082960 secs]
本文出自 “峥狼--一个人的部落” 博客,请务必保留此出处http://www.uplook.cn/?a=index&m=index&c=iframe&url=http%3A%2F%2Fguoli0813.blog.51cto.com%2F623863%2F303035
分享到:
相关推荐
在现代的软件开发与运行环境中,Java虚拟机(JVM)的性能调优是非常重要的一环,特别是在处理大型应用程序或者服务时,合适的JVM调优能够显著提升系统性能和稳定性。本篇文档详细介绍了JVM调优工具的命令使用及其...
JVM调优大致可分为如下: 解决JVM运行过程中的问题(主要就是内存溢出的问题) 优化JVM运行时的环境,提高运行速度与避免卡顿现象 根据我们程序的实际需求对JVM进行规划和与调优配置 JVM的稳定性 调优原则 将机器的...
通过理解这些参数和策略,我们可以针对不同的应用需求和场景进行精细化的JVM调优,从而提高应用的性能和稳定性。在实际操作中,还需要结合应用的具体负载和业务特性,进行适当的试验和调整,找到最适合的JVM配置。
JVM 原理讲解和调优 JVM(Java Virtual Machine,Java 虚拟机)是 Java 语言的核心组件,它是一个虚构出来的计算机,是通过在实际的计算机上仿真模拟各种计算机功能来实现的。JVM 的主要功能是将 Java 字节码转换为...
设置完成后,实际上就不再使用救助空间了,因此应把SurvivorRatio设成最大值以最大化Eden空间,设置如下: java … -XX:MaxTenuringThreshold=0 –XX:SurvivorRatio=50000 … 4.BEA JRockit JVM的使用 Bea ...
### JAVA JVM性能调优监控工具详解 在Java开发过程中,特别是在企业级应用中,经常会遇到各种性能瓶颈问题,如内存溢出(`OutOfMemoryError`)、内存泄露、线程死锁、锁争用等问题。这些问题如果不能及时有效地解决...
在众多的JVM调优工具中,`jstat`(Java Virtual Machine Statistics Monitoring Tool)是一个非常实用的命令行工具,尤其适用于实时监控和分析JVM的状态。 一、`jstat` 命令详解 `jstat`命令允许开发者查看JVM的...
指令行参数选项解释如下: * -q 不输出类名、Jar 名和传入 main 方法的参数 * -m 输出传入 main 方法的参数 * -l 输出 main 类或 Jar 的全限定名 * -v 输出传入 JVM 的参数 例如:jps -m -l 2458 org.artifactory....
Java虚拟机(JVM)参数调优是提升Java应用程序性能的关键环节,特别是在处理大量数据或高并发场景下。本文将详细解析JVM参数调优、垃圾回收(GC)算法及其原理,以帮助优化系统性能。 首先,对于JVM参数调优,有...
使用VisualVM查看JVM状态,步骤如下: - 下载并安装VisualVM,可以到Oracle官网找到最新版本。 - 运行VisualVM,添加目标JVM进程,通常会自动发现本地的Java进程。 - 在"Monitors"选项卡中,可以看到CPU使用率、...
本节介绍的JVM参数如下: | 参数 | 说明 | |----------------|----------------------------------------------------------| | `-version` | 打印JVM版本信息 | | `-showversion` | 打印版本信息并执行程序 | | `-...
JVM调优是指通过调整JVM的参数设置来优化应用程序性能的过程。常见的调优案例包括: 1. **减少Full GC的频率**: - 通过调整新生代和老年代的比例,减少Full GC的发生次数,因为Full GC对系统性能的影响较大。 - ...
具体步骤如下: 1. **运行模式调整**:默认Weblogic运行在开发模式下,线程计数较少,为15个。但在生产环境中,应切换至产品模式,此时线程计数默认为25个。通过将`setPRODUCTION_MODE=true`添加到配置文件中实现此...
具体的命令行参数如下: ```shell CATALINA_OPTS='-Xms512m -Xmx4096m -XX:PermSize=64m -XX:MaxPermSize=64m -XX:MaxNewSize=128m -XX:ParallelGCThreads=8 -XX:+UseConcMarkSweepGC -Xloggc:/var/log/search/...
调整步骤如下: 1. **访问管理界面**:同样是在管理控制台上,找到“服务器 > 应用程序服务器 > server1 > Web容器设置 > Web容器传输链 > WCInboundAdmin > TCP传输通道”。 2. **参数调整**:根据实际需求调整TCP...
2. **Java 虚拟机调优**:调整初始堆大小和最大堆大小,配置 JVM 参数以优化垃圾回收机制。 3. **Web 容器线程池调优**:设置线程池的最大大小,以优化 Web 请求处理能力。 4. **日志配置**:调整日志文件的大小限制...
在Java编程语言中,了解和控制JVM(Java虚拟机)的内存管理是至关重要的,尤其是在性能调优、资源管理和避免内存泄漏等方面。本文将深入探讨如何在Java中获取JVM内存大小,包括堆内存的总量、最大值以及剩余空间,并...
#### 二、JVM调优 JVM(Java虚拟机)是运行Mycat的基础环境之一,合理配置JVM参数能够显著提升Mycat的性能表现。JVM内存主要分为两大块:Java堆内存和直接内存映射(DirectBuffer占用)。推荐配置如下: - **堆...