1. Hardware
작은 서버 보다는 중간 또는 큰 서버로 구성하는게 적은 cluster를 구성하는게 바람직함
1) Memory : 운영환경에서 16GB ~ 64GB로 구성
disable os swapping : sudo swapoff -a or /etc/fstab
/etc/sysctl.conf에 swapiness값을 1로 조정
2) cpu : clock이 빠른것보다는 core수가 많은것을 권장
3) disk : io job이 많으므로 ssd 사용하여 구성하는걸 권장
4) network : node간 데이터 교환이 많으므로 high speed 권장
5) 기타
file descripter 설정 조정 (/etc/security/limit/conf)
username soft nofile 65535
username hard nofile 65535
* cluster내 node 서버구성은 같은 사양과 component로 구성하는걸 권장함
2. cluster 설정
설정파일 : /$ES_HOME/config/elasticsearch.yml
1) cluster 이름 설정
cluster.name : test
2) cluster node 이름 설정
node.name : test1
3) path 설정
data, plugins, log, backup 디렉토리를 별로 설정
path.data: /es/data
path.plugins : /es/plugins
path.logs : /es/logs
4) 메모리 설정
* 서버 메모리 사이즈에 50% 할당 (es는 os-level 캐쉬도 사용)
* heap 사이즈로 30GB 이하 설정을 권장
(시스템에 메모리가 클 경우 multi es instance 구성권장)
* user_home/.bashrc에 설정추가
export ES_HEAP_SIZE=30g
* elasticsearch start시 아래 옵션
./bin/elasticsearch -Xmx30g -Xms30g
5) 네트웍 brain split 방지
마스터 노드 대상이 3이라고 가정하면
discovery.zen.minimum_master_nodes : 2 or 3
(마스터 노드 대상 : node.master : true )
discovery.zen.ping_timeout: 큰값으로 설정
6) recovery config
3개 노드가 cluster에 join 된후 recovery 수행
gateway.recover_after_nodes : 3
"transient" : {
"indices.store.throttle.type" : "none"
}
}'
-- no index refresh
index.refresh_interval: -1
-- log flush size (write ahead log)
index.translog.flush_threshold_size=1GB
-- disable replicas (작업후 꼭 재조정 필요)
curl -XPU 'localhost:9200/[index_name]/settings' -d '
"index" : {
"number_of_replicas" : 0
}
}'
'NoSQL > Elasticsearch' 카테고리의 다른 글
[설치] elk 5.2.2 자바버전 (0) | 2017.03.20 |
---|---|
kibana mavel 라이센스 update (0) | 2016.07.05 |
elasticsearch snapshot and restore (0) | 2016.06.15 |
elasticsearch monitoring (0) | 2016.06.15 |
elsticsearch 성능 (0) | 2016.06.15 |