이미지 스케일링

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

GitLab은 사이트 렌더링 성능을 개선하기 위해 내장된 이미지 스케일러를 실행합니다. 기본적으로 활성화되어 있습니다.

스케일러 구성

우리는 대다수의 GitLab 배포에서 잘 작동하는 합리적인 기본값을 항상 설정하기 위해 노력합니다. 그러나 이미지 스케일링을 조정하여 원하는 성능 프로필에 가장 잘 맞출 수 있도록 여러 설정을 제공합니다.

최대 이미지 스케일러 수

이미지를 리스케일링하면 같은 노드에서 실행되는 추가적인 단기 프로세스가 발생합니다. 기본적으로, 우리는 이러한 프로세스가 동시에 실행될 수 있는 수를 해당 머신이나 VM의 CPU 코어 수의 절반으로 제한하지만, 최소 두 개 이상이어야 합니다.

대신 고정 값으로 설정할 수 있습니다:

  1. /etc/gitlab/gitlab.rb를 편집하고 다음을 추가합니다:

    gitlab_workhorse['image_scaler_max_procs'] = 10
    
  2. 변경 사항을 적용하려면 재구성합니다:

    sudo gitlab-ctl reconfigure
    

이 경우 10개의 이미지가 이미 처리되고 있다면, 11번째 요청은 리스케일되지 않고 원래 크기로 제공됩니다. 이 값을 설정하는 것은 시스템이 높은 부하에서도 계속 사용할 수 있도록 하는 데 중요합니다.

최대 이미지 파일 크기

기본적으로 GitLab은 최대 250kB 크기의 이미지만 리스케일합니다. 이는 Workhorse 노드에서 과도한 메모리 소비를 방지하고 지연 시간을 합리적인 범위 내로 유지하기 위함입니다. 특정 파일 크기를 초과하면 원본 이미지를 제공하는 것이 전체적으로 더 빠릅니다.

최대 허용 파일 크기를 줄이거나 늘리고 싶다면:

  1. /etc/gitlab/gitlab.rb를 편집하고 다음을 추가합니다:

    gitlab_workhorse['image_scaler_max_filesize'] = 1024 * 1024
    
  2. 변경 사항을 적용하려면 재구성합니다:

    sudo gitlab-ctl reconfigure
    

이 경우 최대 1MB 크기의 이미지가 리스케일될 수 있습니다(단위는 Byte입니다).

이미지 스케일러 비활성화

이미지 스케일링을 완전히 끌 수도 있습니다. 이는 해당 기능 토글을 끄는 것으로 수행할 수 있습니다:

Feature.disable(:dynamic_image_resizing)

기능 플래그에 대한 작업 방법을 배우려면 기능 플래그 문서를 참조하세요.