Gitaly 타임아웃 및 재시도
GitLab Self-Managed에서 Gitaly 호출 타임아웃, 협상 타임아웃, 클라이언트 재시도를 구성하는 방법을 설명합니다.
Gitaly 는 구성 가능한 두 가지 유형의 타임아웃을 제공합니다. 호출 타임아웃. GitLab UI로 구성합니다. 협상 타임아웃. Gitaly 구성 파일로 구성합니다. 호출 타임아웃 구성 # 장기 실행되는 Gitaly 호출이 불필요하게 리소스를 차지하지 않도록 다음 호출 타임아웃을 구성합니다. 사전 요구 사항: 관리자 액세스 권한. 호출 타임아웃을 구성하려면 다음 단계를 따릅니다. 오른쪽 상단에서 Admin 을 선택합니다. 왼쪽 사이드바에서 Settings > Preferences 를 선택합니다. Gitaly timeouts 섹션을 확장합니다. 필요에 따라 각 타임아웃을 설정합니다. 사용 가능한 호출 타임아웃 # Gitaly 작업 종류에 따라 서로 다른 호출 타임아웃을 사용할 수 있습니다. 타임아웃 기본값 설명 Default 55초 대부분의 Gitaly 호출에 적용되는 타임아웃입니다( git fetch 및 push 작업이나 Sidekiq job에는 적용되지 않습니다). 예를 들어 리포지터리가 디스크에 있는지 확인하는 호출입니다. 웹 요청에서 이루어진 Gitaly 호출이 전체 요청 타임아웃을 초과하지 않도록 보장합니다. Puma 에 구성할 수 있는 워커 타임아웃 보다 짧아야 합니다. Gitaly 호출 타임아웃이 워커 타임아웃을 초과하면 워커를 종료하지 않도록 워커 타임아웃의 남은 시간을 사용합니다. Fast 10초 요청에서 사용되는 빠른 Gitaly 작업에 적용되는 타임아웃이며, 한 요청에서 여러 번 사용되기도 합니다. 예를 들어 리포지터리가 디스크에 있는지 확인하는 작업입니다. 빠른 작업이 이 임계값을 초과하면 스토리지 샤드에 문제가 있을 수 있습니다. 빠르게 실패하면 GitLab 인스턴스의 안정성을 유지하는 데 도움이 됩니다. Medium 30초 빠르게 끝나야 하지만(요청 중에 수행될 수 있습니다) 한 요청에서 여러 번 사용하지 않는 편이 좋은 Gitaly 작업에 적용되는 타임아웃입니다. 예를 들어 블롭 로딩입니다. Default와 Fast 사이의 값으로 설정합니다. 기본적으로 Default 타임아웃은 57 초보다 높게 설정할 수 없습니다. 자세한 내용은 Gitaly 기본 타임아웃을 57초 이상으로 올릴 수 없는 문제 를 참고합니다. 협상 타임아웃 구성 # 다음 경우에는 협상 타임아웃을 늘려야 할 수 있습니다. 특히 큰 리포지터리를 다루는 경우. 이러한 명령을 병렬로 실행하는 경우. 다음 항목에 대해 협상 타임아웃을 구성할 수 있습니다. git-upload-pack(1) . git fetch 를 실행할 때 Gitaly 노드가 호출합니다. git-upload-archive(1) . git archive --remote 를 실행할 때 Gitaly 노드가 호출합니다. 이러한 타임아웃을 구성하려면 다음 단계를 따릅니다. Linux package (Omnibus) Self-compiled (source) /etc/gitlab/gitlab.rb 를 편집합니다. gitaly[ 'configuration' ] = { timeout: { upload