CrestVPS

self hosted github runner

CI 및 빌드 러너

탭을 전환하기도 전에 끝나는 빌드.

배포할 구성

€44.03/월

€62.9030% 연간

호스팅 CI 분은 계량되고, 대기열이 있으며, 느립니다. 그리고 팀이 생산적으로 일하기 시작하는 순간 비용 곡선은 가파르게 올라갑니다. 전용 코어와 빠른 NVMe를 갖춘 인스턴스 한 쌍은 대부분의 호스팅 티어를 능가하는 빌드 성능을 제공하며, 푸시 횟수와 관계없이 매달 고정된 비용이 듭니다. 중첩 가상화가 포함되어 있어 Docker-in-Docker와 KVM 기반 테스트 스위트를 우회 없이 실행할 수 있습니다.

이 구성의 이유

TORQUE가 코어 수, Gen5 NVMe가 아티팩트 처리량, 중첩 가상화는 무료로 제공됩니다. 포지에 러너를 등록하고 호스팅 플랜을 삭제하세요.

배포할 구성

PlanTORQUE T2
vCPU8 (dedicated)
RAM32 GB
스토리지400 GB
이미지Ubuntu Server 24.04 LTS

사이징

동시 작업당 전용 코어 2개와 4GB는 최소 사양입니다. 컴파일 언어는 4코어와 8GB가 필요합니다. 따라서 32코어 TORQUE 노드는 32개가 아닌 무거운 작업 약 8개 또는 가벼운 작업 약 14개를 실행합니다. 어느 쪽보다 스크래치 디스크가 더 중요합니다. 이미지 레이어, 의존성 트리, 빌드 출력을 위해 동시 작업당 NVMe에 30-50GB를 할당하세요. 작업에 중첩 가상화가 필요하면 노드당 코어를 하나 추가하세요. 노드를 추가할 시점은 작업 지속 시간이 아니라 대기열 대기 시간으로 판단하세요.

중첩 가상화와 필요한 경우

대부분의 CI는 컨테이너에서 잘 실행됩니다. 게스트 내부에서 실제 하이퍼바이저가 필요한 세 가지 경우: VM 이미지 및 cloud-init 테스트, KVM 가속으로 Android 또는 임베디드 에뮬레이터 실행, 신뢰할 수 없는 풀 리퀘스트가 러너에 도달해서는 안 되는 코드를 실행하는 작업. TORQUE는 SVM을 게스트에 노출하므로 VPS 내부에서 KVM이 작동하고 에뮬레이터는 소프트웨어 에뮬레이션(Android 테스트 스위트에서 약 10배 차이)이 아닌 네이티브 속도로 실행됩니다. 비용은 외부 하이퍼바이저에 코어 하나와 내부 게스트의 약간 느린 디스크입니다. 둘 다 예산에 포함하세요.

아티팩트 경로가 일반적으로 병목입니다

느린 파이프라인을 프로파일링하면 컴파일 단계가 가장 큰 비중을 차지하는 경우는 드뭅니다. 기본 이미지 가져오기, 캐시 복원, 아티팩트 업로드 및 결과 푸시가 일반적인 빌드에서 대부분의 벽시계 시간을 차지합니다. 수익 순서대로 세 가지 수정: 같은 프라이빗 VLAN에 레지스트리 풀스루 캐시를 두어 레이어가 공개 인터넷이 아닌 로컬 네트워크를 통해 도착하도록 합니다. 스크래치를 NVMe에 두어 레이어 압축 해제가 탐색에 묶이지 않도록 합니다. 캐시 키를 정밀하게 만들어 모놀리식 아카이브 대신 필요한 것만 복원합니다. 밀집된 Bergamo 코어는 저렴합니다. 네트워크 대기는 저렴하지 않습니다.

문제점

  • Docker-in-Docker를 위해 overlayfs 위에 overlayfs를 쌓는 경우. 중첩 오버레이 드라이버는 느리고 가끔 레이어가 손상됩니다. 작업 내부에서 전용 블록 디바이스를 사용하거나 중첩 KVM 위에서 빌더를 실행하세요.
  • 정리를 하지 않는 경우. 댕글링 이미지, 빌드 캐시, 오래된 볼륨이 몇 주 안에 스크래치 NVMe를 채우며, 첫 증상은 1년 동안 작동하던 단계에서 빌드가 실패하는 것입니다. 실패 후가 아니라 타이머에 따라 정리하세요.
  • 캐시 전송 시간이 빌드 시간을 초과하게 두는 경우. 작업당 3GB 의존성 캐시를 가져오고 푸시하는 것은 처음부터 컴파일하는 것보다 더 많은 비용이 들 수 있습니다. 둘 다 측정하고, 캐시를 러너와 같은 프라이빗 VLAN에 두세요.

머신 튜닝

  • 기타Nested virtualisation (VMX/SVM) · 포함
  • CPU 스케줄링Pinned physical cores · €9
  • 스토리지 및 암호화ZFS with hourly snapshots · €7