성능 가이드라인
GitLab의 우수하고 일관된 성능을 보장하기 위한 다양한 가이드라인을 설명합니다.
이 문서는 GitLab의 우수하고 일관된 성능을 보장하기 위한 다양한 가이드라인을 설명합니다. 성능 문서 # 일반: 성능 문제 해결 Handbook 성능 페이지 머지 리퀘스트 성능 가이드라인 백엔드: 도구 데이터베이스: 쿼리 성능 가이드라인 페이지네이션 성능 가이드라인 키셋 페이지네이션 성능 가져오기/내보내기 성능 문제 해결 gitlab 프로젝트의 파이프라인 성능 프론트엔드: 성능 가이드라인 및 모니터링 브라우저 성능 테스트 가이드라인 gdk measure 및 gdk measure-workflow E2E: 부하 성능 테스트 GitLab Performance Tool 프로젝트 모니터링 및 개요: GitLab 성능 모니터링 개발 부서 성능 지표 GitLab Self-Managed 관리 및 고객 중심: 파일 시스템 성능 벤치마킹 Sidekiq 성능 문제 해결 워크플로 # 성능 문제를 해결하는 과정은 대략 다음과 같습니다. 어딘가에(예: GitLab CE 이슈 트래커) 이슈가 열려 있는지 확인하고, 없다면 새로 생성합니다. 예시는 #15607 을 참고하세요. GitLab.com과 같은 프로덕션 환경에서 코드의 성능을 측정합니다(아래 도구 섹션 참고). 성능은 최소한 24시간에 걸쳐 측정해야 합니다. 측정 기간을 기반으로 얻은 결과(그래프 스크린샷, 타이밍 등)를 1단계에서 언급한 이슈에 추가합니다. 문제를 해결합니다. 머지 리퀘스트를 생성하고 "Performance" 레이블을 지정한 뒤 성능 리뷰 프로세스 를 따릅니다. 변경 사항이 배포된 후에는, 변경 사항이 프로덕션 환경에 어떤 영향을 미치는지 확인하기 위해 다시 최소 24시간 동안 측정합니다. 완료될 때까지 반복합니다. 타이밍을 제공할 때는 다음을 함께 제공해야 합니다. 95번째 백분위수 99번째 백분위수 평균 그래프 스크린샷을 제공할 때는 X축과 Y축 그리고 범례가 명확히 보이도록 해야 합니다. GitLab.com 자체 모니터링 도구에 접근할 수 있다면 관련 그래프/대시보드에 대한 링크도 함께 제공해야 합니다. 도구 # GitLab은 성능과 가용성을 개선하는 데 도움이 되는 기본 제공 도구들을 제공합니다. 프로파일링 . 분산 추적 GitLab 성능 모니터링 . N+1 회귀를 방지하기 위한 QueryRecorder . 장애 시나리오 테스트를 위한 Chaos 엔드포인트 . 주로 가용성 테스트를 위한 용도입니다. GitLab 팀 멤버는 dashboards.gitlab.net 에 위치한 GitLab.com의 성능 모니터링 시스템 을 사용할 수 있으며, 이를 위해서는 @gitlab.com 이메일 주소로 로그인해야 합니다. GitLab 팀 멤버가 아닌 경우 자체 Prometheus 및 Grafana 스택을 구성하는 것을 권장합니다. 벤치마크 # 벤치마크는 거의 항상 쓸모가 없습니다. 벤치마크는 일반적으로 작은 코드 조각만 격리된 상태에서 테스트하며 최선의 경우 시나리오만 측정하는 경우가 많습니다. 게다가 라이브러리(예: Gem)에 대한 벤치마크는 해당 라이브러리에 유리하게 편향되는 경향이 있습니다.