私は8GBのRAMを搭載した本番サーバーを持っています。サーバー上でelastic、logstash、kibanaをホストしようとしています。 dockercomposeを使用します。
推奨されるものは何ですかJava各コンテナのメモリサイズのサイズ。これをどのように構成すればよいですか。
私のdocker-compose
は次のようになります
---
version: '3'
services
kibana:
build:
context: kibana/
container_name: kibana
volumes:
- ./kibana/config/:/usr/share/kibana/config:ro
networks: ['elk']
depends_on:
- elasticsearch
restart: always
elasticsearch:
build:
context: elasticsearch/
container_name: elasticsearch
networks: ['elk']
volumes:
- ./elastic-data:/usr/share/elasticsearch/data
- ./elasticsearch/config/elasticsearch.yml:/usr/share/elasticsearch/config/elasticsearch.yml:ro
restart: always
ulimits:
memlock:
soft: -1
hard: -1
nofile:
soft: 65536
hard: 65536
environment:
- cluster.name=es-docker
- node.name=node1
- bootstrap.memory_lock=true
logstash:
build:
context: logstash/
container_name: logstash
volumes:
- ./logstash/pipeline/logstash.conf:/usr/share/logstash/pipeline/logstash.conf:ro
networks: ['elk']
ports:
- "5044:5044"
depends_on:
- elasticsearch
restart: always
networks: {elk: {}}
- "ES_Java_OPTS=-Xms512m -Xmx512m"
などのいくつかの設定を見て、弾力性のあるdocumentatinoimを検索しています
だから私が知りたいのは..上記のdockerの場合-Javaヒープサイズ/メモリ制限に対してどのような設定を許可する必要がありますか?また、それを含めるようにcomposeを更新するにはどうすればよいですか?.
私の考えは、エラスティックの場合は4GB、ログスタッシュの場合は2GB、キバナの場合は1GBです。
ホスト用に1GB予約済み
上記のコメントでの議論に続いて、サイズが正しいと仮定すると、ここで行う必要があるのは、議論されているように各Dockerコンテナーのサイズを決定することです。 Swarmを使用していないため、v3形式を使用する必要はなく、v2で十分であることに注意してください。したがって、以下のversion
行を変更しました。また、各コンテナにmem_limit
を追加し、environment
コンテナのelasticsearch
セクションにヒープサイズを追加しました。
version: '2.3'
services
kibana:
build:
context: kibana/
container_name: kibana
volumes:
- ./kibana/config/:/usr/share/kibana/config:ro
networks: ['elk']
depends_on:
- elasticsearch
restart: always
mem_limit: 1g
elasticsearch:
build:
context: elasticsearch/
container_name: elasticsearch
networks: ['elk']
volumes:
- ./elastic-data:/usr/share/elasticsearch/data
- ./elasticsearch/config/elasticsearch.yml:/usr/share/elasticsearch/config/elasticsearch.yml:ro
restart: always
ulimits:
memlock:
soft: -1
hard: -1
nofile:
soft: 65536
hard: 65536
environment:
- cluster.name=es-docker
- node.name=node1
- bootstrap.memory_lock=true
- "ES_Java_OPTS=-Xms2g -Xmx2g"
mem_limit: 4g
logstash:
build:
context: logstash/
container_name: logstash
volumes:
- ./logstash/pipeline/logstash.conf:/usr/share/logstash/pipeline/logstash.conf:ro
networks: ['elk']
ports:
- "5044:5044"
depends_on:
- elasticsearch
restart: always
mem_limit: 2g
environment:
- "LS_Java_OPTS=-Xmx1g -Xms1g"
networks: {elk: {}}