Elastic Search에서 쿼리의 검색 속도를 개선하는 방법은 무엇입니까?
호스트는 ElasticSearch의 AWS이며, 6 개의 노드와 30 개의 인덱스에 각각 10 개의 샤드가있는 2TB의 데이터가 저장되어 있습니다. 모든 인덱스에서 단순 검색은 매우 느리고 몇 분이 걸립니다.
내가 실수 한 곳은? 정상입니까, 설정이 잘못되었거나 데이터가 너무 많이 저장되어 있습니까?
내 클러스터 설정 :
"search": {
"max_queue_size": "1000",
"queue_size": "1000",
"size": "4",
"auto_queue_frame_size": "2000",
"target_response_time": "1s",
"min_queue_size": "1000"
},
내 노드 설정 :
"os": {
"refresh_interval_in_millis": 1000,
"name": "Linux",
"pretty_name": "CentOS Linux 7 (Core)",
"arch": "amd64",
"version": "4.15.0-1039-aws",
"available_processors": 32,
"allocated_processors": 2
}
감사합니다!
답변
3 ElasticsearchNinja
정보가 매우 적은 매우 광범위한 질문입니다. 다음과 같은 더 많은 정보를 제공해주세요.
- 보유한 데이터의 양과 각 샤드의 크기.
- 평균 소요 시간이 포함 된 샘플 검색어입니다.
- 데이터 노드 힙 크기 및
allocated_processors
사용 가능한 프로세서보다 매우 적은 (2) 이유 (32) - 검색 쿼리에서 가져 오는 문서 수 (예 : 크기 매개 변수)
- 검색 호출 없음에 대한 검색 지연 시간
- Elasticsearch (ES)의 느린 로그 검색
검색 성능 향상에 대한 10 가지 팁을 참조하고 팁에 언급 된 일부 매개 변수의 값을 알려주고 클러스터 최적화 도구 를 사용해 ES의 클러스터 및 노드 설정을 미세 조정할 수 있습니다.
의견에서 논의했듯이 문제를보다 효율적으로 디버깅 하려면 opster의 검색 느린 로그 블로그 를 참조하십시오 .
1 Jaycreation
1)I have 2TB data. Every index has 50GB or more. Each has 10 shards and a replica
그것은 많은 것입니다. 샤드의 목표 크기는 약 50Gb 여야합니다. 설정에 따라 각각 약 5Gb가됩니다. 5 개 이하의 샤드로 축소하고 1 개의 세그먼트로 강제 병합 할 수 있습니다. 성능이 많이 향상되어야합니다.
그 후, 그의 블로그에서 Optsters가 제공 한 다른 좋은 조언을 살펴보십시오. 그들은 모두 관련이 있습니다.