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