설치 시스템 요구 사항
이 페이지에는 GitLab을 설치하고 사용하는 데 필요한 최소 요구 사항에 대한 정보가 포함되어 있습니다.
하드웨어 요구 사항
리포지터리
필요한 하드 드라이브 공간은 주로 GitLab에 저장하려는 리포지터리의 크기에 따라 다르지만 지침으로 모든 리포지터리가 차지하는 공간만큼의 여유 공간을 확보해야 합니다.
Linux 패키지는 설치를 위해 약 2.5GB의 저장 공간을 필요로 합니다.
미래에 하드 드라이브 공간을 유연하게 확장하고 싶다면 논리 볼륨 관리 (LVM)을 사용하여 필요할 때 추가 하드 드라이브를 추가할 수 있도록 마운트하는 것을 고려해보세요.
로컬 하드 드라이브 외에도 네트워크 파일 시스템 (NFS) 프로토콜을 지원하는 볼륨을 마운트할 수 있습니다. 이 볼륨은 파일 서버, 네트워크 첨부 리포지터리 (NAS) 장치, 스토리지 영역 네트워크 (SAN) 또는 Amazon Web Services (AWS) Elastic Block Store (EBS) 볼륨에 위치할 수 있습니다.
충분한 RAM과 최신 CPU가 있다면 GitLab의 속도는 주로 하드 드라이브 탐색 시간에 의해 제한됩니다. 빠른 드라이브(7200 RPM 이상) 또는 솔리드 스테이트 드라이브(SSD)를 사용하면 GitLab의 응답 성능이 향상됩니다.
CPU
CPU 요구 사항은 사용자 수와 예상 작업량에 따라 달라집니다. 작업량에 따라 실제 요구 사항은 더 높을 수 있습니다. 작업량은 사용자의 활동 정도, 자동화 사용량, 미러링, 리포지터리/변경 크기 등 여러 요소에 의해 영향을 받습니다.
사용자 수 / 작업량에 따른 CPU 권장 사항은 다음을 참조하세요:
- 초당 20개 요청 (RPS) 또는 1000명 사용자 - 8 vCPU.
- 더 많은 사용자 또는 작업량이 필요한 경우? 참조 아키텍처 페이지를 참조하세요.
메모리
메모리 요구 사항은 사용자 수와 예상 작업량에 따라 달라집니다. 작업량에 따라 실제 요구 사항은 더 높을 수 있습니다. 작업량은 사용자의 활동 정도, 자동화 사용량, 미러링, 리포지터리/변경 크기 등 여러 요소에 의해 영향을 받습니다.
사용자 수 / 작업량에 따른 메모리 권장 사항은 다음을 참조하세요:
- 초당 20개 요청 (RPS) 또는 1000명 사용자 - 8GB (최소), 16GB (권장).
- 더 많은 사용자 또는 작업량이 필요한 경우? 참조 아키텍처 페이지를 참조하세요.
데이터베이스
포스트그리스는 Linux 패키지에 번들되어 있는 유일하게 지원되는 데이터베이스입니다. 외부 포스트그리스 데이터베이스를 사용할 수도 있습니다(https://docs.gitlab.com/omnibus/settings/database.html#using-a-non-packaged-postgresql-database-management-server).
포스트그리스 요구 사항
포스트그리스를 실행하는 서버는 사용 가능한 리포지터리가 적어도 5-10GB여야 하지만, 정확한 요구 사항은 사용자의 수에 따라 다릅니다. Ultimate 고객을 위해 서버는 12GB 이상의 저장 공간을 확보해야 하는데, 1GB의 취약성 데이터를 가져와야하기 때문입니다.
이러한 이유로 개발 및 테스트에 사용된 최소한의 포스트그리스 버전(아래 표에 명시된)을 사용하는 것을 강력히 권장합니다.
GitLab 버전 | 최소 포스트그리스 버전1 | 최대 포스트그리스 버전2 |
---|---|---|
13.0 | 11 | 2 |
14.0 | 12.7 | 2 |
15.0 | 12.10 | 13.x (14.x3) |
16.0 | 13.6 | 15.x4 |
17.0 (planned) | 14.9 | 15.x4 |
- 포스트그리스 마이너 릴리스 업그레이드(예: 14.8에서 14.9)는 버그 및 보안 수정만 포함됩니다. 이 표의 패치 레벨은 규범적이지 않습니다. 알려진 버그를 피하려면 최신 패치 레벨을 배포하여 GitLab에서 발생할 수 있는 알려진 PostgreSQL 버그를 피하십시오.
- 특정 최소 이상의 포스트그리스 주요 릴리스를 실행하려면
Linux 패키지(옴니버스) GitLab이 더 최신 버전을 제공했는지 확인하십시오.
postgresql-new
는 확실히 지원되는 더 최신 버전입니다. - PostgreSQL 14.x는 GitLab 15.11에서만 테스트됨.
- GitLab 16.1 및 이후에서 테스트됨.
다음의 확장 기능이 각 GitLab 데이터베이스에 로드되어 있는지 확인해야 합니다. 이 요구 사항 및 문제 해결에 대해 자세히 읽어보세요.
확장 기능 | 최소 GitLab 버전 |
---|---|
pg_trgm
| 8.6 |
btree_gist
| 13.1 |
plpgsql
| 11.7 |
다음의 관리형 포스트그리스 서비스는 호환되지 않는 것으로 알려져 있으므로 사용되어서는 안됩니다.
GitLab 버전 | 관리형 서비스 |
---|---|
14.4+ | Amazon Aurora (참조 14.4.0) |
GitLab Geo를 위한 추가 요구 사항
GitLab Geo를 사용하는 경우에는 리눅스 패키지를 사용하거나 검증된 클라우드 관리 인스턴스를 사용하는 것이 강력히 권장됩니다. 우리는 다른 외부 데이터베이스와의 호환성을 보장할 수 없습니다.
Geo를 실행하기 위한 전체 요구 사항을 검토하는 것이 좋습니다.
운영 체제 로캘 호환성 및 은폐된 인덱스 손상
glibc
의 로캘 데이터 변경으로 인해 PostgreSQL 데이터베이스 파일은 다른 운영 체제 릴리스 간에 완전히 호환되지 않을 수 있습니다.
인덱스 손상을 피하려면 다음 상황에서 로캘 호환성을 확인하십시오:
- 서버간 이진식 PostgreSQL 데이터 이동.
- Linux 배포판 업그레이드.
- 서드파티 컨테이너 이미지 업데이트 또는 변경.
자세한 정보는 PostgreSQL 운영 체제 업그레이드 방법을 참조하십시오.
Gitaly 클러스터 데이터베이스 요구 사항
Gitaly 클러스터 문서에서 자세히 읽어보세요.
GitLab 데이터베이스의 전용 사용
GitLab, Geo, Gitaly Cluster 또는 기타 컴포넌트용으로 생성 또는 사용되는 데이터베이스는 GitLab의 전용 사용을 위해 있어야 합니다. 데이터베이스, 스키마, 사용자 또는 기타 속성에 직접 변경을 가하지 마십시오. GitLab 설명서의 절차를 따르거나 GitLab 지원팀 또는 다른 GitLab 엔지니어의 지시를 따를 때를 제외하고 변경하지 마십시오.
-
기본적으로 GitLab 애플리케이션은 세 가지 스키마를 사용합니다:
- 기본
public
스키마 -
gitlab_partitions_static
(자동 생성) -
gitlab_partitions_dynamic
(자동 생성)
다른 스키마를 매뉴얼으로 생성해서는 안 됩니다.
- 기본
-
GitLab은 Rails 데이터베이스 마이그레이션 일환으로 새 스키마를 생성할 수 있습니다. 이는 GitLab 업그레이드를 수행할 때 발생합니다. GitLab 데이터베이스 계정은 이를 수행할 수 있는 액세스가 필요합니다.
-
GitLab은 업그레이드 프로세스 중에 테이블을 생성하고 수정하며, 또한 파티션 된 테이블을 관리하기 위한 일환으로 이를 수행합니다.
-
GitLab 스키마를 수정해서는 안 됩니다 (예: 트리거 추가 또는 테이블 수정). 데이터베이스 마이그레이션은 GitLab 코드베이스의 스키마 정의에 대해 테스트됩니다. 스키마가 수정되면 GitLab 버전 업그레이드가 실패할 수 있습니다.
Puma 설정
Puma의 권장 설정은 실행 중인 인프라에 따라 결정됩니다. Linux 패키지는 권장 Puma 설정으로 기본 설정됩니다. 설치 방법에 관계없이 Puma 설정을 조정할 수 있습니다:
- Linux 패키지를 사용하는 경우, Puma 설정에서 Puma 설정을 변경하는 지침을 확인하십시오.
- GitLab Helm 차트를 사용하는 경우,
webservice
차트를 참조하십시오.
Puma 워커
권장하는 워커의 수는 다음 중 가장 높은 값으로 계산됩니다:
2
- CPU 및 메모리 리소스 가용성의 결합(자동으로 Linux 패키지에 구성된 방식을 참조하십시오).
다음 시나리오를 살펴봅시다:
-
코어 2개 / 메모리 8 GB인 노드는 2개의 Puma 워커로 구성되어야 합니다.
계산 방법:
다음 중 가장 높은 숫자 2 그리고 [ 다음 중 가장 낮은 숫자 - 코어 수: 2 - 메모리 제한: (8 - 1.5) = 6.5 ]
따라서 2와 2 중 가장 높은 값은 2입니다.
-
코어 4개 / 메모리 4 GB인 노드는 2개의 Puma 워커로 구성되어야 합니다.
다음 중 가장 높은 숫자 2 그리고 [ 다음 중 가장 낮은 숫자 - 코어 수: 4 - 메모리 제한: (4 - 1.5) = 2.5 ]
따라서 2와 2 중 가장 높은 값은 2입니다.
-
코어 4개 / 메모리 8 GB인 노드는 4개의 Puma 워커로 구성되어야 합니다.
다음 중 가장 높은 숫자 2 그리고 [ 다음 중 가장 낮은 숫자 - 코어 수: 4 - 메모리 제한: (8 - 1.5) = 6.5 ]
따라서 2와 4 중 가장 높은 값은 4입니다.
충분한 CPU 및 메모리 용량이 제공되면 Puma 워커 수를 늘릴 수 있습니다. 일반적으로 더 많은 Puma 워커 수는 응답 시간을 줄이고 병렬 요청을 처리할 수 있는 능력을 높이는 데 도움이 됩니다. 인프라에 대한 최적 설정을 확인하기 위해 테스트를 수행해야 합니다.
Puma 스레드
권장하는 스레드 수는 총 메모리 등 여러 요소에 따릅니다.
- 운영 체제의 최대 메모리가 2GB인 경우, 권장하는 스레드 수는
1
입니다. 더 높은 값은 과도한 스와핑과 성능 저하를 초래합니다. - 다른 모든 경우에서, 권장하는 스레드 수는
4
입니다. Ruby MRI multi-threading 동작 방식에 따라 이를 더 높게 설정하지 않는 것이 좋습니다.
Puma 워커 당 최대 메모리
기본적으로 각 Puma 워커는 1.2GB의 메모리로 제한됩니다. 이 메모리 설정을 조정할 수 있으며, Puma 워커 수를 늘려야 하는 경우 조정해야 합니다.
Redis
Redis는 모든 사용자 세션 및 백그라운드 작업 대기열을 저장합니다.
Redis의 요구 사항은 다음과 같습니다:
- GitLab 16.0 이상에서는 Redis 6.x 또는 7.x가 필요합니다. 그러나 Redis 6.0은 더 이상 지원되지 않으므로 Redis 6.2 이상으로 업그레이드해야 합니다.
- Redis 클러스터 모드는 지원되지 않습니다. Redis 스탠드얼론을 사용해야 하며
HA
와 함께 또는 함께 사용하지 않아도 됩니다. - Redis의 저장 요구 사항은 평균적으로 사용자 당 약 25 KB입니다.
- Redis 배출 모드가 적절히 설정되어 있어야 합니다.
Sidekiq
Sidekiq는 다중 스레드 프로세스로 백그라운드 작업을 처리합니다. 이 프로세스는 전체 Rails 스택 (200MB+)으로 시작하지만 메모리 누수로 인해 시간이 경과함에 따라 커질 수 있습니다. 매우 활동적인 서버(청구 가능한 사용자 10,000명)에서 Sidekiq 프로세스는 1GB 이상을 사용할 수 있습니다.
Prometheus 및 해당 익스포터
Prometheus 및 해당 익스포터는 기본적으로 GitLab의 심층 모니터링을 위해 활성화됩니다. 기본 설정으로 이러한 프로세스는 약 200MB의 메모리를 사용합니다.
Prometheus 및 해당 익스포터를 비활성화하거나 자세한 정보를 보려면 Prometheus 설명서를 확인하십시오.
GitLab Runner
GitLab Runner를 GitLab을 설치하려는 기계에 설치하지 않는 것을 강력히 권장합니다. GitLab Runner를 구성하고 CI 환경에서 애플리케이션을 실행하는 데 사용할 도구에 따라 GitLab Runner는 사용 가능한 메모리의 상당한 양을 소비할 수 있습니다.
위에서 제공된 메모리 소비 계산은 GitLab Runner와 GitLab Rails 애플리케이션을 동일한 기계에서 실행하기로 결정한 경우에는 적용되지 않습니다.
GitLab Runner와 GitLab Rails 애플리케이션을 단일 기계에 설치하는 것은 안전하지 않습니다. 특히 GitLab Runner와 함께 셸 실행기를 사용할 계획이 있을 때 보안 이슈로 인해 안전하지 않습니다.
CI 기능을 사용하려는 경우 각 GitLab Runner에 대해 별도의 기계를 사용하는 것이 좋습니다. GitLab Runner 서버 요구 사항은 다음에 따라 달라집니다:
- GitLab Runner에서 구성한 실행기 유형.
- 빌드 작업을 실행하는 데 필요한 리소스.
- 작업 동시성 설정.
작업의 성격이 각각 다르기 때문에 최적 설정을 확인하기 위해 작업 동시성을 조정하는 실험이 필요합니다.
참고로, Linux의 SaaS 러너는 다음과 같이 구성됩니다:
- 1vCPU.
- 3.75GB의 RAM.
지원되는 웹 브라우저
GitLab은 다음과 같은 웹 브라우저를 지원합니다:
위에 나열된 웹 브라우저에 대해 GitLab은 다음을 지원합니다:
- 브라우저의 현재 및 이전 주요 버전.
- 지원되는 주요 버전의 현재 보조 버전.
보안
설치 후에는 GitLab 설치의 보안 유지 관련 지침을 읽고 준수해야 합니다.