繁体   English   中英

如何在 docker 中限制 elasticsearch cpu 和内存使用量?

[英]how to throttle elasticsearch cpu and memory usage in docker?

  es01:
    env_file: .env
    image: docker.elastic.co/elasticsearch/elasticsearch:7.6.2
    container_name: ${DOCKER_CONTAINER_ES_NAME}
    restart: always
    environment:
      - node.name=es01
      - cluster.name=es-docker-cluster
      - cluster.initial_master_nodes=es01
      - bootstrap.memory_lock=true
      - action.auto_create_index=+*
      - "ES_JAVA_OPTS=-Xms2g -Xmx2g"
    ulimits:
      nproc: 65535
      nofile:
        soft: 65535
        hard: 65535
      memlock:
        soft: -1
        hard: -1
    volumes:
      - ./data01:/usr/share/elasticsearch/data
    ports:
      - 127.0.0.1:${DOCKER_CONTAINER_ES_PORT}:9200
    networks:
      - ${DOCKER_NETWORK_NAME}

我从某个地方复制了这个,但是我所有的 elasticsearch 容器都阻塞了 cpu。

Docker Compose 文档建议设置deploy.resources.limits以限制 CPU 和内存使用。 这是 Docker Compose 规范第 3 版的新功能,似乎特定于使用 Docker swarm。 请参阅下面的使用规范版本 2 的方法,该方法并非特定于 swarm。

--- 
es01: 
  container_name: "${DOCKER_CONTAINER_ES_NAME}"
  env_file: .env
  environment: 
    - node.name=es01
    - cluster.name=es-docker-cluster
    - cluster.initial_master_nodes=es01
    - bootstrap.memory_lock=true
    - action.auto_create_index=+*
    - "ES_JAVA_OPTS=-Xms2g -Xmx2g"
  image: "docker.elastic.co/elasticsearch/elasticsearch:7.6.2"
  networks: 
    - "${DOCKER_NETWORK_NAME}"
  ports: 
    - "127.0.0.1:${DOCKER_CONTAINER_ES_PORT}:9200"
  deploy:
    resources: 
      limits: 
        cpus: "0.50"  # Use at most 50% of one CPU core
        memory: 50M  # Use at most 50 MB of RAM
  restart: always
  ulimits: 
    memlock: 
      hard: -1
      soft: -1
    nofile: 
      hard: 65535
      soft: 65535
    nproc: 65535
  volumes: 
    - "./data01:/usr/share/elasticsearch/data"

使用Docker Compose 规范的第 2 版,您可以使用以下内容(取自文档):

cpu_count: 2
cpu_percent: 50
cpus: 0.5
cpu_shares: 73
cpu_quota: 50000
cpu_period: 20ms
cpuset: 0,1

mem_limit: 1000000000
memswap_limit: 2000000000
mem_reservation: 512m

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM