2014-10-22 4 views
0

저는 Solr을 사용 중이며 동적 필드가있는 단일 컬렉션이 있습니다.복제본이있을 때 샤드를 사용하는 이유

내 목표는 설정 SolrCloud에, 그리고 SolrWiki이 추천 : 그것은 직선 사본이기 때문에, 내 이해 복제에서 https://wiki.apache.org/solr/SolrCloud#Example_C:_Two_shard_cluster_with_shard_replicas_and_zookeeper_ensemble

당신이 균형 및 이중화를 넣지 제공합니다. 샤딩은로드 밸런싱을 제공하고 인덱스의 절반 메모리를 얻지 만 사용자는 두 작업에 모두 의존합니다.

이렇게 4 개의 서버로 클러스터를 설정하면 요청이 약 4 배 빨라 집니까? 4 개의 복제본이있는 하나의 샤드 만있는 경우 중복성이 증가하여 4 배 빨라 집니까?

가상 서버를 사용하면 더 많은 CPU를 동시에 사용할 수 없으므로 아무런 의미가 없다는 것을 당연한 생각을했습니다.

+0

샤딩은 인덱스가 단일 서버에 비해 너무 큰 경우에 주로 유용합니다. 무엇이 최상의 성능을 제공 할 것인가? 4 대의 서버가 4 배 이상 향상되지는 않을 것입니다. 실제로 운이 좋다면 3 배 더 좋을 수도 있지만, 샤딩이 유용하고 얼마나 많은 서버를 사용할 수 있는지에 영향을 미치는 변수가 많이 있습니다. 인덱스 구조, 쿼리 내용, 빈도 질의, 서버의로드 방법 - 자신의 환경에 맞는 현실적인 테스트를 통해 다양한 구성의 성능을 측정하고 테스트하는 것이 가장 좋습니다. – Yann

+0

그런 다음 수십억 개의 문서에서 색인을 생성해야합니다. 즉, https://svn.apache.org/repos/asf/lucene/dev/trunk/dev-tools/size-estimator에 따라 많은 색인을 생성해야합니다. -lucene-solr.xls 물론 JVM과 캐시도 기본 메모리를 사용합니다. 인덱스 크기가 작을수록 성능이 향상된다는 장점이 있습니까? – Solver42

답변

0

SolrCloud에서 복제본을 추가하면 동시성이 향상되고 조각을 더 추가하면 쿼리 응답 시간이 향상됩니다. 즉, 원래 쿼리가 1 초 후에 반환 된 경우 복제본을 추가하면 응답 시간은 향상되지 않지만 기간별로 더 많은 결과가 제공됩니다. 그러나 색인을 더 많은 조각으로 분할하면 응답 시간이 줄어 듭니다.

따라서 1 개의 샤드에서 4 개의 샤드로 인덱스를 분할하면 거의 4 배 빠른 쿼리를 얻을 수 있습니다. 그러나 4 개의 복제본으로 1 개의 샤드를 선택하면 쿼리 응답 시간이 약간 향상 될 것입니다.