2

StarTeam 서버와 함께 CruiseControl을 사용하고 있으며 StarTeam 서버가 충돌하는 데 문제가 있습니다. 우리는 서버를 너무 세게 치고 있는지 궁금해하고 있습니다. 3 대의 CruiseControl 장비와 총 30 개의 프로젝트에 걸쳐 StarTeam에 로그인하여 매분마다 수정 여부를 확인합니다. 대부분의 프로젝트에는 ~ 20,000 개의 파일이 있습니다. 이 유형의 시나리오에서 StarTeam을 사용하여 성능 제한을 경험 한 사람이 있습니까?CruiseControl (StarTeam 또는 대안)을 사용할 때 버전 제어 서버 성능

또한 TFS, Perforce, SVN 등과 같은 다른 버전 제어 시스템과 함께 CruiseControl의 성능 메트릭에 관심이 있습니다. CruiseControl과 많은 수의 프로젝트를 사용할 때 확장 성 문제가 있습니까? 파일?

+0

해당 프로젝트에서로드하는 파일 수가 많거나 수정하여 StarTeam 리포지토리에 다시 커밋 한 파일이 많아서 충돌이 발생했다고 생각하십니까? – VonC

+0

아쉽게도 로그는별로 도움이되지 않습니다. 적어도 현재 설정되어있는 방식입니다. Borland가 말하는 "로그인이 너무 많습니다"라는 로그인 수가 표시됩니다. 그러나 이는 CI와 다소 호환되지 않습니다. 그리고 간단히 로그인하면 서버가로드 될 것이라고 확신하지 못합니다. –

답변

1

CruiseControl이 아닌 TeamCity를 사용하지만 Star Integration Team을 지속적으로 사용해 본 경험이 있습니다. 우리의 경우, TeamCity에서 StarTeam으로의 정기적 인 연결은 성능 모니터링의 간판으로 간신히 등록됩니다.

서버에서 StarTeam 로그 파일을 보았습니까? - 일반적으로 코드 볼트 또는 하이브의 루트 디렉토리에 있습니다. 나는 보통 문제를 해결하기에 충분한 로그를 찾았습니다. 여기에 설명 된대로

+0

지금 로그 파일은 우리 서버가 2 분마다 기록한다는 것을 보여줍니다 (20 분 수정 세트 타이머가있는 15 개 프로젝트). 로그에는 체크 아웃 활동이 표시되지 않고 로그인 만 표시됩니다. 그리고 내가 얻는 이야기는 "너무 자주 로그인하는 것입니다!" –

+0

TeamCity에서 사용하는 StarTeam 클라이언트 jar는 올바르게 작동합니다. 검사가 끝나면 연결이 끊어집니다. 내 TeamCity 서버에는 12 개의 프로젝트가 구성되어 있으며 (IIRC) 대부분 5 분 간격으로 확인하도록 설정되어 있으며 다른 팀에서는 매분마다 확인하도록 설정되어 있습니다. – Bevan

1

당신은 "복합 수정 설정"을 사용하여 보길 원하는 :

합니까 스타 팀 지원 "트리거" ? CruiseControl 시스템에서 매분마다 변경 사항을 확인하는 대신 StarTeam 시스템에서 파일을 터치하여 코드가 변경된 시점을 CruiseControl에 알릴 수 있습니다.

기본적으로 프로젝트를 업데이트하면 VCS가 CruiseControl이 모니터링하는 파일 (예 : project-a-update.txt)을 터치합니다. 파일이 변경되었다는 것을 알게되면 CruiseControl은 VCS에서 업데이트하는 것을 방해합니다. 따라서 전체 저장소 대신 N 분마다 프로젝트마다 단일 텍스트 파일을 폴링합니다.

0

내가 알 수있는 한, StarTeam은 트리거를 지원하지 않습니다. CruiseControl.NET StarTeam 작업은 폴링 만 지원하며 StarTeam이 기본적으로 트리거를 지원하는 곳에서는 어디에도 증거를 보지 못했습니다.

제한적으로 StarTeam을 푸시해도 똑같은 문제가 발생합니다. 확신 할 수는 없지만 CruiseControl뿐만 아니라 개발자가 프로젝트를 매우 활발하게 수행 할 때 문제가 더 자주 발생하기 때문에 충돌 문제는 동시 액세스와 관련이 있다고 생각하기 시작했습니다.

변경 사항 폴링에 대한 패널티도 상당히 커지고 있습니다. 더 나쁜 것은 페널티가 두 배가된다는 것입니다. StarTeam에 대한 첫 번째 호출은 빌드를보고하고 트리거하기위한 변경 집합을 가져 오는 "hist"호출이며, "co"호출은 전체 소스 트리에 대한 두 번째 검사를 수행하여 유효 기간이 만료되었거나 누락 된 항목을 체크합니다 파일. 만약 누군가 StarTeam 프로젝트를 둘러싼 방아쇠를 만들 수있는 방법을 제안 할 수 있다면, 나는 그것을 시도해보고 싶다.

+0

한 가지 가능한 변경 사항은 "MPX"서비스를 사용하는 것입니다.이 서비스는 이벤트 중심의 변경 내용을 서버에서 푸시하는 것으로되어 있습니다. 변경이 발생하면 서버는 MPX 피드에 가입 한 모든 사람에게 알립니다. 그러나 이것은 CruiseControl 아키텍처에 대한 막대한 변화입니다 ... –

+0

"MPX"에 대한 정보를 이전에 들어 보지 못했습니까? –

+0

MPX는 기본적으로 서버 변경에 대한 게시/가입 메커니즘입니다. 독점적이고 암호화 된 것을 제외하고는 변경 사항에 대한 RSS 피드와 같습니다. http://dn.codegear.com/article/29987 참조 –

0

추가 정보를 찾을 수있었습니다.

StarTeam이 항상 CruiseControl 액세스의 경우 사용자 (또는 에이전트)의 연결을 끊는 것은 아니므로 동일한 사용자/에이전트에 대해 수십 개의 열린 연결/로그인이 발생할 수 있습니다.불행히도, 서버에 과부하가 걸리지 않아서 이것이 관련 문제인지 확인하는 것은 매우 어렵습니다.

우리는 MPX가없는 이전 버전의 StarTeam을 사용하고 있습니다. 나는 누군가가 MPX 방법을 지원하는 다른 지속적인 통합 환경에서 StarTeam을 사용해 본 경험이 있는지 궁금합니다.

0

첫째, 저는 StarTeam에 대한 경험이 없습니다! 나는 CruiseControl과 Subversion의 경험을 가지고있다.

일정 간격을 1 분보다 덜 공격적으로 변경할 수 있습니다. 3-5 분은 일반적으로 프로젝트 점검이 필요합니다. 그러나 나는 당신이 매우 자주 점검 할 필요가있는 이유가 있음을 인정합니다.

Subversion은 잘 조정됩니다. 이는 크루즈가 업데이트가 있는지 확인할 때마다 로컬 버전 번호와 프로젝트의 원격 버전 번호를 비교할 때마다 각 파일을 확인할 필요가 없기 때문입니다. 따라서이 검사 속도는 프로젝트의 파일 수에 영향을받지 않습니다.

이 정보가 도움이되기를 바랍니다.

1

여러 활성 프로젝트에서 CC를 실행할 때 가장 큰 성능 향상은 동일한 시스템에 MPX 캐시 에이전트를 설치하고 파일 특성 및 내용을 저장하고 있는지 확인하는 것입니다. (글쎄, 빌드에서 ccache를 사용해야합니다.)

트리거 아이디어는 StarTeam SDK에 있지만 CC와의 통합 방법은 잘 모르겠습니다. 빌드가 필요한지 확인하려면 서버의 마지막 풀을 클린 디렉토리에 보관하고 stcmd list를 사용하여 변경 사항을 비교합니다. 이것은 매우 신속합니다.