컴퓨트 분
컴퓨트 분 (Compute minutes)
CI/CD job을 실행하는 프로젝트가 인스턴스 러너를 얼마나 사용했는지는 컴퓨트 분(compute minutes)으로 측정돼요. 설치 유형에 따라 네임스페이스는 사용할 수 있는 컴퓨트 분을 제한하는 컴퓨트 할당량을 가질 수 있습니다.
출처: 문서
본문
- 티어(Tier): Free, Premium, Ultimate
- 제공 방식(Offering): GitLab.com, GitLab Self-Managed, GitLab Dedicated
컴퓨트 할당량은 모든 관리자 관리 인스턴스 러너에 적용할 수 있어요:
- GitLab.com 또는 GitLab Self-Managed의 모든 인스턴스 러너
- GitLab Dedicated의 모든 자체 호스팅 인스턴스 러너
컴퓨트 할당량은 기본적으로 비활성화되어 있지만, 최상위 그룹과 사용자 네임스페이스에 활성화할 수 있어요. GitLab.com에서는 Free 네임스페이스의 사용을 제한하기 위해 할당량이 기본적으로 활성화됩니다. 유료 구독을 구매하면 한도가 늘어나요.
GitLab Dedicated의 GitLab 호스팅 인스턴스 러너에는 인스턴스 러너 컴퓨트 할당량을 적용할 수 없습니다.
인스턴스 러너
GitLab.com, GitLab Self-Managed의 인스턴스 러너와 GitLab Dedicated의 자체 호스팅 인스턴스 러너의 경우:
- 인스턴스 러너 사용량 대시보드에서 사용량을 확인할 수 있어요.
- 할당량이 활성화된 경우: - 할당량 한도에 가까워지면 알림을 받아요. - 할당량을 초과하면 강제 조치가 적용돼요.
GitLab.com의 경우:
- 기본 월 컴퓨트 할당량은 구독 티어에 따라 결정돼요. Free 티어 네임스페이스는 매월 400 컴퓨트 분을 받아요. 유료 티어는 더 높은 월 할당량을 받습니다.
- 더 필요하면 추가 컴퓨트 분을 구매할 수 있어요.
컴퓨트 분 사용량
컴퓨트 사용량 계산
각 job의 컴퓨트 분 사용량은 다음 공식으로 계산돼요:
Job duration / 60 * Cost factor
- Job duration: job이 실행되는 데 걸린 시간(초).
created나pending상태에서 보낸 시간은 포함하지 않아요. - Cost factor: 러너 유형과 프로젝트 유형에 기반한 숫자.
결과 컴퓨트 분은 job의 최상위 네임스페이스 사용량에 더해집니다.
예를 들어 사용자 alice가 파이프라인을 실행하면:
gitlab-org네임스페이스의 프로젝트에서 실행하면, 파이프라인의 각 job이 사용한 컴퓨트 분은alice네임스페이스가 아니라gitlab-org네임스페이스의 전체 사용량에 더해져요.- 그들의
alice네임스페이스에 있는 개인 프로젝트에서 실행하면, 컴퓨트 분은 그들의 네임스페이스 전체 사용량에 더해져요.
하나의 파이프라인이 사용한 컴퓨트는 파이프라인에서 실행된 모든 job이 사용한 컴퓨트 분의 총합이에요. job은 동시에 실행될 수 있으므로, 총 컴퓨트 사용량은 파이프라인의 총 소요 시간보다 클 수 있습니다.
트리거 job은 러너에서 실행되지 않으므로, strategy:depend로 다운스트림 파이프라인 상태를 기다릴 때도 컴퓨트 분을 소비하지 않아요. 트리거된 다운스트림 파이프라인은 다른 파이프라인과 마찬가지로 컴퓨트 분을 소비합니다.
사용량은 월 단위로 추적돼요. 매월 1일에 모든 네임스페이스의 그 달 사용량은 0으로 초기화됩니다.
비용 계수 (Cost factor)
컴퓨트 분이 소비되는 비율은 러너 유형과 프로젝트 설정에 따라 달라져요.
GitLab.com 호스팅 러너의 비용 계수
GitLab 호스팅 러너는 러너 유형(Linux, Windows, macOS)과 가상 머신 구성에 따라 다른 비용 계수를 가져요:
| 러너 유형 | 머신 크기 | 비용 계수 |
|---|---|---|
| Linux x86-64 (기본값) | small |
1 |
| Linux x86-64 | medium |
2 |
| Linux x86-64 | large |
3 |
| Linux x86-64 | xlarge |
6 |
| Linux x86-64 | 2xlarge |
12 |
| Linux x86-64 + GPU 지원 | medium, GPU standard |
7 |
| Linux Arm64 | small |
1 |
| Linux Arm64 | medium |
2 |
| Linux Arm64 | large |
3 |
| macOS M1 | medium |
6 (상태: Beta) |
| macOS M2 Pro | large |
12 (상태: Beta) |
| Windows | medium |
1 (상태: Beta) |
이 비용 계수들은 GitLab.com 호스팅 러너에 적용돼요.
프로젝트 유형에 따라 특정 할인이 적용됩니다:
| 프로젝트 유형 | 비용 계수 | 사용된 컴퓨트 분 |
|---|---|---|
| 표준(Standard) 프로젝트 | 러너 유형 기준 | job 시간 (duration / 60 × cost factor)마다 1분 |
| GitLab for Open Source 프로그램의 공개 프로젝트 | 0.5 |
job 시간 2분마다 1분 |
| GitLab Open Source 프로그램 프로젝트의 공개 포크 | 0.008 |
job 시간 125분마다 1분 |
| GitLab 프로젝트에 대한 커뮤니티 기여 | 동적 할인 | 다음 섹션 참고 |
GitLab 프로젝트에 대한 커뮤니티 기여
커뮤니티 기여자는 GitLab이 유지 관리하는 오픈소스 프로젝트에 기여할 때 인스턴스 러너에서 최대 300,000분을 사용할 수 있어요. 이 최대 300,000분은 GitLab 제품에 포함된 프로젝트에만 독점 기여할 때만 가능합니다.
인스턴스 러너에서 사용 가능한 총 분 수는 다른 프로젝트의 파이프라인이 사용한 컴퓨트 분만큼 줄어들어요. 이 300,000분은 모든 GitLab.com 티어에 적용됩니다.
비용 계수 계산은 다음과 같아요:
Monthly compute quota / 300,000 job duration minutes = Cost factor
예를 들어 Premium 티어에서 월 컴퓨트 할당량이 10,000이라면:
- 10,000 / 300,000 = 0.03333333333 비용 계수.
이 감소된 비용 계수에서는:
- MR 소스 프로젝트가
gitlab-com/www-gitlab-com이나gitlab-org/gitlab같은 GitLab 유지 관리 프로젝트의 포크여야 해요. - MR 대상 프로젝트가 포크의 부모 프로젝트여야 해요.
- 파이프라인이 MR 파이프라인, 병합 결과(merged results) 또는 머지 트레인(merge train) 파이프라인이어야 해요.
컴퓨트 분 사용량 줄이기
프로젝트가 컴퓨트 분을 너무 많이 소비한다면 다음 전략을 시도해 보세요:
- 프로젝트 미러를 사용한다면, 미러 업데이트용 파이프라인이 비활성화되어 있는지 확인하세요.
- 예약 파이프라인 빈도를 줄이세요.
- 필요하지 않을 때는 파이프라인을 건너뛰세요.
- 새 파이프라인이 시작되면 자동으로 취소될 수 있는 interruptible job을 사용하세요.
- 매 파이프라인에서 실행할 필요가 없는 job은
rules로 필요할 때만 실행되게 하세요. - 일부 job에는 프라이빗 러너를 사용하세요.
- 포크에서 작업하면서 부모 프로젝트에 MR을 제출한다면, 유지 관리자에게 부모 프로젝트에서 파이프라인 실행을 요청할 수 있어요.
오픈소스 프로젝트를 관리한다면, 이런 개선으로 기여자 포크 프로젝트의 컴퓨트 분 사용량도 줄어 더 많은 기여가 가능해질 수 있어요.
자세한 내용은 파이프라인 효율성 가이드를 참고하세요.