2009년 4월 21일 화요일

subversion 이 엄청나게 느릴때 해결방법

오늘 잠시 삽질한 게 있어 기록으로 남겨둡니다. 늘 그렇듯이 분명히 삽질하시는 분이 많을거라 생각해서 삽질의 수고를 덜어드리고자 정리합니다.

subversion 사용하시는 분 중에 처음에는 빨랐는데 사람들 좀 붙고 프로젝트 몇개 붙이고 나니까 svn이 느려진 경우가 있을겁니다.

svnserve 를 다시 시작해도 그대로 느리고 subversion 버전을 올려봐도 별 소용없고 –_-;;

저도 오늘 유난히 이클립스 subclipse에서 synchronize 및 초기 checkout 이 엄청 느리다는 팀 동료들의 원성을 듣고( 네네.. 자진하여 svn 서버 관리자를 하고 있습니다 –_-; ) 이 문제를 해결해 보고자 약 두시간 정도 삽질을 했습니다.

1. svnserve 를 내렸다 올려도 소용 없었습니다.

2. svn 을 1.5.5 에서 1.6.1로 올려봤습니다. apr과 apr-util, 그리고 sqlite3도 요구하네요. 설치해줘습니다.그래도 소용없었습니다.

   여기에서 삽질 하나, sqlite3 를 설치하고 나서 svn 컴파일할때 SQLITE3 에러나면서 멈추는 현상이 있을겁니다.

   sqlite-3.6.x 디렉토리의 sqlite3.c 를 svn 압축 푼 곳에 sqlite-amalgamation 라는 이름으로 디렉토리를 만들고 복사해 넣고 다시 시도하면 넘어갑니다. –-with-sqlite 를 이용하는 방법도 있는 것 같습니다.

3. 구글링을 하다가 svnserve를 재시작해도 빨라지지 않는 현상만 제외하고는 똑같은 증상의 해결책을 발견했습니다.


3번대로 우선 /dev/random 을 잠시 옮겨두고 /dev/random 을 /dev/urandom으로 심볼릭 링크를 걸어보았습니다.

오~ 빨라집니다.

하지만 글에서 보안이 어쩌구 하는것도 좀 꺼림칙하고 혹시나 향후 프로젝트나 기존 프로젝트 중 /dev/random 을 이용하게 될 녀석이 있을지도 모를 일이라(바꿔두면 분명히 나중에 끙끙대면서 고생하겠지요) 이래저래 고민을 하면서 과거의 subversion 메일링 리스트 및 버그리스트 등을 쭉 보다 보니,

누군가가 소스코드의 /dev/random 을 /dev/urandom 으로 바꾸고 컴파일해서 문제를 해결했다는 글이 보입니다. 그러면서 configuration 에서 random 을 설정을 바꿀 수 있도록 하는게 어떻겠느냐는 글이 보입니다.

svn 의 configure 도움말을 살펴봐도 그런게 안보입니다. find 로 /dev/random 이 들어간 소스코드를 찾다보니 apr 쪽에 관련 내용이 있습니다. apr에서

./configure --help
어쩌구저쩌구
--with-devrandom[=DEV]  use /dev/random or compatible [searches by default]
어쩌구저쩌구

럭키럭키~

이미 새 버전으로 설치가 끝났을 테니 apr만 새로 컴파일하면 됩니다.

apr 에서

./configure –with-devrandom=/dev/urandom

을 입력해서 설정을 다시 하고

make clean

make

make install

하면 됩니다.

혹시 모르니 svnserve 이용중이신 분은 떠있는 애들 다 죽이고 다시 올려줍니다.

덧 1. 오~래된 svn 쓰시던 분들은 svnadmin upgrade 로 repository 구조 바꿔주시구요.
덧 2. 혹시 svn 처음 설치하신 분들이라면 LD_LIBRARY_PATH 환경변수에 /usr/local/lib 추가해주셔야 합니다.
덧 3. Trac 쓰시는 분들 중 이렇게 하고 나서 Trac 접속해보면 svn에 접속이 안되니 어쩌니 에러 보일수도 있습니다. 이럴때는 가볍게 tracd 재기동

댓글 없음:

댓글 쓰기

가장 많이 본 글