GitLab Performance - Elif Munn

module-name: "GitLab Performance"
area: "Troubleshooting & Diagnostics"
maintainers:
  - wchandler

Overview

Goal:

Objectives: At the end of this module, you should be able to:

Tackle stage 1 first and the last stage last, but the others can be completed in any order you prefer.

Stage 0: Commit to learning about GitLab Performance

  • Done with Stage 0
  1. Create an issue using this template by making the Issue Title: GitLab Performance -
  2. Add yourself and your trainer as the assignees.
  3. Ping your manager to let them know you've started.
  4. Commit to this by notifying the current experts that they can start routing non-technical GitLab Performance questions to you.
  5. Optional: Set a milestone, if applicable, and a due date to help motivate yourself!

Stage 1: GitLab's Architecture & Internals

  • Done with Stage 1

This stage is aimed for you to have a good grasp of GitLab internals.

  1. Review GitLab's Architecture, Components, Request Type & System Layout
    1. GitLab's Architecture Overview
    2. GitLab.com's Production Architecture overview
    3. GitLab.com's cloud native high level architecture

Stage 2: GitLab's HA Installation methods

  • Done with Stage 2

This stage is aimed at you having a high level understanding of the different High-Availability Installation methods.

  1. Geo
  2. Scaling and High Availability
  3. GitLab HA on AWS
  4. Cloud Native charts

Stage 3: GitLab/Linux Performance Analysis & Troubleshooting

  • Done with Stage 3

This stage lists resources to tools/performance topics that are usually experienced by GitLab's customers

  1. Familiarity GtiLab Support Toolbox
    1. GitLabSOS
    2. GitLabSOS Analyzer
    3. strace-parser
  2. GitLab Tools
    1. GitLab Performance Bar
  3. Git Performance:
    1. Troubleshooting Git
    2. git-fsck
    3. git-sc
    4. git prune
  4. NFS
    1. GitLab HA with NFS
    2. Stan Hu's How we spent two weeks hunting an NFS bug in the Linux kernel
    3. What we're doing to fix Gitaly NFS performance regressions
    4. Identifying NFS performance bottlenecks
    5. Optimizing NFS Performance
    6. How to do Linux NFS Performance Tuning and Optimization
  5. PostgreSQL Performance
    1. GitLab's Database settings
    2. Configure GitLab using an external PostgreSQL service
    3. Configuring PostgreSQL for Scaling/High Availability
    4. Understanding Postgres Performance
  6. AWS Rate Limits
    1. EFS Rate Limits
    2. Other AWS Rate Limits
  7. Linux System Performance Tracing/Analysis
    1. Linux Performance Analysis in 60,000 Milliseconds
    2. BPF(Berkeley Packet Filters) Compiler Collection
    3. Linux Performance and Tuning Guidelines [PDF]
    4. Linux kernel profiling with perf
    5. perf Examples
    6. Brendan Gregg's Linux Performance

Stage 4: Tickets

  1. Find 10 Solved tickets to get a sense of what gets asked and how others have done troubleshooting in this area.
    1. __
    2. __
    3. __
    4. __
    5. __
    6. __
    7. __
    8. __
    9. __
    10. __
  2. Answer 5 tickets on this module's topic and paste the links here. Do this even if a ticket seems too advanced for you to answer. Find the answers from an expert and relay them to the customers.
    1. __
    2. __
    3. __
    4. __
    5. __

Stage 5: Pair on customer calls

  1. Pair on or perform five diagnostic calls, where a customer is having trouble with GitLab Performance.
    1. call with ___
    2. call with ___
    3. call with ___
    4. call with ___
    5. call with ___

Penultimate stage: Review

Any updates or improvements needed? If there are any dead links, out of date or inaccurate content, missing content whether in this module or in other documentation, list it below as tasks for yourself!

  1. Update ...

Final stage: Completion

  1. Have your trainer review your tickets and assessment. If you do not have a trainer, ask an expert to review.
  2. Manager: schedule a call (or integrate into 1:1) to review how the module went.
  3. Submit a MR to update modules and knowledge_areas in the Support Team yaml file with this training module's topic. You will now be listed as GitLab Performance Expert on Skills by Person page.
Edited by Elif Munn