GitLab 설치 요구 사항

Tier: Free, Premium, Ultimate Offering: Self-Managed

이 페이지에는 GitLab을 설치하는 데 필요한 시스템 요구 사항에 관한 정보가 포함되어 있습니다.

저장 공간

필요한 저장 공간은 주로 GitLab에 보유하고 싶은 저장소의 크기에 따라 달라집니다. 안내 원칙으로, 적어도 모든 저장소를 결합한 만큼의 여유 공간이 있어야 합니다.

Linux 패키지는 설치를 위해 약 2.5GB의 저장 공간을 필요로 합니다. 저장 유연성을 위해 논리 볼륨 관리를 통해 하드 드라이브를 마운트하는 것을 고려해보세요. 응답 시간을 줄이기 위해 하드 드라이브는 적어도 RPM 7,200이나 솔리드 스테이트 드라이브를 갖추어야 합니다.

파일 시스템의 성능이 GitLab의 전체 성능에 영향을 줄 수 있으므로 저장을 위해 클라우드 기반 파일 시스템 사용을 피해야 합니다.

CPU

CPU 요구 사항은 사용자 수와 예상 워크로드에 달라집니다. 워크로드에는 사용자 활동, 자동화 및 미러링 사용, 저장소 크기가 포함됩니다.

초당 최대 20개 요청이나 1,000명 사용자에 대해서는 8 vCPU가 필요합니다. 더 많은 사용자나 더 높은 워크로드의 경우, 참조 아키텍처를 확인하세요.

메모리

메모리 요구 사항은 사용자 수와 예상 워크로드에 따라 다릅니다. 워크로드에는 사용자 활동, 자동화 및 미러링 사용, 저장소 크기가 포함됩니다.

초당 최대 20개 요청이나 1,000명 사용자에 대해서는 16GB의 메모리가 필요합니다. 더 많은 사용자나 더 높은 워크로드의 경우, 참조 아키텍처를 확인하세요.

일부 경우에는 GitLab이 적어도 8GB의 메모리로 실행될 수 있습니다. 자세한 정보는 메모리 제약 환경에서 GitLab 실행을 참조하세요.

PostgreSQL

PostgreSQL은 유일하게 지원되는 데이터베이스이며 Linux 패키지와 번들로 제공됩니다. 외부 PostgreSQL 데이터베이스를 사용할 수도 있습니다.

사용자 수에 따라, PostgreSQL 서버는 다음을 적어도 갖추어야 합니다:

  • 대부분의 GitLab 인스턴스의 경우, 적어도 5에서 10GB의 저장 공간
  • GitLab Ultimate의 경우, 적어도 12GB의 저장 공간 (1GB의 취약점 데이터를 가져와야 함)

다음 GitLab 버전을 위해 해당 PostgreSQL 버전을 사용하세요:

GitLab 버전 최소 PostgreSQL 버전 최대 PostgreSQL 버전
17.x 14.9 15.x
16.x 13.6 15.x (GitLab 16.1 및 이후 버전과 테스트됨)
15.x 12.10 14.x (GitLab 15.11에서만 테스트됨), 13.x

작은 PostgreSQL 릴리스는 버그 및 보안 수정만 포함됩니다. PostgreSQL에서 알려진 문제를 피하려면 항상 최신 소규모 버전을 사용하세요. 자세한 정보는 이슈 364763을 참조하세요.

명시된 것보다 나중에 PostgreSQL의 주 버전을 사용하려면, Linux 패키지에 해당 버전이 번들로 포함되어 있는지 확인하세요.

또한 GitLab 데이터베이스에 일부 확장 기능이 로드되어 있는지 확인해야 합니다. 자세한 정보는 PostgreSQL 확장 기능 관리을 참조하세요.

GitLab Geo

GitLab Geo를 위해서는 Linux 패키지 또는 검증된 클라우드 제공자를 사용하여 GitLab을 설치해야 합니다. 다른 외부 데이터베이스와의 호환성은 보장되지 않습니다.

자세한 정보는 Geo 실행을 위한 요구 사항을 참조하세요.

로캘 호환성

glibc에서 로캘 데이터를 변경하면, PostgreSQL 데이터베이스 파일은 더 이상 다른 운영 체제 간에 완전히 호환되지 않을 수 있습니다. 색인 손상을 피하려면 다음 상황에 대해 로캘 호환성을 확인하세요:

  • 이진 PostgreSQL 데이터를 서버 간에 이동
  • Linux 배포판 업그레이드
  • 타사 컨테이너 이미지 업데이트 또는 변경

자세한 정보는 PostgreSQL용 운영 체제 업그레이드를 참조하세요.

GitLab 스키마

GitLab, Geo, Gitaly Cluster, 또는 다른 구성 요소를 위한 데이터베이스를 생성하거나 사용해야 합니다. GitLab 문서의 절차 또는 GitLab 지원 또는 엔지니어의 지시에 따른 경우를 제외하고 데이터베이스, 스키마, 사용자 또는 다른 속성을 생성하거나 수정하면 안 됩니다.

기본 GitLab 애플리케이션은 세 개의 스키마를 사용합니다:

  • 기본 public 스키마
  • gitlab_partitions_static (자동으로 생성됨)
  • gitlab_partitions_dynamic (자동으로 생성됨)

Rails 데이터베이스 마이그레이션 중에 GitLab은 스키마나 테이블을 생성하거나 수정할 수 있습니다. 데이터베이스 마이그레이션은 GitLab 코드베이스의 스키마 정의에 대해 테스트됩니다. 스키마를 수정하면 GitLab 업그레이드가 실패할 수 있습니다.

Puma

추천 Puma 설정은 설치에 따라 달라집니다. 기본적으로 Linux 패키지는 권장 설정을 사용합니다.

Puma 설정을 조정하려면:

워커

추천하는 Puma 워커 수는 주로 CPU 및 메모리 용량에 따라 달라집니다. 기본적으로 Linux 패키지는 권장 워커 수를 사용합니다. 이 수는 어떻게 계산되는지에 대해 자세한 정보는 puma.rb를 참조하세요.

노드는 두 개 이상의 Puma 워커를 가져야 합니다. 예를 들어, 노드당 다음과 같은 워커가 있어야 합니다:

  • CPU 코어 2개 및 메모리 8GB: 2개의 워커
  • CPU 코어 4개 및 메모리 4GB: 2개의 워커
  • CPU 코어 4개 및 메모리 8GB: 4개의 워커
  • CPU 코어 8개 및 메모리 8GB: 6개의 워커
  • CPU 코어 8개 및 메모리 16GB: 8개의 워커

기본적으로 각 Puma 워커는 1.2GB의 메모리로 제한됩니다. 이 설정은 /etc/gitlab/gitlab.rb에서 조정할 수 있습니다.

충분한 CPU 및 메모리 용량이 제공되는 경우 Puma 워커 수를 늘릴 수도 있습니다. 더 많은 워커는 응답 시간을 줄이고 병렬 요청을 처리하는 능력을 향상시킵니다. 설치에 대한 최적의 워커 수를 확인하기 위해 테스트를 실행하세요.

쓰레드

Puma 쓰레드의 권장 개수는 총 시스템 메모리에 따라 다릅니다. 노드는 다음을 사용해야 합니다:

  • 최대 2GB 메모리를 갖는 운영 체제에 대해 하나의 쓰레드
  • 2GB 이상의 메모리를 갖는 운영 체제에 대해 네 개의 쓰레드

쓰레드를 더 늘리면 과도한 스왑 및 성능 하락으로 이어집니다.

Redis

Redis는 모든 사용자 세션 및 백그라운드 작업을 저장하며, 평균적으로 사용자 당 약 25KB가 필요합니다.

GitLab 16.0 이상에서는 Redis 6.x 또는 7.x가 필요합니다. 손상 및 종료 일정에 대한 자세한 내용은 Redis 문서를 참조하세요.

Redis에 대해:

  • 스탠드얼론 인스턴스(고가용성이 있는 경우 포함)를 사용하세요. Redis 클러스터는 지원되지 않습니다.
  • 적절한 유출 정책을 설정하세요.

Sidekiq

백그라운드 작업에 대한 다중 스레드 프로세스를 사용하는 Sidekiq입니다. 이 프로세스는 처음에는 200MB 이상의 메모리를 소비하며, 메모리 누수로 인해 시간이 지남에 따라 증가할 수 있습니다.

1만 명 이상의 청구 가능한 사용자가 있는 매우 활발한 서버의 경우, Sidekiq 프로세스는 1GB 이상의 메모리를 소비할 수 있습니다.

프로메테우스

기본적으로 프로메테우스 및 해당 익스포터가 GitLab을 모니터링하기 위해 활성화되어 있습니다. 이러한 프로세스는 약 200MB의 메모리를 소비합니다.

자세한 내용은 프로메테우스를 사용한 GitLab 모니터링을 참조하세요.

지원되는 웹 브라우저

GitLab은 다음 웹 브라우저를 지원합니다:

GitLab은 다음을 지원합니다:

  • 이러한 브라우저의 최신 및 이전 주요 버전
  • 지원되는 주요 버전의 현재 부 버전

이러한 브라우저에서 JavaScript를 비활성화한 상태로 GitLab을 실행하는 것은 지원되지 않습니다.

관련 주제