检查Elasticsearch堆大小

时间:2015-08-19 15:41:32

标签: c# .net elasticsearch

如何检查分配给Elasticsearch引擎的堆大小,有没有办法使用URL API检查它?我可以使用NEST进行检查吗?

由于

4 个答案:

答案 0 :(得分:4)

使用GET _nodes/stats

然后在return / jvm / mem / heap_committed_in_bytes中查看以下内容

答案 1 :(得分:2)

在集群环境中,堆设置可以查询为:

curl -sS  "localhost:9200/_cat/nodes?h=heap*&v"

例如:

curl -sS  "localhost:9200/_cat/nodes?h=heap*&v"
heap.current heap.percent heap.max
     321.1mb           32  989.8mb
     424.1mb           42  989.8mb
     280.3mb           28  989.8mb

这也可以从ps结果中进行检查,尽管它只会说明最小-最大值。

~#ps aux | grep --color=auto -i Xms
elastic  6020  0.0  0.0  12788   936 pts/4    S+   04:24   0:00 grep --color=auto -i Xms elastic+  7218
0.6  9.5 5001220 1565112 ?     Ssl  Jun24   5:14 /usr/bin/java -Xms1g -Xmx1g -XX:+UseConcMarkSweepGC -XX:CMSInitiatingOccupancyFraction=75 -XX:+UseCMSInitiatingOccupancyOnly -XX:+AlwaysPreTouch -Xss1m -Djava.awt.headless=true -Dfile.encoding=UTF-8 -Djna.nosys=true -XX:-OmitStackTraceInFastThrow -Dio.netty.noUnsafe=true -Dio.netty.noKeySetOptimization=true -Dio.netty.recycler.maxCapacityPerThread=0 -Dlog4j.shutdownHookEnabled=false -Dlog4j2.disable.jmx=true -Djava.io.tmpdir=/tmp/elasticsearch.WoiU4NhH -XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=/var/lib/elasticsearch -XX:ErrorFile=/var/log/elasticsearch/hs_err_pid%p.log -XX:+PrintGCDetails -XX:+PrintGCDateStamps -XX:+PrintTenuringDistribution -XX:+PrintGCApplicationStoppedTime -Xloggc:/var/log/elasticsearch/gc.log -XX:+UseGCLogFileRotation -XX:NumberOfGCLogFiles=32 -XX:GCLogFileSize=64m -Xms1g -Xmx1g -Des.path.home=/usr/share/elasticsearch -Des.path.conf=/etc/elasticsearch -Des.distribution.flavor=default -Des.distribution.type=deb -cp /usr/share/elasticsearch/lib/* org.elasticsearch.bootstrap.Elasticsearch -p /var/run/elasticsearch/elasticsearch.pid --quiet

其中-Xms是minheap,而-Xmx是maxheap。

答案 2 :(得分:0)

这是一个新帐户,因此我无法对jhilden的答案发表评论。他的回答是正确的,但要回答你的评论,我使用Postman这是一个Chrome应用程序。它非常易于使用,在使用Elasticsearch时非常适合我。

将以下内容放入邮递员并点击发送就可以了!

  

http://localhost:9200/_nodes/stats

查看结果并查找“jvm”块。以下是我在默认的elasticsearch设置上运行时返回的内容:

"jvm": {
    "timestamp": 1477474766408,
    "uptime_in_millis": 1309586,
    "mem": {
      **"heap_used_in_bytes": 87134248**,
      "heap_used_percent": 8,
      "heap_committed_in_bytes": 259522560,
      "heap_max_in_bytes": 1038876672,
      "non_heap_used_in_bytes": 56166992,
      "non_heap_committed_in_bytes": 57348096,

答案 3 :(得分:-1)

根据在线documentation,默认堆大小为1 Gb,除非您在环境变量[ES_HEAP_SIZE]中明确提及

  

Elasticsearch的默认安装配置为1 GB   堆。对于几乎每个部署,这个数字都太小了。   如果您使用的是默认堆值,则可能是您的群集   配置不正确。

     

在Elasticsearch中有两种方法可以更改堆大小。该   最简单的方法是设置一个名为ES_HEAP_SIZE的环境变量。什么时候   服务器进程启动后,它将读取此环境变量和   相应地设置堆。例如,您可以通过   命令行如下:

     

export ES_HEAP_SIZE = 10g或者,您可以传入堆大小   启动进程时通过命令行参数,如果是的话   更容易设置:

     

./ bin / elasticsearch -Xmx10g -Xms10g

     

确保min(Xms)和max(Xmx)大小相同以防止   从运行时调整大小的堆,这是一个非常昂贵的过程。

     

通常,首选设置ES_HEAP_SIZE环境变量   过度设置显式-Xmx和-Xms值。