How to change Elasticsearch max memory size

后端 未结 11 728
时光取名叫无心
时光取名叫无心 2020-11-30 16:57

I have an Apache server with a default configuration of Elasticsearch and everything works perfectly, except that the default configuration has a max size of 1GB.

I

相关标签:
11条回答
  • 2020-11-30 17:42

    If you use windows server, you can change Environment Variable, restart server to apply new Environment Value and start Elastic Service. More detail in Install Elastic in Windows Server

    0 讨论(0)
  • 2020-11-30 17:45

    If you use the service wrapper provided in Elasticsearch's Github repository, found at https://github.com/elasticsearch/elasticsearch-servicewrapper, then the conf file at elasticsearch-servicewrapper / service / elasticsearch.conf controls memory settings. At the top of elasticsearch.conf is a parameter:

    set.default.ES_HEAP_SIZE=1024
    

    Just reduce this parameter, say to "set.default.ES_HEAP_SIZE=512", to reduce Elasticsearch's allotted memory.

    Note that if you use the elasticsearch-wrapper, the ES_HEAP_SIZE provided in elasticsearch.conf OVERRIDES ALL OTHER SETTINGS. This took me a bit to figure out, since from the documentation, it seemed that heap memory could be set from elasticsearch.yml.

    If your service wrapper settings are set somewhere else, such as at /etc/default/elasticsearch as in James's example, then set the ES_HEAP_SIZE there.

    0 讨论(0)
  • 2020-11-30 17:46

    Instructions for ubuntu 14.04:

    sudo vim /etc/init.d/elasticsearch

    Set

    ES_HEAP_SIZE=512m

    then in:

    sudo vim /etc/elasticsearch/elasticsearch.yml

    Set:

    bootstrap.memory_lock: true

    There are comments in the files for more info

    0 讨论(0)
  • 2020-11-30 17:49

    Updated on Nov 24, 2016: Elasticsearch 5 apparently has changed the way to configure the JVM. See this answer here. The answer below still applies to versions < 5.

    tirdadc, thank you for pointing this out in your comment below.


    I have a pastebin page that I share with others when wondering about memory and ES. It's worked OK for me: http://pastebin.com/mNUGQCLY. I'll paste the contents here as well:

    References:

    https://github.com/grigorescu/Brownian/wiki/ElasticSearch-Configuration http://www.elasticsearch.org/guide/reference/setup/installation/

    Edit the following files to modify memory and file number limits. These instructions assume Ubuntu 10.04, may work on later versions and other distributions/OSes. (Edit: This works for Ubuntu 14.04 as well.)

    /etc/security/limits.conf:

    elasticsearch - nofile 65535
    elasticsearch - memlock unlimited
    

    /etc/default/elasticsearch (on CentOS/RH: /etc/sysconfig/elasticsearch ):

    ES_HEAP_SIZE=512m
    MAX_OPEN_FILES=65535
    MAX_LOCKED_MEMORY=unlimited
    

    /etc/elasticsearch/elasticsearch.yml:

    bootstrap.mlockall: true
    
    0 讨论(0)
  • 2020-11-30 17:53

    Previous answers were insufficient in my case, probably because I'm on Debian 8, while they were referred to some previous distribution.

    On Debian 8 modify the service script normally place in /usr/lib/systemd/system/elasticsearch.service, and add Environment=ES_HEAP_SIZE=8G just below the other "Environment=*" lines.

    Now reload the service script with systemctl daemon-reload and restart the service. The job should be done!

    0 讨论(0)
  • 2020-11-30 17:55

    If you installed ES using the RPM/DEB packages as provided (as you seem to have), you can adjust this by editing the init script (/etc/init.d/elasticsearch on RHEL/CentOS). If you have a look in the file you'll see a block with the following:

    export ES_HEAP_SIZE
    export ES_HEAP_NEWSIZE
    export ES_DIRECT_SIZE
    export ES_JAVA_OPTS
    export JAVA_HOME
    

    To adjust the size, simply change the ES_HEAP_SIZE line to the following:

    export ES_HEAP_SIZE=xM/xG
    

    (where x is the number of MB/GB of RAM that you would like to allocate)

    Example:

    export ES_HEAP_SIZE=1G
    

    Would allocate 1GB.

    Once you have edited the script, save and exit, then restart the service. You can check if it has been correctly set by running the following:

    ps aux | grep elasticsearch
    

    And checking for the -Xms and -Xmx flags in the java process that returns:

    /usr/bin/java -Xms1G -Xmx1G
    

    Hope this helps :)

    0 讨论(0)
提交回复
热议问题