增加docker-compose容器的堆大小

时间:2019-09-18 17:20:00

标签: docker memory docker-compose

我在启动时在docker-compose日志中遇到此错误:

  

es02 |错误:[1]引导程序检查失败es02 | [1]:   初始堆大小[536870912]不等于最大堆大小   [2644508672];这可能会导致调整大小暂停,并阻止mlockall从   锁定整个堆

我的docker-compose.yml是:

version: '2.2'
services:
  kibana:
    depends_on:
      - es01
      - es02
    image: docker.elastic.co/kibana/kibana:7.3.1
    container_name: kibana
    ports:
      - 5601:5601
    environment:
      ELASTICSEARCH_HOSTS: http://es01:9200
      ELASTICSEARCH_URL: http://es01:9200
  es01:
    image: docker.elastic.co/elasticsearch/elasticsearch:7.3.1
    container_name: es01
    environment:
      - node.name=es01
      - discovery.seed_hosts=es02
      - cluster.initial_master_nodes=es01,es02
      - cluster.name=docker-cluster
      - bootstrap.memory_lock=true
      - "ES_JAVA_OPTS=-Xms512m -Xmx2524m"
    ulimits:
      memlock:
        soft: -1
        hard: -1
    volumes:
      - esdata01:/usr/share/elasticsearch/data
    ports:
      - 9200:9200
      - 9300:9300
  es02:
    image: docker.elastic.co/elasticsearch/elasticsearch:7.3.1
    container_name: es02
    environment:
      - node.name=es02
      - discovery.seed_hosts=es01
      - cluster.initial_master_nodes=es01,es02
      - cluster.name=docker-cluster
      - bootstrap.memory_lock=true
      - "ES_JAVA_OPTS=-Xms512m -Xmx2524m"
    ulimits:
      memlock:
        soft: -1
        hard: -1
    volumes:
      - esdata02:/usr/share/elasticsearch/data

volumes:
  esdata01:
    driver: local
  esdata02:
    driver: local

我知道导致问题的原因-这是因为我使用了-Xmx2524m ...如果我将其更改为-Xmx512m,则可以正常工作。是否有人知道我如何安全地增加最大堆大小?

1 个答案:

答案 0 :(得分:2)

同时增加-Xms-Xmx

将其设置为例如1G:

- "ES_JAVA_OPTS=-Xms1g -Xmx1g"