2014-04-14 5 views
0

1 개의 Cassandra 노드와 1 개의 Solr 노드 (DseSimpleSnitch 사용)가있는 DSE 4.0 클러스터를 설정하고 성능이 우수 할 때 이상한 문제가 있습니다. 3 개의 Cassandra 노드와 3 개의 Solr 노드가있는 추가 노드를 추가하면 Solr 쿼리의 성능이 크게 저하됩니다. 누구든지 내가 뭘 잘못하고 있는지 알 겠어? 기본적으로 DSE에 대한 모든 기본 옵션을 가지고 있으며 모든 데이터를 지우고 동일한 결과로 처음부터 모든 것을 다시 만들려고했습니다. 나는 또한 동일한 결과를 가진 1과 2의 복제 계수로 키 공간을 만들려고했습니다. 어쩌면 내 유스 케이스가 좀 이상하지만 솔라를 바이너리 작가/독자가있는 SolrJ를 통해 OLTP 유형 쿼리에 사용하고 있는데, 이것이 성능이 중요한 이유입니다. 아주 간단한 Solr 쿼리를 작성하는 5 명의 클라이언트의 매우 가벼운 작업량으로 응답 시간은 단일 Solr 노드에서 3 Solr 노드로 약 50 % 증가합니다. 테스트에는 약 수백 개의 작은 문서 (~ 25ms ~ ~ 50ms)가 포함됩니다. 응답 시간은 단일 노드에 비해 3 개의 노드에 대해 150 개의 클라이언트로 약 2 ~ 3 배 느립니다. Cassandra의 응답 시간은 변경되지 않으며 Solr 쿼리 만 느려집니다. 내 구성에서이 문제가 발생 했습니까?solr 노드를 추가 한 후 성능이 저하됩니다.

답변

0

Solr 쿼리는 열 패밀리의 모든 키 범위를 다루기 위해 팬 아웃해야합니다. 따라서 한 노드에서 세 노드로 갈 때 전체 쿼리 시간이 단일 노드로 충족 될 수있는 쿼리의 세 배로 증가한다는 것은 놀라운 일이 아닙니다.

검색 DC에 RF를 언급하지 않았습니다.

더 복잡한 쿼리의 경우 전체 쿼리 시간의 일부만 각 노드에서 발생하기 때문에 팬 아웃은 쿼리 대기 시간이 줄어들지 만 작은 쿼리의 경우 팬 아웃 오버 헤드 및 쿼리 결과 집계 실제 Solr 핵심 쿼리를 수행하는 시간이 줄어든다.

일반적으로 Cassandra 쿼리는 Solr 쿼리보다 훨씬 단순한 경향이 있으므로 거의 비교할 수 없습니다.

+0

감사합니다. 문제가 될 수있어서 설계가 좋지 않을 수도 있습니다. Solr DC에 대한 내 RF는 Cassandra DC와 동일하므로 1과 2의 값을 시도했습니다. 이것에 대해 좀 더 생각해 보면 이것이 내 문제/솔루션의 일부이며 내 Cassandra가 데이터에 액세스 할 때 별도의 키 스페이스를 만들어야합니다. 내 Solr가 데이터에 액세스했습니다. 나는이 물건에 익숙하지 않았고 전에 그것에 대해 정말로 생각하지 않았습니다. – Kelby

0

문제가 해결되었습니다. Solr 노드에 가상 노드를 사용하지 말고 (이유를 말하지 않고) 설명서를 읽은 후 구성을 확인하고 가상 노드를 사용하고 있음을 알았습니다. 가상 노드를 사용하지 않도록 구성을 변경 했으므로 성능 문제가 사라졌습니다. 나는 4.0.0에서 업그레이드했다. 동시에 4.0.2로 바뀌었지만 문제를 일으키는 가상 노드라고 확신합니다.

+0

Solr 노드에 대한 vnode가 나쁜 이유는 무엇입니까? http://stackoverflow.com/questions/23174455/dse-solr-nodes-and-vnodes –

관련 문제