如何检查我的 ElasticSearch 进程是否正在使用压缩 oops?

如何检查我的 ElasticSearch 进程是否正在使用压缩 oops?

我想弄清楚是否需要调整当前正在运行的 ElasticSearch 集群。如何检查正在运行的 HotSpot 进程是否正在使用压缩 oop?

答案1

您可以使用集群节点信息 API 并检查using_compressed_ordinary_object_pointers字段中的字段jvm

例如

curl -XGET 'http://localhost:9200/_nodes'

或者

curl -XGET 'http://localhost:9200/_nodes/nodeId1'

或者更具体一点:

curl -XGET 'http://localhost:9200/_nodes/nodeId1,nodeId2/jvm?pretty'

回复

...
"jvm" : {
        "pid" : 14520,
        "version" : "1.8.0_121",
        "vm_name" : "OpenJDK 64-Bit Server VM",
        "vm_version" : "25.121-b13",
        "vm_vendor" : "Oracle Corporation",
        "start_time_in_millis" : 1485817021479,
        "mem" : {
          "heap_init_in_bytes" : 5368709120,
          "heap_max_in_bytes" : 5333843968,
          "non_heap_init_in_bytes" : 2555904,
          "non_heap_max_in_bytes" : 0,
          "direct_max_in_bytes" : 5333843968
        },
        "gc_collectors" : [ "ParNew", "ConcurrentMarkSweep" ],
        "memory_pools" : [ "Code Cache", "Metaspace", "Compressed Class Space", "Par Eden Space", "Par Survivor Space", "CMS Old Gen" ],
        "using_compressed_ordinary_object_pointers" : "true"
      },

...

答案2

如果你检查 ES 日志,它会告诉你。至少从 2.2.0 版本开始。

它会显示如下内容:

[2015-12-16 13:53:33,417][INFO ][env] [Illyana Rasputin] heap size [989.8mb], compressed ordinary object pointers [true]

这是大概一半的概述文章,其中顺便提一下,其中包含大量有关调整 ES 实例/节点内存大小的有用信息。

相关内容