elasticsearch,ram,Memory,elasticsearch,Ram" /> elasticsearch,ram,Memory,elasticsearch,Ram" />

Memory Elasticsearch内存问题-ES进程占用所有RAM

Memory Elasticsearch内存问题-ES进程占用所有RAM,memory,elasticsearch,ram,Memory,elasticsearch,Ram,我们的生产Elasticsearch集群出现了一个问题,随着时间的推移,Elasticsearch似乎在消耗每台服务器上的所有RAM。每个框有128GB的RAM,因此我们运行两个实例,为JVM堆为每个实例分配30GB。剩余的68G留给操作系统和Lucene。上周我们重新启动了每台服务器,每个Elasticsearch进程都使用了24%的RAM,启动了RAM。现在已经快一周了,每个Elasticsearch实例的内存消耗已经上升到40%左右。我附上了我们的配置文件,希望有人能够帮助我们找出为什么E

我们的生产Elasticsearch集群出现了一个问题,随着时间的推移,Elasticsearch似乎在消耗每台服务器上的所有RAM。每个框有128GB的RAM,因此我们运行两个实例,为JVM堆为每个实例分配30GB。剩余的68G留给操作系统和Lucene。上周我们重新启动了每台服务器,每个Elasticsearch进程都使用了24%的RAM,启动了RAM。现在已经快一周了,每个Elasticsearch实例的内存消耗已经上升到40%左右。我附上了我们的配置文件,希望有人能够帮助我们找出为什么Elasticsearch的增长速度超过了我们为内存利用率设置的限制

目前,我们正在运行ES 1.3.2,但将在下周的下一版本中升级到1.4.2

以下是重新启动后的顶部视图(为了清晰起见,删除了额外字段):

今天有一个:

elasticserach-0.yml:

下面是/etc/sysconfig/elasticsearch-0:

请让我知道,如果有任何其他数据,我可以提供。提前感谢您的帮助


您看到的不是堆爆炸,堆将始终受到您在配置中设置的限制。free-m和top报告与操作系统相关的使用情况,因此那里的使用很可能是操作系统缓存FS调用

这不会导致java OOM


如果您遇到了JavaOOM,这与java堆的空间不足直接相关,那么还有其他原因。您的日志可能会提供一些相关信息。

不清楚。你的系统真的没有内存了吗?它有,这就是促使我们重新启动集群中的节点的原因。我们到处都是OOM错误和直接内存错误。。。现在它们已经达到80%,我们还没有得到错误,但我想知道如何防止这两个进程消耗100%的RAM。您能运行free-m并将结果添加到您的问题中吗?您是指JVM OOM异常还是对Linux OOM killer的调用?添加到原始消息中的输出。虽然我在每个节点上做了一次滚动重启,以避免周末出现任何意外。面临同样的问题。你找到解决办法了吗?我完全同意你的说法,堆应该在我设定的范围内。问题是如何防止操作系统缓存如此多的FS调用。有没有办法绑定它,这样它就可以刷新并且不会开始杀死我的集群?令人困惑的是,根据TOP的说法,这个内存正被elasticsearch过程消耗掉。。。有没有办法告诉整个ES进程在某个点停止消费,而不仅仅是堆?
  PID USER       %MEM    TIME+  
 2178 elastics   24.1   1:03.49 
 2197 elastics   24.3   1:07.32 
 PID USER       %MEM    TIME+  
2178 elastics   40.5   2927:50 
2197 elastics   40.1   3000:44 
cluster.name: PROD  
node.name: "PROD6-0"  
node.master: true  
node.data: true 
node.rack: PROD6
cluster.routing.allocation.awareness.force.rack.values:
PROD4,PROD5,PROD6,PROD7,PROD8,PROD9,PROD10,PROD11,PROD12
cluster.routing.allocation.awareness.attributes: rack
node.max_local_storage_nodes: 2  
path.data: /es_data1  
path.logs:/var/log/elasticsearch  
bootstrap.mlockall: true  
transport.tcp.port:9300  
http.port: 9200  
http.max_content_length: 400mb
gateway.recover_after_nodes: 17  
gateway.recover_after_time: 1m
gateway.expected_nodes: 18
cluster.routing.allocation.node_concurrent_recoveries: 20
indices.recovery.max_bytes_per_sec: 200mb
discovery.zen.minimum_master_nodes: 10  
discovery.zen.ping.timeout: 3s
discovery.zen.ping.multicast.enabled: false
discovery.zen.ping.unicast.hosts: XXX
index.search.slowlog.threshold.query.warn: 10s
index.search.slowlog.threshold.query.info: 5s
index.search.slowlog.threshold.query.debug: 2s
index.search.slowlog.threshold.fetch.warn: 1s
index.search.slowlog.threshold.fetch.info: 800ms
index.search.slowlog.threshold.fetch.debug: 500ms
index.indexing.slowlog.threshold.index.warn: 10s
index.indexing.slowlog.threshold.index.info: 5s
index.indexing.slowlog.threshold.index.debug: 2s
monitor.jvm.gc.young.warn: 1000ms  
monitor.jvm.gc.young.info: 700ms
monitor.jvm.gc.young.debug: 400ms  
monitor.jvm.gc.old.warn: 10s
monitor.jvm.gc.old.info: 5s  
monitor.jvm.gc.old.debug: 2s
action.auto_create_index: .marvel-*  
action.disable_delete_all_indices: true  
indices.cache.filter.size: 10%  
index.refresh_interval: -1
threadpool.search.type: fixed  
threadpool.search.size: 48
threadpool.search.queue_size: 10000000
cluster.routing.allocation.cluster_concurrent_rebalance: 6
indices.store.throttle.type: none  
index.reclaim_deletes_weight: 4.0
index.merge.policy.max_merge_at_once: 5
index.merge.policy.segments_per_tier: 5
marvel.agent.exporter.es.hosts: ["1.1.1.1:9200","1.1.1.1:9200"]
marvel.agent.enabled: true  
marvel.agent.interval: 30s
script.disable_dynamic: false
# Directory where the Elasticsearch binary distribution resides
ES_HOME=/usr/share/elasticsearch
# Heap Size (defaults to 256m min, 1g max)
ES_HEAP_SIZE=30g
# Heap new generation
#ES_HEAP_NEWSIZE=
# max direct memory
#ES_DIRECT_SIZE=
# Additional Java OPTS
#ES_JAVA_OPTS=
# Maximum number of open files
MAX_OPEN_FILES=65535
# Maximum amount of locked memory
MAX_LOCKED_MEMORY=unlimited
# Maximum number of VMA (Virtual Memory Areas) a process can own
MAX_MAP_COUNT=262144
# Elasticsearch log directory
LOG_DIR=/var/log/elasticsearch
# Elasticsearch data directory
DATA_DIR=/es_data1
# Elasticsearch work directory
WORK_DIR=/tmp/elasticsearch
# Elasticsearch conf directory
CONF_DIR=/etc/elasticsearch
# Elasticsearch configuration file (elasticsearch.yml)
CONF_FILE=/etc/elasticsearch/elasticsearch-0.yml
# User to run as, change this to a specific elasticsearch user if possible
# Also make sure, this user can write into the log directories in case you change them
# This setting only works for the init script, but has to be configured separately for systemd startup
ES_USER=elasticsearch
# Configure restart on package upgrade (true, every other setting will lead to not restarting)
#RESTART_ON_UPGRADE=true
            total       used       free     shared    buffers     cached
Mem:        129022     119372       9650          0        219      46819
-/+ buffers/cache:      72333      56689
Swap:        28603          0      28603