InfoGrab DocsInfoGrab Docs

성능 가이드라인

GitLab 개발 시 일관된 성능을 확보하기 위한 워크플로, 도구, 벤치마크, 메모리 최적화, 캐싱, 안티패턴 등 다양한 성능 가이드라인을 설명합니다.

이 문서는 GitLab의 일관되고 우수한 성능을 보장하기 위한 다양한 가이드라인을 설명합니다. 성능 문서 # 일반: 성능 문제 해결 Handbook 성능 페이지 머지 리퀘스트 성능 가이드라인 백엔드: 도구 데이터베이스: 쿼리 성능 가이드라인 페이지네이션 성능 가이드라인 Keyset 페이지네이션 성능 임포트/익스포트 성능 문제 해결 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)에 대한 벤치마크는 해당 라이브러리에 유리하게 편향되는 경향이 있습니다. 결국 경쟁사보다 성능이 떨어진다는 벤치마크를 게시해서 얻는 이득