Egloos | Log-in
결론에 가보기
결론에 가보기
검색이야기 with Solr - #2 활용


작년 검색일을 시작하면서 첫번째 이야기를 쓴것 같은데
벌써 5개월정도가 흘렀네.. 와~ 시간 빠르네..
그때는 시작하면서 필요한 기본사항에 대해서 얘기를 하였었는데
이제 실제 적용도 해보고 나름 안정성을 위한 노력도 해서 꽤 안정성도 높아졌다.
2월달 전체적용도 앞두고 있고 얼마전에 추가로 붙인것때문에 요즘 검색 생각이
많이 나서 내용을 정리해본다.

1. 우리는 지금 어떻게 Solr를 쓰고 있나?

사람들이 생각하는 검색의 3단계중에서 데이터 수집, 색인, 검색 중에서
solr는 색인, 검색만을 담당해주는 놈이다. 따라서 지금 나의 상황처럼
게시판의 검색을 solr를 이용하는것은 정말로 적절한 케이스이다.

게시판의 검색? 나도 처음에는 별거 아니라고 생각을 하였다.
그까짓것 걍 DB의 like 검색붙이면 되지 않나? 라는 바보같은 생각을..
단순 게시판의 글의 개수보다 얼마나 많은 트래픽이 있는지도 체크포인트이다.

지금 많은 게시판중에서 몇개만 붙여놨다. 데이터는 200만건정도가 되고
색인요청이 많을때는 초당 1개정도, 적을때는 분당 10개정도
조회요청은 많을때는 초당 1~2개, 적을때는 분당 25개정도..

마지막 붙인 게시판이 데이터는 5만건정도뿐이지만 트래픽이 많아서
기존의 것보다 6배이상 늘어났지만 안정성은 더 좋아졌다
(방식을 바꾸긴 했지만 그 내용은 아래에서 .. ^^)

목표치가 현재 2000만건이고 최대 5000만건을 염두에 두고 있는데
서버구입도 하였으니.. 괜찮아질듯하다 ^^

2. Solr의 실적용에서 고려해야 할 사항 #1 - 메모리

처음 오픈하자마자 발생한 문제^^ 메모리 부족현상이다.
JVM의 옵션을 제대로 주지 못하였던 문제..
찾아보니깐 나름 JVM의 옵션이 아주 다양하고 많다..그래서 적절히 맞춰주니깐
우선 시작인 100만건정도는 쉽게 넘어갈수가 있었다.

덕분에 Out Of Memory 의 문제에 대해서 공부도 많이 하였고
메모리 구조에 대한 공부도 많이 하였다.
http://kr.bea.com/files/services/customer_support/best_tip/07_200409/07_1_02.pdf
http://wiki.javajigi.net/pages/viewpage.action?pageId=1969
http://hjbang.snut.ac.kr/data/java2005/JAVA06.ppt

하지만 32비트에서는 한계가 있었다. 그것은 JVM이 1G까지만 설정이 가능하다는 것이다.
적절한 개수까지는 테스트해보지 못하였지만 5000만건의 데이터를 만들어서
색인과 검색을 동시에 보내니 바로 Out Of Memory가 발생한다.

64비트에서는 4G까지 메모리 설정이 가능하다고 하지만 실제로 커멘드는 10G까지 먹힌다
그런데.. 총 메모리 6G짜리인데 10G라니..흠흠. 어째튼 5G로 설정하고
색인과 조회를 동시에 테스트하여보니 5000만건에서도 OK!!

그리고 가용할수 있는 메모리가 늘어남에 따라서 약 30%이상 성능 향상
(색인시간이 더 빨라짐)도 있기에 64비트가 적절한 것 같다.

3. Solr의 실적용에서 고려해야 할 사항 #2 - commit 주기

commit은 데이터를 추가(add)하고 실제 검색서버가 인식할수 있도록 반영해주는
process이다. 얼마전 추가 게시판을 늘리기전까진 실시간 반영이었다.
글을 쓰고 바로 반영을 하는..
하지만 이것이 얼마나 서버에 큰 부담을 주는지.. 방식을 변경하고 나서야 알게 되었다.

지금은 add 까지만 글을 쓸때 하고 commit은 5분마다 하는 방식으로 변경하였다.
위에서 얘기하였지만 트래픽은 6배이상 늘어났지만 안정성은 3~4배이상 더 좋아졌다.

글을 쓰고 자신이 쓴 글을 검색확인 할수 있는 최대시간 5분..   10배이상 좋아진 안성정과
충분히 바꿀만한 가치가 있는 것 같다.

4. Solr의 확장 아이디어

아직 실행해보지 않았지만 해볼만한 것들의 아이디어이다.
검색서버를 검색이외에 쓸수 있지 않을까?? 내가 속한곳이 게임회사라 ^^
게임쪽으로 생각을 해보면..

랭킹서버..  사용자의 점수를 색인하고 조회하는 방식이다.
검색 + 랭킹보여주기를 붙이면 될듯하고

자동매칭시스템..
게임을 원하는 사람들끼리 1:1, 2:2, 5:5로 팀을 이루에 매핑을 시켜 주는 시스템이다.
점수의 스샷을 떠넣고 자신의 그룹을 쉽게 찾고, 그룹끼리 매칭을 시켜주면 될듯하다.
자세한 방식은 흠흠.. 적용후에 알려드리도록 하죠 ^^

또 주저리주저리 많이 썼네.. 간략히 이미징화해서 써야 하는데..흠흠.
by 제우스 | 2008/01/28 14:57 | 컴퓨터 | 트랙백(1) | 핑백(1) | 덧글(0)
트랙백 주소 : http://zeous.egloos.com/tb/1722299
☞ 내 이글루에 이 글과 관련된 글 쓰기 (트랙백 보내기) [도움말]
Tracked from Enterprise S.. at 2008/07/28 16:14

제목 : [SOLR] SOlR 1.2 Windows 설치기 ..
1. SOLR 1.2를 내려 받는다. http://www.apache.org/dyn/closer.cgi/lucene/solr/ http://mirror.apache-kr.org/lucene/solr/1.2/apache-solr-1.2.0.zip2. 내려받은 파일을 압축해제 한 후 example 디렉토리에서 example폴더에서 ......more

Linked at 결론에 가보기 : 검색이야기 .. at 2008/03/27 16:22

... 이만큼이나 왔다. 개략적인 solr에 대한 이야기로 검색이야기 with Lucene, solr 를 포스팅하였고 prototype의 적용으로 알게된 내용으로 검색이야기 with Solr - #2 활용 를 포스팅하였다. 새 장비를 가져와서.. 기존의 JDK5.0(1.5.0_6) 에서 JDK6.0(1.6.0_5)로 변경하였는데.. 성능이 약 30%정도 좀더 좋 ... more

:         :

:

비공개 덧글

◀ 이전 페이지 다음 페이지 ▶

카테고리
영화나 책
말말말
컴퓨터
게임이야기
태그
파워코드 개발자 하이코드 메이저코드 스테가노그래피 재태크 화성학 제이슨프라이드 기타코드 직업 웹개발자 2nd밴드 똑바로일하라 마이너코드 개발 슬럼프 ror 디아블로3 라이프사이클 보험 서버개발 나꼽살 원리 공연 helloworld 게임 vanish ngrinder 오픈세미나
전체보기
최근 등록된 덧글
엄지척 바짝 올립니다. 궁금했던..
by 초보 at 10/11
다자가이든 소작이든 닭이 천 마리..
by yada at 09/20
나는 팔라독 헬 깸.
by 남영찬 at 06/17
^안녕.하세요^;; 골드팟 생기개..
by 전설의레전드소설책 at 03/25
이왕이면---- A7 등등 '7' 이 붙는..
by papagoat at 04/12
매우 감사합니다 ! 아주 쉽게 키..
by papagoat at 04/12
자꾸 F를 라로 표기하시네요 ㅎㅎ
by 안녕하세요 at 12/21
시 클라식 기타 코드표 도 보여..
by 강초보 at 06/08
sp를 싫어하는 개발자들은 유지..
by 나도개발자 at 04/23
여자친구와의 금연약속을 어겨서..
by 구사일생 at 11/13
라이프로그
똑바로 일하라
똑바로 일하라

펜트하우스 코끼리
펜트하우스 코끼리

화폐전쟁
화폐전쟁

10억
10억

거북이 달린다
거북이 달린다

용의자 X의 헌신
용의자 X의 헌신

마더
마더

터미네이터 : 미래전쟁의 시작
터미네이터 : 미래전쟁의 시작

스타트렉 더 비기닝
스타트렉 더 비기닝

천사와 악마
천사와 악마

노잉
노잉

7급 공무원
7급 공무원

박쥐
박쥐

인사동 스캔들
인사동 스캔들

와이키키 브라더스
와이키키 브라더스

매란방
매란방

건투를 빈다
건투를 빈다

코끼리는 생각하지 마
코끼리는 생각하지 마

배려
배려

벤자민 버튼의 시간은 거꾸로 간다
벤자민 버튼의 시간은 거꾸로 간다

작전
작전

워낭소리
워낭소리

작전명 발키리
작전명 발키리

적벽대전 2 : 최후의 결전
적벽대전 2 : 최후의 결전

트랜스포터 - 라스트미션
트랜스포터 - 라스트미션

디파이언스
디파이언스

사랑하지 않으면 떠나라!
사랑하지 않으면 떠나라!

촐라체
촐라체

쌍화점
쌍화점

황후화
황후화

크리스마스 별장
크리스마스 별장

눈먼 자들의 도시
눈먼 자들의 도시

예스맨
예스맨

순정만화
순정만화

펀치 레이디
펀치 레이디

눈에는 눈 이에는 이
눈에는 눈 이에는 이

전략적 책읽기
전략적 책읽기

돈, 뜨겁게 사랑하고 차갑게 다루어라
돈, 뜨겁게 사랑하고 차갑게 다루어라

좋은 놈, 나쁜 놈, 이상한 놈
좋은 놈, 나쁜 놈, 이상한 놈

다크 나이트
다크 나이트

H2 1
H2 1

그림으로 읽는 생생 심리학
그림으로 읽는 생생 심리학

호모 코레아니쿠스
호모 코레아니쿠스

강철중: 공공의 적 1-1
강철중: 공공의 적 1-1

이채원의 가치투자
이채원의 가치투자

쿵푸 팬더
쿵푸 팬더

카불의 사진사
카불의 사진사

인디아나 존스 4 - 크리스탈 해골의 왕국
인디아나 존스 4 - 크리스탈 해골의 왕국

시골의사의 부자경제학
시골의사의 부자경제학

종자돈 700만 원으로 부동산 투자 200억 만들기
종자돈 700만 원으로 부동산 투자 200억 만들기

우리동네
우리동네

디지로그 digilog
디지로그 digilog

대하소설 주역 4
대하소설 주역 4

읽지 않은 책에 대해 말하는 법
읽지 않은 책에 대해 말하는 법

Stick 스틱!
Stick 스틱!

색즉시공 시즌 2
색즉시공 시즌 2

바르게 살자
바르게 살자

20대는 통장을, 40대는 인생을 채워라
20대는 통장을, 40대는 인생을 채워라

점퍼
점퍼

생로병사의 비밀
생로병사의 비밀

추격자
추격자

오늘의 거짓말
오늘의 거짓말

주식시장을 이기는 작은책
주식시장을 이기는 작은책

대한민국 진화론
대한민국 진화론

무방비 도시
무방비 도시

피라니아 이야기
피라니아 이야기

우아한 세계
우아한 세계

경제를 읽는 기술
경제를 읽는 기술

실용주의 프로그래머
실용주의 프로그래머

블로그 비즈니스
블로그 비즈니스

어거스트 러쉬
어거스트 러쉬

세븐데이즈
세븐데이즈

뷰티풀 선데이
뷰티풀 선데이

괴물 1
괴물 1

킹덤
킹덤

당신과 일하기 힘들어 죽겠어
당신과 일하기 힘들어 죽겠어

뉴욕의 프로그래머
뉴욕의 프로그래머

나를 바꾸는 데는 단 하루도 걸리지 않는다
나를 바꾸는 데는 단 하루도 걸리지 않는다

벽오 금학도
벽오 금학도

해바라기
해바라기

펀드투자가 미래의 부를 결정한다
펀드투자가 미래의 부를 결정한다

상식이 통하는 웹사이트가 성공한다
상식이 통하는 웹사이트가 성공한다

아버지의 가계부
아버지의 가계부

본 얼티메이텀
본 얼티메이텀

최강 로맨스
최강 로맨스

여자도 여자를 모른다
여자도 여자를 모른다

부동산 10년 대폭락 시나리오
부동산 10년 대폭락 시나리오

아키텍트 이야기
아키텍트 이야기

보물지도
보물지도

오션스 13
오션스 13

게임회사 이야기
게임회사 이야기

바람피기 좋은 날
바람피기 좋은 날

조폭 마누라 3
조폭 마누라 3

삼미 슈퍼스타즈의 마지막 팬클럽
삼미 슈퍼스타즈의 마지막 팬클럽

광기와 우연의 역사
광기와 우연의 역사

런어웨이
런어웨이

회사가 당신에게 알려주지 않는 50가지 비밀
회사가 당신에게 알려주지 않는 50가지 비밀

롱테일 법칙
롱테일 법칙

해리 포터와 불사조 기사단
해리 포터와 불사조 기사단

사소한 것에 목숨 걸지 마라 - 습관 바꾸기 편
사소한 것에 목숨 걸지 마라 - 습관 바꾸기 편

우리가 미처 알지 못한 소프트웨어 공학의 사실과 오해
우리가 미처 알지 못한 소프트웨어 공학의 사실과 오해

트랜스포머
트랜스포머

20대부터 시작하는 스트레스 제로기술
20대부터 시작하는 스트레스 제로기술

미운오리새끼의 출근
미운오리새끼의 출근

캐리비안의 해적 : 세상의 끝에서
캐리비안의 해적 : 세상의 끝에서

미녀는 괴로워
미녀는 괴로워

유태우 교수의 내몸개혁 6개월 프로젝트
유태우 교수의 내몸개혁 6개월 프로젝트

브레이크 업 : 이별후애(愛)
브레이크 업 : 이별후애(愛)

인사이드 맨
인사이드 맨

마키아벨리, 회사에 가다
마키아벨리, 회사에 가다

웹 2.0 경제학
웹 2.0 경제학

한반도
한반도

연애, 그 참을 수 없는...
연애, 그 참을 수 없는...

구미호 가족
구미호 가족

럭키 넘버 슬레븐
럭키 넘버 슬레븐

찰리와 초콜릿 공장
찰리와 초콜릿 공장

아파트
아파트

레전드 오브 조로
레전드 오브 조로

rss

skin by jiinny
X