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


     or
     gateway.expected_nodes : 5
     gateway.recovery_after_time : 5m
 
  7) index throttle or refresh 조정
     아래 옵션은 대용량 데이터 index 작업시 설정후 작업후 원복

      -- no merge
     curl -XPU 'localhost:9200/_cluster/settings' -d '
     {

         "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

+ Recent posts