목차

Elastic Search

최대 색인 수

노드 구성

Sharding Routing

Routing 강제

라우팅을 강제할 수 있다. 라우팅 옵션 없이는 인덱싱 불가.

"mappings": {
  "[indexname]": {
    "_routing": {
      "required": true
    }
  }
}

Cluster 관리

Docker로 띄우면서 Clustering 할 때

Docker로 띄울 때 옵션

Docker run 시에 다음 옵션을 추가해야 한다.

# JVM Heap Swap 방지 설정이 돼 있을 때 아래 옵션을 줘서 실행해야 한다. (bootstrap.mlockall: true)
# --cap-add=IPC_LOCK --ulimit memlock=-1:-1
docker run --cap-add=IPC_LOCK --ulimit memlock=-1:-1 ...
 
# 그렇지 않으면 다음과 같은 오류 발생하고 메모리 설정이 올바로 작동 안함
Unable to lock JVM Memory: error=12,reason=Cannot allocate memory
This can result in part of the JVM being swapped out.
Increase RLIMIT_MEMLOCK, soft limit: 65536, hard limit: 65536
These can be adjusted by modifying /etc/security/limits.conf, for example: 
	# allow user 'someuser' mlockall
	coupang soft memlock unlimited
	coupang hard memlock unlimited
If you are logged in interactively, you will have to re-login for the new limits to take effect.

JVM Heap Dump를 떠야 할 때 대비해서 다음 옵션도 추가

--cap-add=SYS_PTRACE

Linux 설정

sysctl -w vm.max_map_count=262144

환경변수

최적화

Write Performance

Memory

G1 GC

Disk Size

RollingFileAppender로 변경

  file:
    type: rollingFile
    file: ${path.logs}/${cluster.name}.log
    maxFileSize: 104857600
    maxBackupIndex: 10
    layout:
      type: pattern
      conversionPattern: "[%d{ISO8601}][%-5p][%-25c] %.10000m%n"

주의점

참조