http://exif.net/entry/Solr-솔라-성능-비교-삽질에-가까운-비교기

1탄에 이어, 조금 더 테스트를 수행해보았다.
역시 나의 무지함이 한눈에 드러나게 된 테스트 였다.

1. 색인건수를 증가시켜보았다.
DistributedSearch 와 SingleCore의 성능차이가 건수가 많아지면, 역전 되지 않을까  해서 진행

결과 : 줄기는 하나, 눈꼽만큼 줄어서 별 효과가 없다.


2. 쿼리에 카테고리 검색조건을 넣는 대신, 필터쿼리 쪽으로 카테고리를 분리
filterQuery는 루씬 내부의 Score와 관계없이 대상을 필터링하고, 캐쉬가되므로, 동일한 필터쿼리에 대하여 캐슁효과를 볼 수 있다.

결과 : 러프한 테스트지만, SingleCore 와 MultiCore의 성능 갭을 엄청나게 줄여 버렸다.


  만개 십만개 3십만개 5십만개 백만개 백5십만개 3백만개
Single, 쿼리 367 563 1247 1537 2778 4280 7814
Single ,FQ 281 513 768 849 1264 1370 2719
MultiCore 347 498 414 562 788 1039 1764
MultiCore, 쿼리 309 488 1150 1320 2408 3561 6655
DistributedSEarch, FQ 1658 1441 1096 1742 2005 1957 3903
DistributedSEarch , 쿼리 945 1212 1655 2055 3335 4617 8360


Single , 쿼리 : 한 Core에 넣고 카테고리 조건 q= 질의
Single, FQ : 한 Core에 넣고, 카테고리 조건 FilterQuery 질의
MultiCore : 카테고리별 Core 생성
MultiCore , 쿼리 : 카테고리별 Core 생성, 카테고리 조건 q= 질의
DistributedSearch, 쿼리 : 카테고리별 Core 생성, shards검색, 카테고리 조건 q= 질의
DistributedSearch, FQ : 카테고리별 Core 생성, shards검색,  카테고리 조건 FilterQuery 질의
 

1. SingleCore 보다 MultiCore가 조회성능에서 우수하다.
2, cache 효과를 볼 수 있는 filterQuery 가 일반 query 질의보다 우수하다.
3. DistributedSearch는 다수의 Core로 결과를 받아서, 재조합하는 과정에서 시간 loss가 발생하는것으로 추정한다.
4. 쿼리에 쓸데없는 조건을 넣지 말자.(쏠라의 쿼리옵티마이징은 별로이다)


top

Trackback Address :: http://exif.net/trackback/99 관련글 쓰기

Write a comment


◀ PREV : [1] : ... [18] : [19] : [20] : [21] : [22] : [23] : [24] : [25] : [26] : ... [79] : NEXT ▶