2009-06-23 6 views
5

CVS 저장소에 거대한 프로젝트가 있습니다. 그 성능을 향상시킬 방법을 찾고 있습니다. CVS 압축이 도움이됩니까? 그리고 암호화는 어떨까요? 속도가 저하됩니까?CVS 성능

감사합니다.

+0

cvs 압축? ssh 압축을 의미하지 않습니까? –

+0

cvs 압축. – gmuller

+0

몇 가지 세부 정보가 더 필요합니다. 어떻게 저장소에 액세스하고 있습니까? 같은 기계? 지역 네트워크? 인터넷? 도움을 받으려면 병목 현상이 발생할 가능성이있는 위치를 알아야합니다. –

답변

9

CVS는 반복 사용으로 인해 시간이지나면서 느려집니다.

  • 당신이 전체 프로젝트를 체크 아웃 할 때, 서버가 (당신이 이후를 삭제 한 경우에도 - 디렉토리를 퍼지 체크 아웃 당신에게서이 숨 깁니다 후) 모든 디렉토리를 작성해야합니다.
  • 체크 아웃 할 때 모든 파일이 열리고 검사됩니다. 수백/수천 개의 파일이있는 경우 매우 느릴 수 있습니다.
  • 클라이언트에 보내기 전에 내용을 재구성해야하므로 트렁크의 HEAD를 꺼내려고하지 않으면 상황이 더욱 악화됩니다.

그런 다음 서버와 클라이언트간에 데이터를 이동하는 성능을 향상 시키려면 압축에 -z 옵션을 사용할 수 있습니다 (내용 유형에 따라 다름). 나는 -z6이 최상이라고 생각하지만, 파일의 성질에 따라 더 압축하거나 덜 압축 할 수 있습니다. GZIPLEVEL

-z

는 서버와의 통신에 압축 레벨을 설정합니다. 인수 GZIPLEVEL은 1에서 9까지의 숫자 여야합니다. 레벨 1은 최소 압축이며 (매우 빠르지 만 많이 압축하지는 않습니다). 레벨 9는 압축률이 가장 높습니다 (많은 CPU 시간을 사용하지만 데이터를 확실히 압착합니다). 레벨 9는 매우 느린 네트워크 연결에서만 유용합니다. 대부분의 사람들은 3과 5 사이의 레벨이 가장 유익하다고 생각합니다.

-z와 인수 사이의 공백은 선택 사항입니다.

3

성능 문제는 일반적으로 IO 관련입니다. (당신이 CPU를 100 %로 초과하는 것을 볼 수 없다면). 저장소를 성능이 향상되는지 확인하기 위해 더 빠른 드라이브 배열 (RAID 10 및/또는 더 높은 RPM 드라이브)에 배치하는 것이 좋습니다. 인터넷을 통해 저장소에 액세스하는 경우 대역폭 문제가 발생할 수 있습니다. 데이터의 양에 따라 다르지만 간단한 DSL 연결조차도 처리 할 수 ​​있어야합니다.

+0

맞아, 모두가 RAID 10을 시험해보기 위해 주위에 누워 있기 때문에 나는 이것을 투표했다.하지만 나는 대답의 일부만을 도끼로 생각해야한다고 생각한다. –

+1

보유한 서버 유형에 따라 다릅니다. 개발이 중요하다면 좋은 드라이브 배열이 필수적입니다. 4x 1TB WD 드라이브 ~ $ 400. 한 회사의 은행원이 거의 없습니다. – Nate

+1

나는 여기서 '거대한 것'이 무엇인지 궁금해한다 ... 350 달러는 당신에게 엔트리 레벨 인텔 80GB 솔리드 스테이트 디스크를 줄 것이다. 탐색 시간이 CVS 저장소에 매우 중요하다고 생각합니다. 좋은 SSD보다 더 좋을 수는 없습니다. –

2

cvs 자체는 afaik를 압축 할 수 없지만 ssh를 전송 용으로 사용하는 경우 ssh가이를 수행 할 수 있습니다 (기본적으로 생각합니다). 연결 속도가 느린 경우 도움이됩니다. 편집 : (SSH는 -C를 가지고로) 실제로 CVS가 -z 옵션을 가지고

암호화는 어떤 성능을 향상 하나 개 사용하지 않습니다. ssh를 사용하면 암호화도 수행 할 수 있지만 이는 성능이 아니라 보안을위한 것입니다.

저장소가 위치 할 때마다 저장소 및 임시 파일에 대한 디스크 액세스가 성능에 영향을줍니다. 그것은 기억과 결합됩니다. 체크 아웃 할 때, cvs는 (임시 파일로서) 클라이언트에게 보낼 것을 빌드 할 것입니다. 이것은 많은 디스크 접근과 어떤 경우에는 메모리 사용을 야기합니다 (특히 큰 바이너리 파일을 다루는 경우).