2-CPU 피자 박스에서 멀티 CPU 몬스터까지 자동 빌드를 다시 스케일링 하는가?

StackOverflow https://stackoverflow.com/questions/472347

  •  19-08-2019
  •  | 
  •  

문제

현재 자동화 된 빌드는 1 개의 마스터 박스와 4 개의 Core-2-Duo 피자 박스 (약 2.5GHz)로 구성되며 각 3GB 메모리가 있으며 모두 Ubuntu Linux를 실행합니다. (사용 대나무)

하나 이상의 Solaris 상자에서 실행하기 위해 이것을 다시 교정하라는 요청을 받았습니다. 우리의 현재 빌드는 Java 빌드, 장기 러닝 통합 테스트 빌드 및 자동화 된 셀레늄 테스트의 혼합으로 구성됩니다. 우리의 현재 환경은 충분한 용량을 가지고 있으며 문제없이 코어를 잃을 수 있습니다.

우리는 "큰"메모리 (16-32GB? 선택할 수 있음)가있는 8 개의 CPU Solaris 기계를보고 있습니다. 아니면 몇 개의 CPU 기계일까요?

동작이 단일 상자 내에서 상당히 선형적인 방식으로 확장 될 것으로 예상 할 수 있습니까? 나는 여기서 실제 경험을 찾고 있습니다. IO가 문제가 될 수있는 방법에 대한 "이론적"관찰은 그다지 흥미롭지 않습니다.

도움이 되었습니까?

해결책

실제로 빌드는 대부분의 시간을 IO를 수행하는 데 많은 시간을 소비한다는 것을 알았습니다. 따라서 CPU의 수를 늘리는 것은 생각만큼 도움이되지 않습니다. 그러나 추가 기계에는 추가 디스크 및 네트워크 대역폭이 있습니다. 그래서 그들은 더 도움이 될 수 있습니다. 그러나 단일 상자의 구성을 개선하고 동일한 성능을 얻을 수 있습니다.

일반적으로 한 번에 달리는 몇 명은 몇 명입니까? 일반적으로 2 개의 빌드가 대기열 (및 2 개의 실행)을 가지고 있다면 한 번에 4 개의 빌드를 실행하는 것이 개선됩니다. 그러나 그 이상은 큰 차이를 만들지 않을 것입니다.

64GB의 메모리가있는 8 개의 코어 머신은 요즘 새로운 서버의 표준입니다. 이 구성에서는 디스크 액세스 시간을 개선하고 4-8 개의 빌더/에이전트를 실행하기 위해 SSD 드라이브를 얻는 것이 좋습니다. 일반적으로 8 개의 빌드가 언제라도 대기하는 경우에 충분할 수 있습니다.

다른 팁

테스트가 오랫동안 실행중인 경우 두 개의 빌드, 모든 빠른 테스트를 실행하는 빠른 빌드 및 밤새 만 실행할 수있는 느린 전체 빌드를 통해 이점을 얻을 수 있습니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top