
Understanding Gitaly and Kernel Memory Consumption in Kubernetes on Self-Hosted GitLab
During the early hours of the morning, I started receiving Gitaly alerts — memory spikes that weren't being released automatically after the daily backup. This article is about a self-hosted GitLab on EKS and the behavior of some GitLab components in Kubernetes. If you also run GitLab on Kubernetes, it's worth understanding what's really happening — and why Cgroup v2 is the definitive solution to this kind of problem. GITALY Gitaly is the GitLab component responsible for all Git operations: clone, push, pull, merge, diff, and blame. It isolates repository storage from the web application and communicates with other services via gRPC, optimizing performance and concurrency control. ┌─────────────────────┐ │ GitLab Webservice │ │ │ └──────────┬──────────┘ │ gRPC ↓ ┌─────────────────────┐ │ Gitaly │ │ - Git operations │ │ - Repository access │ └──────────┬──────────┘ ↓ ┌─────────────────────┐ │ Persistent Volume │ │ /home/git/repos │ └─────────────────────┘ GITLAB TOOLBOX BACKUP It's a Gi
Continue reading on Dev.to
Opens in a new tab


