簡體   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