我有一台配备8GB RAM的生产服务器,想要在服务器上使用Docker Compose托管Elastic、Logstash和Kibana。
请问每个容器所需的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"
等
所以我想知道... 对于上面的docker-compose文件,我应该允许哪些java堆大小/内存限制,并如何更新compose文件以包含它。
我的想法是: 4GB用于elastic 2GB用于logstash 1GB用于Kibana
保留1GB供主机使用
ES_JAVA_OPTS=-Xms512m -Xmx512m
。此外,这只是对问题的评论,而不是答案。 - Robbo_UK