如何检查分配给Elasticsearch引擎的堆大小,有没有办法使用URL API检查它?我可以使用NEST进行检查吗?
由于
答案 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时非常适合我。
将以下内容放入邮递员并点击发送就可以了!
查看结果并查找“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值。