우리 회사는 현재 CI 빌드 속도를 높이기위한 다양한 전략을 연구하고 있습니다. 빌드를 프로파일 링하고 I/O 병목 현상으로 인해 제약을 받았다. 가까운 장래에 (~ 1-2 개월) 그 문제를 처리 할 수있는 옵션이 있지만 의 개선 사항을보고 싶습니다.빌드 서버에서 램 디스크를 사용하는 것이 현명합니까?
나는 체크 아웃과 빌드 파일 위치로 램 디스크를 사용하도록 제안했다. 빌드 출력과 로그는 물론 물리적 디스크에 저장됩니다.
이 방법을 사용하는 것이 현명한 방법입니까 아니면 중요한 단점입니까? 하드웨어 측면에 대한 답변을 찾는 것이 아니라 일반적인 빌드 시스템 (예 : MSBuild)과 램 디스크 간의 상호 작용으로 인해 문제가 발생하거나 다른 위험이있는 경우이를 인식하고 있어야합니다.
간단한 메모 : 여기 야간 빌드에 대해 이야기하고 있다고 가정합니까? 이 경우 물론 처음부터 빌드의 최대 수를 짤 필요가 있습니다. 매일 빌드 된 경우 개발자가 최대 5MB의 빌드 시간을 유지하여 개발자가 잠재적 인 문제에 대한 빠른 피드백을 얻을 수 있도록 제안합니다. 각각의 커밋 :이 경우, 증분 * 컴파일을 수행하는 것이 가장 유용한 시간입니다. 즉, svn (hg/git/etc.) 업데이트를 수행하고 Make (또는 Ant, Nant 등)를 사용하여 - 변경된 사항을 컴파일하십시오. 훌륭한 작성된 Makefile을 사용하면 작업 속도가 크게 빨라질 수도 있습니다. 그냥 내 0.02 € :-) –
나는 여기 (모든 커밋 후 빌드) CI에 대해 얘기하고 있습니다. 우리는 이미 점진적 빌드를 활용하고 있지만 감사합니다. –
@Christophe Muller는 빌드가 최대 5 Mn이되어야한다는 담요 선언문을 작성하면 빌드의 환경, 크기 및 요구 사항을 알지 못해서 정말 우습다. 우리는 CI 서버에서 실행되며 컴파일 및 패키징을 포함하여 2 분 이내에 빌드 할 수있는 제품을 보유하고 있습니다. 우리는 여러 .NET 솔루션, 기본 Windows 서비스, 여러 Adobe Flex 프로젝트, 유닛 테스트, 코드 범위, 패키징 및 테스트 랙에의 자동 배포를 포함하는 또 다른 제품을 보유하고 있습니다. 전체 프로세스 (모든 체크인이있을 때 모두 실행되는 것은 아님)는 2.5 시간 이상 *입니다. –