성능 막대

Tier: Free, Premium, Ultimate Offering: Self-managed
  • Stats 필드는 GitLab 13.9에서 소개되었습니다.
  • Memory 필드는 GitLab 14.0에서 소개되었습니다.
  • Flamegraph 필드는 GitLab 14.4에서 소개되었습니다.

성능 막대를 표시하여 GitLab UI 페이지의 성능에 대한 통계를 확인할 수 있습니다. 예를 들면:

성능 막대

사용 가능한 정보

  • GitLab 16.6에서 Rugged 호출이 제거되었습니다.

성능 막대는 왼쪽에서 오른쪽으로 다음을 표시합니다:

  • Current Host: 페이지를 제공하는 현재 호스트
  • 데이터베이스 쿼리: 총 데이터베이스 쿼리 수와 걸린 시간(밀리초)을 00ms / 00(00 cached) pg 형식으로 표시합니다. 자세한 내용을 표시하려면 선택합니다. 각 쿼리에 대해 다음을 볼 수 있습니다.
    • 트랜잭션 내에서: 쿼리가 트랜잭션 컨텍스트에서 실행되었는지 여부
    • 역할: 데이터베이스 로드 밸런싱이 활성화된 경우 표시됩니다. 쿼리에 사용된 서버 역할을 표시합니다. “Primary”는 쓰기용 주 서버에 쿼리를 보냈다는 것을 의미하고, “Replica”는 읽기 전용 복제본에 쿼리를 보냈다는 것을 의미합니다.
    • 구성 이름: 이는 서로 다른 GitLab 기능을 위해 구성된 다른 데이터베이스를 구별하는 데 사용됩니다. 표시된 이름은 GitLab에서 데이터베이스 연결을 구성하는 데 사용된 동일한 이름입니다.
  • Gitaly 호출: 걸린 시간(밀리초)과 총 Gitaly 호출 수를 표시합니다. 자세한 내용을 표시하려면 선택합니다.
  • Redis 호출: 걸린 시간(밀리초)과 총 Redis 호출 수를 표시합니다. 자세한 내용을 표시하려면 선택합니다.
  • Elasticsearch 호출: 걸린 시간(밀리초)과 총 Elasticsearch 호출 수를 표시합니다. 자세한 내용을 표시하려면 선택합니다.
  • 외부 HTTP 호출: 다른 시스템으로의 외부 호출에 소요된 시간(밀리초)과 총 수를 표시합니다. 자세한 내용을 표시하려면 선택합니다.
  • 페이지의 부하 시간: 브라우저가 부하 시간을 지원하는 경우 밀리초 단위의 여러 값이 슬래시로 구분되어 표시됩니다. 자세한 내용을 표시하려면 선택합니다. 왼쪽에서 오른쪽으로 값은 다음과 같습니다.
    • Backend: 기본 페이지 로드에 필요한 시간
    • First Contentful Paint: 사용자에게 무언가가 표시되기까지 걸린 시간. 브라우저가 이 기능을 지원하지 않으면 NaN으로 표시됩니다.
    • DomContentLoaded 이벤트.
    • 페이지 로드한 총 요청 수
  • 메모리: 선택한 요청 중에 소비된 메모리 양과 할당된 객체 수를 표시합니다. 자세한 내용을 표시하려면 선택합니다.
  • 추적: Jaeger가 통합된 경우, 추적은 현재 요청의 correlation_id가 포함된 Jaeger 추적 페이지로 연결됩니다.
  • +: 요청의 세부 정보를 성능 막대에 추가하는 링크. 요청은 현재 사용자로 인증된 전체 URL 또는 X-Request-Id 헤더의 값으로 추가할 수 있습니다.
  • 다운로드: 성능 막대 보고서를 생성하는 데 사용된 원시 JSON을 다운로드하는 링크입니다.
  • 메모리 보고서: 현재 URL의 메모리 프로파일링 보고서를 생성하는 링크입니다.
  • 모드별 Flamegraph: 선택한 Stackprof 모드로 현재 URL의 flamegraph를 생성하는 링크입니다.
    • Wall 모드는 벽 시계의 시간 간격마다 샘플링합니다. 간격은 10100 마이크로초로 설정됩니다.
    • CPU 모드는 CPU 활동의 간격마다 샘플링합니다. 간격은 10100 마이크로초로 설정됩니다.
    • 오브젝트 모드는 간격마다 샘플링합니다. 간격은 100 할당으로 설정됩니다.
  • 요청 선택기: 성능 막대 오른쪽에 표시되는 선택 상자로, 현재 페이지를 열 때 발생한 요청에 대해 이러한 지표를 볼 수 있습니다. 고유 URL 당 처음 두 요청만 캡처됩니다.
  • Stats (옵션): GITLAB_PERFORMANCE_BAR_STATS_URL 환경 변수가 설정된 경우, 이 URL이 막대에 표시됩니다. GitLab 13.9 이상에서는 GitLab SaaS에서만 사용됩니다.
note
모든 지표가 모든 환경에서 사용할 수 있는 것은 아닙니다. 예를 들어 메모리 뷰는 특정 패치가 적용된 Ruby로 실행해야 합니다. 특정 패치가 적용된 Ruby로 GDK를 사용하여 GitLab을 로컬에서 실행하는 경우 이는 일반적으로 사실이 아니며 메모리 뷰를 사용할 수 없습니다.

키보드 단축키

p + b 키보드 단축키를 눌러 성능 막대를 표시하고 다시 눌러 숨길 수 있습니다.

관리자가 아닌 사용자가 성능 막대를 표시하려면, 그들을 위해 활성화되어 있어야 합니다.

요청 경고

  • GitLab 14.9에서 요청 선택기의 경고 아이콘이 제거되었습니다.

미리 정의된 한도를 초과하는 요청은 해당 지표 옆에 경고 caution아이콘과 설명을 표시합니다. 이 예에서는 Gitaly 호출 지속 시간이 임계값을 초과했습니다.

Gitaly 호출 지속 시간이 임계값을 초과

비관리자를 위한 성능 표시줄 활성화

비관리자는 기본적으로 성능 표시줄이 비활성화되어 있습니다. 특정 그룹에 대해 이를 활성화하려면 다음을 수행하세요:

  1. 관리자 액세스 권한을 가진 사용자로서 로그인합니다.
  2. 왼쪽 사이드바에서 가장 아래에 있는 관리 영역(Admin Area)을 선택합니다.
  3. 설정 > 지표 및 프로파일링(Metrics and profiling)을 선택합니다.
  4. 프로파일링 - 성능 표시줄(Profiling - Performance bar)을 확장합니다.
  5. 비관리자의 성능 표시줄 접근 허용(Allow non-administrators access to the performance bar)을 선택합니다.
  6. 다음 그룹의 구성원에게 액세스 권한 허용(Allow access to members of the following group) 필드에, 성능에 액세스할 수 있는 그룹의 전체 경로를 제공합니다.
  7. 변경 사항 저장(Save changes)을 선택합니다.