java服务性能分析、压测推荐开启参数

首先先介绍下java基础常用的java服务启动时开启的参数:

内存相关参数:

-Xmx:设置JVM的最大堆内存大小。

-Xms:设置JVM的初始堆内存大小。

-Xmn:设置新生代堆内存大小。

-XX:MaxMetaspaceSize:设置元空间(Metaspace)的最大大小。

-XX:SurvivorRatio:设置新生代中Eden区与Survivor区的大小比例。

-XX:NewRatio:设置新生代与老年代堆内存大小的比例。

垃圾回收相关参数:

-XX:+UseSerialGC:使用串行垃圾回收器。

-XX:+UseParallelGC:使用并行垃圾回收器。

-XX:+UseConcMarkSweepGC:使用并发标记-清除垃圾回收器。

-XX:+UseG1GC:使用G1垃圾回收器。

-XX:+PrintGC:打印简要的垃圾回收信息。

-XX:+PrintGCTimeStamps:打印垃圾回收的时间戳。

-XX:+PrintGCDateStamps:打印垃圾回收的日期时间戳。

-XX:+PrintGCDetails:打印详细的垃圾回收信息。

-XX:+PrintGCApplicationStoppedTime:打印应用程序停顿时间的垃圾回收信息。

-XX:+PrintTenuringDistribution:打印对象在新生代中的年龄分布信息。

-XX:+PrintHeapAtGC:在垃圾回收前后打印堆内存的使用情况。

JIT编译相关参数:

-XX:+PrintCompilation:打印即时编译(JIT)的详细信息。

-XX:+PrintInlining:打印方法内联信息。

-XX:+PrintOptoAssembly:打印Opto汇编代码。

GC日志相关参数:

-Xloggc::将GC日志输出到指定文件中。

-XX:+UseGCLogFileRotation:启用GC日志轮转。

-XX:NumberOfGCLogFiles:设置GC日志文件的数量。

-XX:GCLogFileSize:设置单个GC日志文件的大小

下面是在进行性能分析时开启的参数,但在生产环境中要避免使用以下参数,以免对性能和稳定性造成不必要的影响。最好在开发和测试环境中使用这些参数进行调试和诊断

-XX:+UnlockDiagnosticVMOptions参数用于解锁JVM的诊断选项,允许您访问更多的诊断功能。这样可以更深入地了解JVM的内部状态和行为。

-XX:-ZProactive参数用于禁用JVM的主动优化功能,即禁用JVM在运行时对代码进行自动优化。禁用主动优化可以使代码的执行路径和行为更可见,有助于性能调试和分析。

-XX:+PrintFlagsFinal :打印JVM的所有参数及其最终值,包括默认值和通过命令行设置的值。
-XX:+PrintVMOptions :打印JVM的所有可选参数及其说明。
-XX:+PrintCommandLineFlags :打印JVM的命令行参数,包括默认值和通过命令行设置的值。
-XX:+PrintStringTableStatistics :打印字符串常量池的统计信息,包括字符串的数量、大小、碰撞次数等。
-XX:+PrintClassHistogram :打印类的直方图,显示JVM中已加载类的数量和大小。
-XX:+TraceClassLoading :跟踪类的加载过程,打印详细的类加载信息。
-XX:+TraceClassUnloading :跟踪类的卸载过程,打印详细的类卸载信息。
-XX:TraceClassResolution= :跟踪指定类的解析过程,打印类的解析信息。
-XX:+PrintCompilation :打印即时编译(JIT)的详细信息,包括方法的编译过程、时间等。
-XX:+PrintInlining :打印方法内联的信息,显示哪些方法被内联,以及内联深度等

案例:

java -Xmx2g -Xms1g -XX:+PrintGCDetails -XX:+PrintGCDateStamps -XX:+PrintCompilation -XX:+UnlockDiagnosticVMOptions -XX:-ZProactive -XX:+UseG1GC -Xloggc:gc.log -jar YourApp.jar

在上述案例中,我们使用了一系列JVM参数。其中,我们设置了最大堆内存和初始堆内存为2GB和1GB,启用了详细的垃圾回收日志打印,打印了垃圾回收的时间戳,打印了即时编译的详细信息,并解锁了诊断VM选项。我们使用了G1垃圾回收器,并将GC日志输出到gc.log文件中。

通过这些参数,我们可以观察应用程序的内存使用情况、垃圾回收性能以及JIT编译的过程。同时,可以使用其他工具(如VisualVM、JProfiler等)来分析gc.log和JIT编译日志,进一步进行性能分析和优化。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值