jvm 性能调优工具之 jinfo命令详解
Posted 爱上口袋的天空
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了jvm 性能调优工具之 jinfo命令详解相关的知识,希望对你有一定的参考价值。
一、jinfo
1、简介
jinfo(Configuration Info for Java) 查看虚拟机配置参数信思,也可用于调整虚拟机的配置参数。
在很多情况下,Java应用程序不会指定所有的Java虚拟机参数。而此时,开发人员可能不知道某一个具体的Java虚拟机参数的默认值。在这种情况下,可能需要通过查找文档获取某个参数的默认值。这个查找过程可能是非常艰难的。但有了 jinfo工具,开发人员可以很方便地找到Java虚拟机参数的当前值。
jinfo不仅可以查看运行时某一个Java虚拟机参数的实际取值, 甚至可以在运行时修改部分参 数,并使之立即生效。 但是,并非所有参数都支持动态修改。参数只有被标记 manageable的flag可以被实时修改。其实,这个修改能力是 极其有限的。
2、jinfo -sysprops pid :查看该进程的全部配置信息
描述:输出当前 jvm 进行的全部的系统属性
2.1、启动如下程序
package com.kgf.kgfjavalearning2021.jvm; import java.util.ArrayList; /*** * 测试GC的频率: * 设置内存大小:-Xmx60m -XX:SurvivorRatio=8 * * -Xmx60m: 表示是最大堆的大小, 也就是当你的虚拟机启动后, 就会分配这么大的堆内存给你 * -XX:SurvivorRatio=8: * 设置新生代中eden和S0/S1空间的比例 * 默认 * -XX:SurvivorRatio=8,Eden:S0:S1=8:1:1 * 假如 * -XX:SurvivorRatio=4,Eden:S0:S1=4:1:1 * SurvivorRatio值就是设置Eden区的比例占多少,S0/S1相同 * */ public class GCTest public static void main(String[] args) ArrayList<byte[]> list = new ArrayList<>(); for (int i = 0; i < 1000; i++) byte[] arr = new byte[1024*100];//每次向list中存放100kb的字节数组 list.add(arr); try Thread.sleep(100); catch (InterruptedException e) e.printStackTrace();
在idea中设置堆内存:
2.2、使用jinfo命令查看,查看到的参数其实在我们的java中是可以通过system.getProperties()参数进行获取到的,其实就是环境变量
命令:jinfo -sysprops pid
C:\\Users\\86136>jps 10864 GCTest 11248 RemoteMavenServer 2052 8616 Jps 4972 Launcher C:\\Users\\86136>jinfo -sysprops 10864 Attaching to process ID 10864, please wait... Debugger attached successfully. Server compiler detected. JVM version is 25.51-b03 java.runtime.name = Java(TM) SE Runtime Environment java.vm.version = 25.51-b03 sun.boot.library.path = D:\\jdk1.8.0_51\\jre\\bin java.vendor.url = http://java.oracle.com/ java.vm.vendor = Oracle Corporation path.separator = ; file.encoding.pkg = sun.io java.vm.name = Java HotSpot(TM) 64-Bit Server VM sun.os.patch.level = sun.java.launcher = SUN_STANDARD user.script = user.country = CN user.dir = E:\\WorkSpace\\kgf-java-learning2021 java.vm.specification.name = Java Virtual Machine Specification java.runtime.version = 1.8.0_51-b16 java.awt.graphicsenv = sun.awt.Win32GraphicsEnvironment os.arch = amd64 java.endorsed.dirs = D:\\jdk1.8.0_51\\jre\\lib\\endorsed line.separator = java.io.tmpdir = C:\\Users\\86136\\AppData\\Local\\Temp\\ java.vm.specification.vendor = Oracle Corporation user.variant = os.name = Windows 8.1 sun.jnu.encoding = GBK java.library.path = D:\\jdk1.8.0_51\\bin;C:\\WINDOWS\\Sun\\Java\\bin;C:\\WINDOWS\\system32;C:\\WINDOWS;E:\\WorkSpace\\software\\Python37\\Scripts\\;E:\\WorkSpace\\software\\Python37\\;D:\\oracle12c\\product\\12.2.0\\dbhome_1\\bin;C:\\Program Files (x86)\\Intel\\Intel(R) Management Engine Components\\iCLS\\;C:\\Program Files\\Intel\\Intel(R) Management Engine Components\\iCLS\\;C:\\Windows\\system32;C:\\Windows;C:\\Windows\\System32\\Wbem;C:\\Windows\\System32\\WindowsPowerShell\\v1.0\\;C:\\Windows\\System32\\OpenSSH\\;C:\\Program Files (x86)\\Intel\\Intel(R) Management Engine Components\\DAL;C:\\Program Files\\Intel\\Intel(R) Management Engine Components\\DAL;C:\\Program Files (x86)\\Intel\\Intel(R) Management Engine Components\\IPT;C:\\Program Files\\Intel\\Intel(R) Management Engine Components\\IPT;C:\\Program Files (x86)\\NVIDIA Corporation\\PhysX\\Common;D:\\jdk1.8.0_51\\bin;D:\\apache-maven-3.5.2\\bin;D:\\TortoiseSVN\\bin;D:\\oracleClient\\instantclient_12_2;D:\\mysql-5.7.24-winx64\\bin;D:\\zookeeper-3.4.10\\bin;d:\\Git\\cmd;D:\\Redis-x64-3.2.100;D:\\hadoopWorkSpace\\hadoop-2.7.2\\bin;C:\\Program Files (x86)\\Common Files\\Thunder Network\\KanKan\\Codecs;C:\\WINDOWS\\system32;C:\\WINDOWS;C:\\WINDOWS\\System32\\Wbem;C:\\WINDOWS\\System32\\WindowsPowerShell\\v1.0\\;C:\\WINDOWS\\System32\\OpenSSH\\;D:\\scala-2.11.8\\bin;D:\\gradle-6.7\\bin;D:\\nodejs\\;D:\\OpenSSL-Win64\\bin;D:\\software\\Vagrant\\bin;C:\\Ruby27-x64\\bin;C:\\Users\\86136\\AppData\\Local\\Microsoft\\WindowsApps;;D:\\Microsoft VS Code\\bin;C:\\Users\\86136\\AppData\\Roaming\\npm;. java.specification.name = Java Platform API Specification java.class.version = 52.0 sun.management.compiler = HotSpot 64-Bit Tiered Compilers os.version = 6.3 user.home = C:\\Users\\86136 user.timezone = Asia/Shanghai java.awt.printerjob = sun.awt.windows.WPrinterJob file.encoding = UTF-8 java.specification.version = 1.8 user.name = 86136 java.class.path = D:\\jdk1.8.0_51\\jre\\lib\\charsets.jar;D:\\jdk1.8.0_51\\jre\\lib\\deploy.jar;D:\\jdk1.8.0_51\\jre\\lib\\ext\\access-bridge-64.jar;D:\\jdk1.8.0_51\\jre\\lib\\ext\\cldrdata.jar;D:\\jdk1.8.0_51\\jre\\lib\\ext\\dnsns.jar;D:\\jdk1.8.0_51\\jre\\lib\\ext\\jaccess.jar;D:\\jdk1.8.0_51\\jre\\lib\\ext\\jfxrt.jar;D:\\jdk1.8.0_51\\jre\\lib\\ext\\localedata.jar;D:\\jdk1.8.0_51\\jre\\lib\\ext\\nashorn.jar;D:\\jdk1.8.0_51\\jre\\lib\\ext\\sunec.jar;D:\\jdk1.8.0_51\\jre\\lib\\ext\\sunjce_provider.jar;D:\\jdk1.8.0_51\\jre\\lib\\ext\\sunmscapi.jar;D:\\jdk1.8.0_51\\jre\\lib\\ext\\sunpkcs11.jar;D:\\jdk1.8.0_51\\jre\\lib\\ext\\zipfs.jar;D:\\jdk1.8.0_51\\jre\\lib\\javaws.jar;D:\\jdk1.8.0_51\\jre\\lib\\jce.jar;D:\\jdk1.8.0_51\\jre\\lib\\jfr.jar;D:\\jdk1.8.0_51\\jre\\lib\\jfxswt.jar;D:\\jdk1.8.0_51\\jre\\lib\\jsse.jar;D:\\jdk1.8.0_51\\jre\\lib\\management-agent.jar;D:\\jdk1.8.0_51\\jre\\lib\\plugin.jar;D:\\jdk1.8.0_51\\jre\\lib\\resources.jar;D:\\jdk1.8.0_51\\jre\\lib\\rt.jar;E:\\WorkSpace\\kgf-java-learning2021\\target\\classes;D:\\repository\\org\\springframework\\boot\\spring-boot-starter-web\\2.5.6\\spring-boot-starter-web-2.5.6.jar;D:\\repository\\org\\springframework\\boot\\spring-boot-starter\\2.5.6\\spring-boot-starter-2.5.6.jar;D:\\repository\\org\\springframework\\boot\\spring-boot-starter-logging\\2.5.6\\spring-boot-starter-logging-2.5.6.jar;D:\\repository\\ch\\qos\\logback\\logback-classic\\1.2.6\\logback-classic-1.2.6.jar;D:\\repository\\ch\\qos\\logback\\logback-core\\1.2.6\\logback-core-1.2.6.jar;D:\\repository\\org\\apache\\logging\\log4j\\log4j-to-slf4j\\2.14.1\\log4j-to-slf4j-2.14.1.jar;D:\\repository\\org\\apache\\logging\\log4j\\log4j-api\\2.14.1\\log4j-api-2.14.1.jar;D:\\repository\\org\\slf4j\\jul-to-slf4j\\1.7.32\\jul-to-slf4j-1.7.32.jar;D:\\repository\\jakarta\\annotation\\jakarta.annotation-api\\1.3.5\\jakarta.annotation-api-1.3.5.jar;D:\\repository\\org\\yaml\\snakeyaml\\1.28\\snakeyaml-1.28.jar;D:\\repository\\org\\springframework\\boot\\spring-boot-starter-json\\2.5.6\\spring-boot-starter-json-2.5.6.jar;D:\\repository\\com\\fasterxml\\jackson\\core\\jackson-databind\\2.12.5\\jackson-databind-2.12.5.jar;D:\\repository\\com\\fasterxml\\jackson\\core\\jackson-annotations\\2.12.5\\jackson-annotations-2.12.5.jar;D:\\repository\\com\\fasterxml\\jackson\\core\\jackson-core\\2.12.5\\jackson-core-2.12.5.jar;D:\\repository\\com\\fasterxml\\jackson\\datatype\\jackson-datatype-jdk8\\2.12.5\\jackson-datatype-jdk8-2.12.5.jar;D:\\repository\\com\\fasterxml\\jackson\\datatype\\jackson-datatype-jsr310\\2.12.5\\jackson-datatype-jsr310-2.12.5.jar;D:\\repository\\com\\fasterxml\\jackson\\module\\jackson-module-parameter-names\\2.12.5\\jackson-module-parameter-names-2.12.5.jar;D:\\repository\\org\\springframework\\boot\\spring-boot-starter-tomcat\\2.5.6\\spring-boot-starter-tomcat-2.5.6.jar;D:\\repository\\org\\apache\\tomcat\\embed\\tomcat-embed-core\\9.0.54\\tomcat-embed-core-9.0.54.jar;D:\\repository\\org\\apache\\tomcat\\embed\\tomcat-embed-el\\9.0.54\\tomcat-embed-el-9.0.54.jar;D:\\repository\\org\\apache\\tomcat\\embed\\tomcat-embed-websocket\\9.0.54\\tomcat-embed-websocket-9.0.54.jar;D:\\repository\\org\\springframework\\spring-web\\5.3.12\\spring-web-5.3.12.jar;D:\\repository\\org\\springframework\\spring-beans\\5.3.12\\spring-beans-5.3.12.jar;D:\\repository\\org\\springframework\\spring-webmvc\\5.3.12\\spring-webmvc-5.3.12.jar;D:\\repository\\org\\springframework\\spring-aop\\5.3.12\\spring-aop-5.3.12.jar;D:\\repository\\org\\springframework\\spring-context\\5.3.12\\spring-context-5.3.12.jar;D:\\repository\\org\\springframework\\spring-expression\\5.3.12\\spring-expression-5.3.12.jar;D:\\repository\\org\\springframework\\boot\\spring-boot-devtools\\2.5.6\\spring-boot-devtools-2.5.6.jar;D:\\repository\\org\\springframework\\boot\\spring-boot\\2.5.6\\spring-boot-2.5.6.jar;D:\\repository\\org\\springframework\\boot\\spring-boot-autoconfigure\\2.5.6\\spring-boot-autoconfigure-2.5.6.jar;D:\\repository\\org\\projectlombok\\lombok\\1.18.16\\lombok-1.18.16.jar;D:\\repository\\org\\slf4j\\slf4j-api\\1.7.32\\slf4j-api-1.7.32.jar;D:\\repository\\org\\springframework\\spring-core\\5.3.12\\spring-core-5.3.12.jar;D:\\repository\\org\\springframework\\spring-jcl\\5.3.12\\spring-jcl-5.3.12.jar;D:\\repository\\com\\google\\guava\\guava\\20.0\\guava-20.0.jar;D:\\repository\\org\\apache\\commons\\commons-lang3\\3.12.0\\commons-lang3-3.12.0.jar;D:\\repository\\com\\alibaba\\fastjson\\1.2.75\\fastjson-1.2.75.jar;D:\\repository\\cn\\hutool\\hutool-all\\5.5.1\\hutool-all-5.5.1.jar;D:\\repository\\org\\apache\\poi\\poi-ooxml\\4.1.2\\poi-ooxml-4.1.2.jar;D:\\repository\\org\\apache\\commons\\commons-compress\\1.19\\commons-compress-1.19.jar;D:\\repository\\com\\github\\virtuald\\curvesapi\\1.06\\curvesapi-1.06.jar;D:\\repository\\org\\apache\\poi\\poi-ooxml-schemas\\4.1.2\\poi-ooxml-schemas-4.1.2.jar;D:\\repository\\org\\apache\\xmlbeans\\xmlbeans\\3.1.0\\xmlbeans-3.1.0.jar;D:\\repository\\org\\apache\\poi\\poi\\4.1.2\\poi-4.1.2.jar;D:\\repository\\commons-codec\\commons-codec\\1.15\\commons-codec-1.15.jar;D:\\repository\\org\\apache\\commons\\commons-collections4\\4.4\\commons-collections4-4.4.jar;D:\\repository\\org\\apache\\commons\\commons-math3\\3.6.1\\commons-math3-3.6.1.jar;D:\\repository\\com\\zaxxer\\SparseBitSet\\1.2\\SparseBitSet-1.2.jar;D:\\JetBrains\\idea20190303\\lib\\idea_rt.jar java.vm.specification.version = 1.8 sun.arch.data.model = 64 sun.java.command = com.kgf.kgfjavalearning2021.jvm.GCTest java.home = D:\\jdk1.8.0_51\\jre user.language = zh java.specification.vendor = Oracle Corporation awt.toolkit = sun.awt.windows.WToolkit java.vm.info = mixed mode java.version = 1.8.0_51 java.ext.dirs = D:\\jdk1.8.0_51\\jre\\lib\\ext;C:\\WINDOWS\\Sun\\Java\\lib\\ext sun.boot.class.path = D:\\jdk1.8.0_51\\jre\\lib\\resources.jar;D:\\jdk1.8.0_51\\jre\\lib\\rt.jar;D:\\jdk1.8.0_51\\jre\\lib\\sunrsasign.jar;D:\\jdk1.8.0_51\\jre\\lib\\jsse.jar;D:\\jdk1.8.0_51\\jre\\lib\\jce.jar;D:\\jdk1.8.0_51\\jre\\lib\\charsets.jar;D:\\jdk1.8.0_51\\jre\\lib\\jfr.jar;D:\\jdk1.8.0_51\\jre\\classes java.vendor = Oracle Corporation file.separator = \\ java.vendor.url.bug = http://bugreport.sun.com/bugreport/ sun.io.unicode.encoding = UnicodeLittle sun.cpu.endian = little sun.desktop = windows sun.cpu.isalist = amd64 C:\\Users\\86136>
3、jinfo -flags pid: 查看曾经赋过值的参数值
命令:jinfo -flags 10696
C:\\Users\\86136>jps 11248 RemoteMavenServer 4992 Launcher 2052 10696 GCTest 13596 Jps C:\\Users\\86136>jinfo -flags 10696 Attaching to process ID 10696, please wait... Debugger attached successfully. Server compiler detected. JVM version is 25.51-b03 Non-default VM flags: -XX:CICompilerCount=4 -XX:InitialHeapSize=62914560 -XX:MaxHeapSize=62914560 -XX:MaxNewSize=20971520 -XX:MinHeapDeltaBytes=524288 -XX:NewSize=20971520 -XX:OldSize=41943040 -XX:SurvivorRatio=8 -XX:+UseCompressedClassPointers -XX:+UseCompressedOops -XX:+UseFastUnorderedTimeStamps -XX:-UseLargePagesIndividualAllocation -XX:+UseParallelGC Command line: -Xmx60m -XX:SurvivorRatio=8 -javaagent:D:\\JetBrains\\idea20190303\\lib\\idea_rt.jar=1036:D:\\JetBrains\\idea20190303\\bin -Dfile.encoding=UTF-8 C:\\Users\\86136>
4、jinfo -flag <具体参数> pid: 查看具体参数的值
上面我们在程序里面设置了最大的堆内存是60M,这里的内存刚好是60M
5、使用jinfo进行参数修改
jinfo不仅可以查看运行时某一个Java虚拟机参数的实际取值, 甚至可以在运行时修改部分参 数,并使之立即生效。 但是,并非所有参数都支持动态修改。参数只有被标记 manageable的flag可以被实时修改。其实,这个修改能力是 极其有限的
5.1、布尔类型: jinfo -flag +-参数 pid
5.2、非布尔类型: jinfo -flag 参数名=参数值 pid
6、查看JVM启动参数值
java -XX: -PrintFlagslnitial 查看所有JVM参数启动的初始值
java -XX: +PrintFlagsFinal 查看所有JVM参数的最终值(这个用的更多一些)
java -XX: +PrintCommandLineflags 查看那些已经被用户或者JVM设置过的详细的XX参数的名称和值上面前两个用的比较多一些,特别是第二个
6.1、我们使用java -XX: +PrintFlagsFinal输出到一个文件中
命令:java -XX: +PrintFlagsFinal >1.txt
1.txt内容如下:
下面我们查看JVM的最大堆内存:
可以发现最大堆内存为4G,初始化堆内存为256M,安装下面的计算时正确的,因为我的电脑是16G的内存
- 默认情况下:
- 初始内存大小:
物理电脑内存大小/64
- 最大内存大小:
物理电脑内存大小/4
[Global flags] uintx AdaptiveSizeDecrementScaleFactor = 4 product uintx AdaptiveSizeMajorGCDecayTimeScale = 10 product uintx AdaptiveSizePausePolicy = 0 product uintx AdaptiveSizePolicyCollectionCostMargin = 50 product uintx AdaptiveSizePolicyInitializingSteps = 20 product uintx AdaptiveSizePolicyOutputInterval = 0 product uintx AdaptiveSizePolicyWeight = 10 product uintx AdaptiveSizeThroughPutPolicy = 0 product uintx AdaptiveTimeWeight = 25 product bool AdjustConcurrency = false product bool AggressiveOpts = false product intx AliasLevel = 3 C2 product bool AlignVector = false C2 product intx AllocateInstancePrefetchLines = 1 product intx AllocatePrefetchDistance = 192 product intx AllocatePrefetchInstr = 3 product intx AllocatePrefetchLines = 4 product intx AllocatePrefetchStepSize = 64 product intx AllocatePrefetchStyle = 1 product bool AllowJNIEnvProxy = false product bool AllowNonVirtualCalls = false product bool AllowParallelDefineClass = false product bool AllowUserSignalHandlers = false product bool AlwaysActAsServerClassMachine = false product bool AlwaysCompileLoopMethods = false product bool AlwaysLockClassLoader = false product bool AlwaysPreTouch = false product bool AlwaysRestoreFPU = false product bool AlwaysTenure = false product bool AssertOnSuspendWaitFailure = false product bool AssumeMP = false product intx AutoBoxCacheMax = 128 C2 product uintx AutoGCSelectPauseMillis = 5000 product intx BCEATraceLevel = 0 product intx BackEdgeThreshold = 100000 pd product bool BackgroundCompilation = true pd product uintx BaseFootPrintEstimate = 268435456 product intx BiasedLockingBulkRebiasThreshold = 20 product intx BiasedLockingBulkRevokeThreshold = 40 product intx BiasedLockingDecayTime = 25000 product intx BiasedLockingStartupDelay = 4000 product bool BindGCTaskThreadsToCPUs = false product bool BlockLayoutByFrequency = true C2 product intx BlockLayoutMinDiamondPercentage = 20 C2 product bool BlockLayoutRotateLoops = true C2 product bool BranchOnRegister = false C2 product bool BytecodeVerificationLocal = false product bool BytecodeVerificationRemote = true product bool C1OptimizeVirtualCallProfiling = true C1 product bool C1ProfileBranches = true C1 product bool C1ProfileCalls = true C1 product bool C1ProfileCheckcasts = true C1 product bool C1ProfileInlinedCalls = true C1 product bool C1ProfileVirtualCalls = true C1 product bool C1UpdateMethodData = true C1 product intx CICompilerCount := 4 product bool CICompilerCountPerCPU = true product bool CITime = false product bool CMSAbortSemantics = false product uintx CMSAbortablePrecleanMinWorkPerIteration = 100 product intx CMSAbortablePrecleanWaitMillis = 100 manageable uintx CMSBitMapYieldQuantum = 10485760 product uintx CMSBootstrapOccupancy = 50 product bool CMSClassUnloadingEnabled = true product uintx CMSClassUnloadingMaxInterval = 0 product bool CMSCleanOnEnter = true product bool CMSCompactWhenClearAllSoftRefs = true product uintx CMSConcMarkMultiple = 32 product bool CMSConcurrentMTEnabled = true product uintx CMSCoordinatorYieldSleepCount = 10 product bool CMSDumpAtPromotionFailure = false product bool CMSEdenChunksRecordAlways = true product uintx CMSExpAvgFactor = 50 product bool CMSExtrapolateSweep = false product uintx CMSFullGCsBeforeCompaction = 0 product uintx CMSIncrementalDutyCycle = 10 product uintx CMSIncrementalDutyCycleMin = 0 product bool CMSIncrementalMode = false product uintx CMSIncrementalOffset = 0 product bool CMSIncrementalPacing = true product uintx CMSIncrementalSafetyFactor = 10 product uintx CMSIndexedFreeListReplenish = 4 product intx CMSInitiatingOccupancyFraction = -1 product uintx CMSIsTooFullPercentage = 98 product double CMSLargeCoalSurplusPercent = 0.950000 product double CMSLargeSplitSurplusPercent = 1.000000 product bool CMSLoopWarn = false product uintx CMSMaxAbortablePrecleanLoops = 0 product intx CMSMaxAbortablePrecleanTime = 5000 product uintx CMSOldPLABMax = 1024 product uintx CMSOldPLABMin = 16 product uintx CMSOldPLABNumRefills = 4 product uintx CMSOldPLABReactivityFactor = 2 product bool CMSOldPLABResizeQuicker = false product uintx CMSOldPLABToleranceFactor = 4 product bool CMSPLABRecordAlways = true product uintx CMSParPromoteBlocksToClaim = 16 product bool CMSParallelInitialMarkEnabled = true product bool CMSParallelRemarkEnabled = true product bool CMSParallelSurvivorRemarkEnabled = true product uintx CMSPrecleanDenominator = 3 product uintx CMSPrecleanIter = 3 product uintx CMSPrecleanNumerator = 2 product bool CMSPrecleanRefLists1 = true product bool CMSPrecleanRefLists2 = false product bool CMSPrecleanSurvivors1 = false product bool CMSPrecleanSurvivors2 = true product uintx CMSPrecleanThreshold = 1000 product bool CMSPrecleaningEnabled = true product bool CMSPrintChunksInDump = false product bool CMSPrintEdenSurvivorChunks = false product bool CMSPrintObjectsInDump = false product uintx CMSRemarkVerifyVariant = 1 product bool CMSReplenishIntermediate = true product uintx CMSRescanMultiple = 32 product uintx CMSSamplingGrain = 16384 product bool CMSScavengeBeforeRemark = false product uintx CMSScheduleRemarkEdenPenetration = 50 product uintx CMSScheduleRemarkEdenSizeThreshold = 2097152 product uintx CMSScheduleRemarkSamplingRatio = 5 product double CMSSmallCoalSurplusPercent = 1.050000 product double CMSSmallSplitSurplusPercent = 1.100000 product bool CMSSplitIndexedFreeListBlocks = true product intx CMSTriggerInterval = -1 manageable uintx CMSTriggerRatio = 80 product intx CMSWaitDuration = 2000 manageable uintx CMSWorkQueueDrainThreshold = 10 product bool CMSYield = true product uintx CMSYieldSleepCount = 0 product uintx CMSYoungGenPerWorker = 67108864 pd product uintx CMS_FLSPadding = 1 product uintx CMS_FLSWeight = 75 product uintx CMS_SweepPadding = 1 product uintx CMS_SweepTimerThresholdMillis = 10 product uintx CMS_SweepWeight = 75 product bool CheckEndorsedAndExtDirs = false product bool CheckJNICalls = false product bool ClassUnloading = true product bool ClassUnloadingWithConcurrentMark = true product intx ClearFPUAtPark = 0 product bool ClipInlining = true product uintx CodeCacheExpansionSize = 65536 pd product uintx CodeCacheMinimumFreeSpace = 512000 product bool CollectGen0First = false product bool CompactFields = true product intx CompilationPolicyChoice = 3 product ccstrlist CompileCommand = product ccstr CompileCommandFile = product ccstrlist CompileOnly = product intx CompileThreshold = 10000 pd product bool CompilerThreadHintNoPreempt = true product intx CompilerThreadPriority = -1 product intx CompilerThreadStackSize = 0 pd product uintx CompressedClassSpaceSize = 1073741824 product uintx ConcGCThreads = 0 product intx ConditionalMoveLimit = 3 C2 pd product intx ContendedPaddingWidth = 128 product bool ConvertSleepToYield = true pd product bool ConvertYieldToSleep = false product bool CreateMinidumpOnCrash = false product bool CriticalJNINatives = true product bool DTraceAllocProbes = false product bool DTraceMethodProbes = false product bool DTraceMonitorProbes = false product bool Debugging = false product uintx DefaultMaxRAMFraction = 4 product intx DefaultThreadPriority = -1 product intx DeferPollingPageLoopCount = -1 product intx DeferThrSuspendLoopCount = 4000 product bool DeoptimizeRandom = false product bool DisableAttachMechanism = false product bool DisableExplicitGC = false product bool DisplayVMOutputToStderr = false product bool DisplayVMOutputToStdout = false product bool DoEscapeAnalysis = true C2 product bool DontCompileHugeMethods = true product bool DontYieldALot = false pd product ccstr DumpLoadedClassList = product bool DumpReplayDataOnError = true product bool DumpSharedSpaces = false product bool EagerXrunInit = false product intx EliminateAllocationArraySizeLimit = 64 C2 product bool EliminateAllocations = true C2 product bool EliminateAutoBox = true C2 product bool EliminateLocks = true C2 product bool EliminateNestedLocks = true C2 product intx EmitSync = 0 product bool EnableContended = true product bool EnableSharedLookupCache = true product bool EnableTracing = false product uintx ErgoHeapSizeLimit = 0 product ccstr ErrorFile = product ccstr ErrorReportServer = product double EscapeAnalysisTimeout = 20.000000 C2 product bool EstimateArgEscape = true product bool ExplicitGCInvokesConcurrent = false product bool ExplicitGCInvokesConcurrentAndUnloadsClasses = false product bool ExtendedDTraceProbes = false product ccstr ExtraSharedClassListFile = product bool FLSAlwaysCoalesceLarge = false product uintx FLSCoalescePolicy = 2 product double FLSLargestBlockCoalesceProximity = 0.990000 product bool FailOverToOldVerifier = true product bool FastTLABRefill = true product intx FenceInstruction = 0 ARCH product intx FieldsAllocationStyle = 1 product bool FilterSpuriousWakeups = true product ccstr FlightRecorderOptions = product bool ForceNUMA = false product bool ForceTimeHighResolution = false product intx FreqInlineSize = 325 pd product double G1ConcMarkStepDurationMillis = 10.000000 product uintx G1ConcRSHotCardLimit = 4 product uintx G1ConcRSLogCacheSize = 10 product intx G1ConcRefinementGreenZone = 0 product intx G1ConcRefinementRedZone = 0 product intx G1ConcRefinementServiceIntervalMillis = 300 product uintx G1ConcRefinementThreads = 0 product intx G1ConcRefinementThresholdStep = 0 product intx G1ConcRefinementYellowZone = 0 product uintx G1ConfidencePercent = 50 product uintx G1HeapRegionSize = 0 product uintx G1HeapWastePercent = 5 product uintx G1MixedGCCountTarget = 8 product intx G1RSetRegionEntries = 0 product uintx G1RSetScanBlockSize = 64 product intx G1RSetSparseRegionEntries = 0 product intx G1RSetUpdatingPauseTimePercent = 10 product intx G1RefProcDrainInterval = 10 product uintx G1ReservePercent = 10 product uintx G1SATBBufferEnqueueingThresholdPercent = 60 product intx G1SATBBufferSize = 1024 product intx G1UpdateBufferSize = 256 product bool G1UseAdaptiveConcRefinement = true product uintx GCDrainStackTargetSize = 64 product uintx GCHeapFreeLimit = 2 product uintx GCLockerEdenExpansionPercent = 5 product bool GCLockerInvokesConcurrent = false product uintx GCLogFileSize = 8192 product uintx GCPauseIntervalMillis = 0 product uintx GCTaskTimeStampEntries = 200 product uintx GCTimeLimit = 98 product uintx GCTimeRatio = 99 product uintx HeapBaseMinAddress = 2147483648 pd product bool HeapDumpAfterFullGC = false manageable bool HeapDumpBeforeFullGC = false manageable bool HeapDumpOnOutOfMemoryError = false manageable ccstr HeapDumpPath = manageable uintx HeapFirstMaximumCompactionCount = 3 product uintx HeapMaximumCompactionInterval = 20 product uintx HeapSizePerGCThread = 87241520 product bool IgnoreEmptyClassPaths = false product bool IgnoreUnrecognizedVMOptions = false product uintx IncreaseFirstTierCompileThresholdAt = 50 product bool IncrementalInline = true C2 product uintx InitialBootClassLoaderMetaspaceSize = 4194304 product uintx InitialCodeCacheSize = 2555904 pd product uintx InitialHeapSize := 266338304 product uintx InitialRAMFraction = 64 product uintx InitialSurvivorRatio = 8 product uintx InitialTenuringThreshold = 7 product uintx InitiatingHeapOccupancyPercent = 45 product bool Inline = true product ccstr InlineDataFile = product intx InlineSmallCode = 2000 pd product bool InlineSynchronizedMethods = true C1 product bool InsertMemBarAfterArraycopy = true C2 product intx InteriorEntryAlignment = 16 C2 pd product intx InterpreterProfilePercentage = 33 product bool JNIDetachReleasesMonitors = true product bool JavaMonitorsInStackTrace = true product intx JavaPriority10_To_OSPriority = -1 product intx JavaPriority1_To_OSPriority = -1 product intx JavaPriority2_To_OSPriority = -1 product intx JavaPriority3_To_OSPriority = -1 product intx JavaPriority4_To_OSPriority = -1 product intx JavaPriority5_To_OSPriority = -1 product intx JavaPriority6_To_OSPriority = -1 product intx JavaPriority7_To_OSPriority = -1 product intx JavaPriority8_To_OSPriority = -1 product intx JavaPriority9_To_OSPriority = -1 product bool LIRFillDelaySlots = false C1 pd product uintx LargePageHeapSizeThreshold = 134217728 product uintx LargePageSizeInBytes = 0 product bool LazyBootClassLoader = true product intx LiveNodeCountInliningCutoff = 40000 C2 product bool LogCommercialFeatures = false product intx LoopMaxUnroll = 16 C2 product intx LoopOptsCount = 43 C2 product intx LoopUnrollLimit = 60 C2 pd product intx LoopUnrollMin = 4 C2 product bool LoopUnswitching = true C2 product bool ManagementServer = false product uintx MarkStackSize = 4194304 product uintx MarkStackSizeMax = 536870912 product uintx MarkSweepAlwaysCompactCount = 4 product uintx MarkSweepDeadRatio = 1 product intx MaxBCEAEstimateLevel = 5 product intx MaxBCEAEstimateSize = 150 product uintx MaxDirectMemorySize = 0 product bool MaxFDLimit = true product uintx MaxGCMinorPauseMillis = 4294967295 product uintx MaxGCPauseMillis = 4294967295 product uintx MaxHeapFreeRatio = 100 manageable uintx MaxHeapSize := 4261412864 product intx MaxInlineLevel = 9 product intx MaxInlineSize = 35 product intx MaxJNILocalCapacity = 65536 product intx MaxJavaStackTraceDepth = 1024 product intx MaxJumpTableSize = 65000 C2 product intx MaxJumpTableSparseness = 5 C2 product intx MaxLabelRootDepth = 1100 C2 product intx MaxLoopPad = 11 C2 product uintx MaxMetaspaceExpansion = 5451776 product uintx MaxMetaspaceFreeRatio = 70 product uintx MaxMetaspaceSize = 4294901760 product uintx MaxNewSize := 1420296192 product intx MaxNodeLimit = 75000 C2 product uint64_t MaxRAM = 0 pd product uintx MaxRAMFraction = 4 product intx MaxRecursiveInlineLevel = 1 product uintx MaxTenuringThreshold = 15 product intx MaxTrivialSize = 6 product intx MaxVectorSize = 32 C2 product uintx MetaspaceSize = 21807104 pd product bool MethodFlushing = true product uintx MinHeapDeltaBytes := 524288 product uintx MinHeapFreeRatio = 0 manageable intx MinInliningThreshold = 250 product intx MinJumpTableSize = 10 C2 pd product uintx MinMetaspaceExpansion = 339968 product uintx MinMetaspaceFreeRatio = 40 product uintx MinRAMFraction = 2 product uintx MinSurvivorRatio = 3 product uintx MinTLABSize = 2048 product intx MonitorBound = 0 product bool MonitorInUseLists = false product intx MultiArrayExpandLimit = 6 C2 product bool MustCallLoadClassInternal = false product uintx NUMAChunkResizeWeight = 20 product uintx NUMAInterleaveGranularity = 2097152 product uintx NUMAPageScanRate = 256 product uintx NUMASpaceResizeRate = 1073741824 product bool NUMAStats = false product ccstr NativeMemoryTracking = off product bool NeedsDeoptSuspend = false pd product bool NeverActAsServerClassMachine = false pd product bool NeverTenure = false product uintx NewRatio = 2 product uintx NewSize := 88604672 product uintx NewSizeThreadIncrease = 5320 pd product intx NmethodSweepActivity = 10 product intx NmethodSweepCheckInterval = 5 product intx NmethodSweepFraction = 16 product intx NodeLimitFudgeFactor = 2000 C2 product uintx NumberOfGCLogFiles = 0 product intx NumberOfLoopInstrToAlign = 4 C2 product intx ObjectAlignmentInBytes = 8 lp64_product uintx OldPLABSize = 1024 product uintx OldPLABWeight = 50 product uintx OldSize := 177733632 product bool OmitStackTraceInFastThrow = true product ccstrlist OnError = product ccstrlist OnOutOfMemoryError = product intx OnStackReplacePercentage = 140 pd product bool OptimizeFill = true C2 product bool OptimizePtrCompare = true C2 product bool OptimizeStringConcat = true C2 product bool OptoBundling = false C2 pd product intx OptoLoopAlignment = 16 pd product bool OptoScheduling = false C2 pd product uintx PLABWeight = 75 product bool PSChunkLargeArrays = true product intx ParGCArrayScanChunk = 50 product uintx ParGCDesiredObjsFromOverflowList = 20 product bool ParGCTrimOverflow = true product bool ParGCUseLocalOverflow = false product uintx ParallelGCBufferWastePct = 10 product uintx ParallelGCThreads = 10 product bool ParallelGCVerbose = false product uintx ParallelOldDeadWoodLimiterMean = 50 product uintx ParallelOldDeadWoodLimiterStdDev = 80 product bool ParallelRefProcBalancingEnabled = true product bool ParallelRefProcEnabled = false product bool PartialPeelAtUnsignedTests = true C2 product bool PartialPeelLoop = true C2 product intx PartialPeelNewPhiDelta = 0 C2 product uintx PausePadding = 1 product intx PerBytecodeRecompilationCutoff = 200 product intx PerBytecodeTrapLimit = 4 product intx PerMethodRecompilationCutoff = 400 product intx PerMethodTrapLimit = 100 product bool PerfAllowAtExitRegistration = false product bool PerfBypassFileSystemCheck = false product intx PerfDataMemorySize = 32768 product intx PerfDataSamplingInterval = 50 product ccstr PerfDataSaveFile = product bool PerfDataSaveToFile = false product bool PerfDisableSharedMem = false product intx PerfMaxStringConstLength = 1024 product intx PreInflateSpin = 10 pd product bool PreferInterpreterNativeStubs = false pd product intx PrefetchCopyIntervalInBytes = 576 product intx PrefetchFieldsAhead = 1 product intx PrefetchScanIntervalInBytes = 576 product bool PreserveAllAnnotations = false product uintx PretenureSizeThreshold = 0 product bool PrintAdaptiveSizePolicy = false product bool PrintCMSInitiationStatistics = false product intx PrintCMSStatistics = 0 product bool PrintClassHistogram = false manageable bool PrintClassHistogramAfterFullGC = false manageable bool PrintClassHistogramBeforeFullGC = false manageable bool PrintCodeCache = false product bool PrintCodeCacheOnCompilation = false product bool PrintCommandLineFlags = false product bool PrintCompilation = false product bool PrintConcurrentLocks = false manageable intx PrintFLSCensus = 0 product intx PrintFLSStatistics = 0 product bool PrintFlagsFinal := true product bool PrintFlagsInitial = false product bool PrintGC = false manageable bool PrintGCApplicationConcurrentTime = false product bool PrintGCApplicationStoppedTime = false product bool PrintGCCause = true product bool PrintGCDateStamps = false manageable bool PrintGCDetails = false manageable bool PrintGCID = false manageable bool PrintGCTaskTimeStamps = false product bool PrintGCTimeStamps = false manageable bool PrintHeapAtGC = false product rw bool PrintHeapAtGCExtended = false product rw bool PrintHeapAtSIGBREAK = true product bool PrintJNIGCStalls = false product bool PrintJNIResolving = false product bool PrintOldPLAB = false product bool PrintOopAddress = false product bool PrintPLAB = false product bool PrintParallelOldGCPhaseTimes = false product bool PrintPromotionFailure = false product bool PrintReferenceGC = false product bool PrintSafepointStatistics = false product intx PrintSafepointStatisticsCount = 300 product intx PrintSafepointStatisticsTimeout = -1 product bool PrintSharedArchiveAndExit = false product bool PrintSharedDictionary = false product bool PrintSharedSpaces = false product bool PrintStringDeduplicationStatistics = false product bool PrintStringTableStatistics = false product bool PrintTLAB = false product bool PrintTenuringDistribution = false product bool PrintTieredEvents = false product bool PrintVMOptions = false product bool PrintVMQWaitTime = false product bool PrintWarnings = true product uintx ProcessDistributionStride
以上是关于jvm 性能调优工具之 jinfo命令详解的主要内容,如果未能解决你的问题,请参考以下文章