这就是我配置jvm.options的方式(我还重新启动了elasticsearch)
cat /etc/elasticsearch/jvm.options
## JVM configuration
-Xms4096m
-Xmx4096m
-XX:+UseConcMarkSweepGC
-XX:CMSInitiatingOccupancyFraction=75
-XX:+UseCMSInitiatingOccupancyOnly
-XX:+DisableExplicitGC
-XX:+AlwaysPreTouch
-server
-Djava.awt.headless=true
-Dfile.encoding=UTF-8
-Djna.nosys=true
-Dio.netty.noUnsafe=true
-Dio.netty.noKeySetOptimization=true
-Dlog4j.shutdownHookEnabled=false
-Dlog4j2.disable.jmx=true
-Dlog4j.skipJansi=true
-XX:+HeapDumpOnOutOfMemoryError
但是当我检查堆大小时,我发现它设置为 2gig?
java -XX:+PrintFlagsFinal -version | grep -iE 'HeapSize|PermSize|ThreadStackSize'
intx CompilerThreadStackSize = 0 {pd product}
uintx ErgoHeapSizeLimit = 0 {product}
uintx HeapSizePerGCThread = 87241520 {product}
uintx InitialHeapSize := 125829120 {product}
uintx LargePageHeapSizeThreshold = 134217728 {product}
uintx MaxHeapSize := 1998585856 {product}
intx ThreadStackSize = 1024 {pd product}
intx VMThreadStackSize = 1024 {pd product}
openjdk version "1.8.0_121"
为什么最初的堆大小不同,它们应该是相同的。
最佳答案
jinfo <pid>
可用于获取有关正在运行的 JVM 的所有详细信息。
关于java - 未应用elasticsearch jvm配置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43266785/