도커만 봤을 때는.. 메모리 설정 안 해도 된다. 일반적인 도커 메모리 설정은 unlimited이다.
$ cat /sys/fs/cgroup/memory/system.slice/docker.service/memory.stat
hierarchical_memory_limit 9223372036854771712
hierarchical_memsw_limit 9223372036854771712
그런데, 왜 도커 메모리로 인해 도커가 죽는 일이 발생하기도 한다.
바로 그것은 도커 메모리가 이슈가 아니라 도커 컨테이너의 애플리케이션이 이슈인 경우가 있다.
예를 들면,
다만, 일래스틱서치는 mmapfs를 사용하기에 vm 메모리 설정을 해야 한다. mmap은 매핑된 파일의 크기와 동일한 프로세스에서 사용 가능한 가상 메모리 주소 공간의 일부를 사용하는 형태이다(루씬의 MMapDirectory를 사용)
그래서 운영체제 캐시 없이 바로 루신 인덱스에서 파일을 읽으면 빠르기 때문인데요. 이게 도커에 미치는 영향이다.
참고 자료
https://www.elastic.co/guide/en/elasticsearch/reference/current/vm-max-map-count.html
http://blog.thetaphi.de/2012/07/use-lucenes-mmapdirectory-on-64bit.html
http://jprante.github.io/lessons/2012/07/26/Mmap-with-Lucene.html
'docker' 카테고리의 다른 글
[docker] docker 설치 장비에서 proxy 설정하기 (0) | 2019.07.09 |
---|---|
[docker-compose] 특정 컨테이너 재시작 하기 (0) | 2019.04.17 |
[docker] WARNING: Your kernel does not support swap limit capabilities. Limitation discarded. WARNING: No memory limit support WARNING: No swap limit support 에러 해결하기 (0) | 2019.02.18 |
[docker] jenkins - local time으로 빌드 시간 (0) | 2018.09.18 |
docker inspect 커맨드 (0) | 2018.09.14 |