ElasticSearch 최적화 요약

6570 단어 ElasticSearch

ElasticSearch 최적화 요약


카탈로그

  • ElasticSearch 최적화 요약
  • 디렉토리
  • OS
  • OS 매개변수 설명
  • OS 매개변수 구성
  • ES



  • Linux Release: CentOS release 6.4 ES Version: 2.x

    OS


    OS 매개 변수 설명

    vm.swappiness
  • ES는 이 매개 변수를 1로 설정하여 swap 구역의 크기를 대폭 낮추고 메모리를 최대한 사용하도록 권장합니다.
    여기에서 0 로 설정하지 마십시오. 이로 인해 OOM이 발생할 수 있습니다.
  • net.core.somaxconn
  • 포트당 최대 감청 대기열의 길이를 정의합니다.
  • vm.max_map_count
  • 프로세스가 소유할 수 있는 VMA(가상 메모리 영역)의 수를 제한합니다.가상 메모리 영역은 연속적인 가상 주소 공간 영역이다.VMA 수가 이 값을 초과하면 OOM...
  • fs.file-max
  • Linux 커널에 할당된 파일 핸들의 최대 수를 설정합니다.
  • user    soft     nofile             65535
    user    hard     nofile             65535
  • 사용자가 사용할 수 있는 파일 설명자 수를 설정합니다.
  • user    soft     memlock          unlimited
    user    hard     memlock          unlimited
  • 메모리 잠금, swapping 거부
  • session required pam_limits.so
  • 이것은 리눅스가 사용자가 시스템 로그인을 완료한 후pam_를 호출해야 한다는 것을 알려주는 것이다limits.so 모듈은 사용자가 사용할 수 있는 각종 자원 수량에 대한 시스템의 최대 제한(사용자가 열 수 있는 최대 파일 수 제한 포함)을 설정하고pam_limits.so 모듈은/etc/security/limits에서conf 파일에서 이 제한 값을 설정하기 위해 설정을 읽습니다.수정 후 이 파일 저장
  • bootstrap.mlockall: true
  • JVM을 실행하여 메모리를 잠그고 JVM이 swapping에 쓰지 않도록 하여 ES의 성능을 떨어뜨리지 않도록 합니다.
  • indices.fielddata.cache.size: 40%
    indices.cache.filter.size: 30%
    indices.cache.filter.terms.size: 1024mb
  • 각 부분에서 차지하는 캐시 비율을 설정합니다. 기본적으로는 제한이 없으며 JVM 더미 공간을 폭발시킬 수 있습니다. (fielddata를 설정하면 검색 성능에 영향을 줄 수 있습니다.)
  • threadpool.search.type: cached
    threadpool.search.size: 100
    threadpool.search.queue_size: 2000
  • 스레드 탱크의 설정,size는 기본적으로 프로세서 핵의 5배입니다.
  • transport.tcp.compress
  • 모든 노드 간의 전송 데이터는 압축된 것으로 설정됩니다.기본적으로 압축되지 않습니다.
  • ES_HEAP_SIZE
  • 기본 1G이며 32G를 초과하지 않도록 하십시오.

  • OS 매개 변수 구성


    sysctl을 엽니다.conf
    vim /etc/sysctl.conf
    vm.swappiness=1                          #   swapping
    net.core.somaxconn=65535                 #  
    vm.max_map_count=262144                  #(default) http://www.redhat.com/magazine/001nov04/features/vm
    fs.file-max=518144                       # http://www.tldp.org/LDP/solrhe/Securing-Optimizing-Linux-RH-Edition-v1.3/chap6sec72.html

    다시 시작하지 않으려면sysctl-p를 통해/etc/sysctl를 동적으로 불러올 수 있습니다.conf 파일, 하지만 이렇게 하기 전에 swap을 비우는 것을 권장합니다.
    그리고 limits를 엽니다.conf
    vim /etc/security/limits.conf

    주의, 아래의 설정들은elasticsearch가 접근할 수 있도록 보장해야 하기 때문에, 예를 들어elasticsearch와 같은 사용자를 새로 만드는 것을 강력히 권장합니다.
    elasticsearch    soft    nofile          65535
    elasticsearch    hard    nofile          65535
    elasticsearch    soft    memlock         unlimited
    elasticsearch    hard    memlock         unlimited

    상기 매개 변수를 영구적으로 효력을 발생시키기 위해서 두 곳을 설정해야 한다
    vim /etc/pam.d/common-session-noninteractive
    vim /etc/pam.d/common-session

    다음 속성 추가
    session required pam_limits.so

    기계를 다시 켜야 할 것 같아요!

    ES


    elasticsearch의 프로필 elasticsearch를 엽니다.yml, 아래 속성 추가
    bootstrap.mlockall: true
    
    transport.tcp.compress: true
    
    indices.fielddata.cache.size: 40%
    indices.cache.filter.size: 30%
    indices.cache.filter.terms.size: 1024mb
    
    threadpool:
        search:
            type: cached
            size: 100
            queue_size: 2000

    환경 변수를 설정하려면 ~/.bashrc, 또는/etc/profile에서 설정:
    #   32 G
    export ES_HEAP_SIZE=4g

    설정이 끝난 후,source를 하세요.기계를 재가동하다.
    재부팅이 완료되면 es 정보를 볼 수 있습니다.
    curl 'http://localhost:9200/?pretty'

    최적화 완료.

    좋은 웹페이지 즐겨찾기