【问题标题】:elasticsearch jvm config not being appliedelasticsearch jvm配置未应用
【发布时间】:2017-09-02 04:03:31
【问题描述】:

这就是我配置 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

但是当我检查我的堆大小时,我发现它设置为 2gigs?

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"

为什么最初的堆大小不同,它们应该是相同的。

【问题讨论】:

  • 执行 java -XX:+PrintFlagsFinal 不会给你 es 的最终标志,而是一个新启动的 jvm 实例,它对 jvm 选项文件一无所知。
  • 如何确认 ES 使用了正确的堆大小?
  • 如果你可以看到它的日志(stdout),添加XX:+PrintFlagsFinal到你的jvm.options应该在es启动时打印它们。或者可能:stackoverflow.com/questions/5317152/…
  • "jps -lvm" 做到了!谢谢。我能够确认它实际上是以我配置的堆大小运行的。
  • 您可以将 jps -lvm 标记为答案以便我接受吗?这 100% 回答了我的问题

标签: java elasticsearch centos jvm elastic-stack


【解决方案1】:

jinfo <pid> 可用于获取有关正在运行的 JVM 的所有详细信息。

【讨论】:

  • 不幸的是,它显示:Caused by: sun.jvm.hotspot.debugger.DebuggerException: Can't attach to the process: ptrace(PTRACE_ATTACH, ..) failed for 13556: Operation not permitted
猜你喜欢
  • 1970-01-01
  • 2020-04-04
  • 2022-01-20
  • 2010-11-27
  • 2020-07-03
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多