博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
JVM参数---常用参数配置
阅读量:6997 次
发布时间:2019-06-27

本文共 4053 字,大约阅读时间需要 13 分钟。

hot3.png

jmx启动参数

java -jar -Dcom.sun.management.jmxremote.port=1090 \-Dcom.sun.management.jmxremote.ssl=false -Dcom.sun.management.jmxremote.authenticate=false \-Djava.rmi.server.hostname=192.168.1.116 frbao-publicity-1.0.0.jar

远程debug启动参数

-Xdebug -Xrunjdwp:server=y,transport=dt_socket,address=8000,suspend=n

内存和线程栈相关参数

指定堆内存配置启动参数:

-Xms128m -Xmx256m

设置永久代(Jdk8去除,替换为metaspace)内存启动参数:

-XX:MaxPermSize=256m

指定堆内存溢出生成文件启动参数:

-XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=/opt/logs/hpdump.href

-HPROF: Heap and CPU 抽样代理(JVMTI Demonstration Code)

java -agentlib:hprof=help

jmap生成堆内存快照命令(举例5012为jpid):

jmap -dump:format=b,file=/opt/logs/jmap5012.href -F 5012

jtack生成堆栈快照命令(举例5012为jpid):

jstack -F 5012 > jt5012.txt

GC日志

启动打印配置启动参数:

-XX:+PrintCommandLineFlags

指定打印gc日志启动参数:

-XX:+PrintGCDetails -XX:+PrintGCTimeStamps -Xloggc:/opt/logs/gc.log

开启的GC方式为ParallelGC(默认)

-XX:+UseParallelGC
[root@base embed-tomcat-publicity]# java -versionopenjdk version "1.8.0_91"OpenJDK Runtime Environment (build 1.8.0_91-b14)OpenJDK 64-Bit Server VM (build 25.91-b14, mixed mode)

JVM参数打印

查看默认参数设置

-XX:+PrintFlagsInitial
uintx SurvivorRatio                            = 8                                   {product}uintx NewRatio                                 = 2                                   {product}bool UseParallelOldGC                          = true                                {product}bool UseSerialGC                               = false                               {product} bool UseParNewGC                               = false                               {product}bool UseConcMarkSweepGC                        = false                               {product}bool UseG1GC                                   = false                               {product}

查看结果参数设置(包括默认参数和被用户或者JVM设置的参数)

-XX:+UnlockExperimentalVMOptions -XX:+UnlockDiagnosticVMOptions -XX:+PrintFlagsFinal

查看“:=”被用户或者JVM的参数设置

[root@base embed-tomcat-publicity]# java -XX:+PrintFlagsFinal and -XX:+PrintFlagsInitial | grep :intx CICompilerCount                          := 3                                   {product}uintx InitialHeapSize                         := 130023424                           {product}uintx MaxHeapSize                             := 2065694720                          {product}uintx MaxNewSize                              := 688390144                           {product}uintx MinHeapDeltaBytes                       := 524288                              {product}uintx NewSize                                 := 42991616                            {product}uintx OldSize                                 := 87031808                            {product}bool PrintFlagsFinal                          := true                                {product}bool UseCompressedClassPointers               := true                                {lp64_product}bool UseCompressedOops                        := true                                {lp64_product}bool UseParallelGC                            := true                                {product}

 

 

 

参考资料:

让我们现在就了解一下新参数的输出。以 -client 作为参数的 -XX:+PrintFlagsFinal   的结果是一个按字母排序的590个参数表格(注意,每个release版本参数的数量会不一样)

$ java -client -XX:+PrintFlagsFinal Benchmark[Global flags]uintx AdaptivePermSizeWeight               = 20               {product}uintx AdaptiveSizeDecrementScaleFactor     = 4                {product}uintx AdaptiveSizeMajorGCDecayTimeScale    = 10               {product}uintx AdaptiveSizePausePolicy              = 0                {product}[...]uintx YoungGenerationSizeSupplementDecay   = 8                {product}uintx YoungPLABSize                        = 4096             {product} bool ZeroTLAB                             = false            {product} intx hashCode                             = 0                {product}

(校对注:你可以尝试在命令行输入上面的命令,亲自实现下)

表格的每一行包括五列,来表示一个XX参数。第一列表示参数的数据类型,第二列是名称,第四列为值,第五列是参数的类别。第三列”=”表示第四列是参数的默认值,而”:=” 表明了参数被用户或者JVM赋值了。

-Djava.rmi.server.hostname:这个是配置server的IP的,要使用server的IP最好在机器上先用hostname –i看一下IP是不是机器本身的IP,如果是127.0.0.1的话要改一下

转载于:https://my.oschina.net/u/914290/blog/698388

你可能感兴趣的文章