Why GitLab is slow and what you can do about it

GitLab.com is slow

GitLab Fan
Published in
4 min readFeb 14, 2017

--

It is. Here’s a very typical tweet about the speed of GitLab.com:

Why is it slow?

  1. Ruby on Rails as a foundation for GitLab might have played its role.
  2. GitLab.com is the biggest installation of GitLab. It gains more and more attention. Because of that infrastructure team has more and more challenges.

What GitLab already does to become faster?

  1. Here’s the list of performance-related changes in past eight releases: 8.9, 8.10, 8.11, 8.12, 8.13, 8.14, 8.15, 8.16
  2. The admins were even considering to go bare metal, but decided to stay in the cloud (yes, the post is not published yet ;)

3. Here’s the list of currently open performance-related issues:

See more in GitLab CE issue tracker

“But I don’t care, just give me fast & reliable GitLab.com!!!” — every second user would shout and will be right.

Good news: GitLab admits the problem

GitLab CEO in his talk at GitLab Summit in Mexico admits that GitLab.com at its current state is slow and unreliable:

Watch the recording on Youtube

It is the company Q1 goal to make GitLab.com render 99% of pages in less than 1 second. Sounds promising. We’ll see how it goes.

What if you want to have fast and reliable GitLab right now? Well, you should just go self-hosted, like Codepen did.

Why self-hosted GitLab could be slow

Wait, what? You’re already using self-hosted GitLab and it still feels slow?

The question is how powerful your server is and how many users use it. Here’re the memory requirements depending on a number of users:

https://gitlab.com/help/install/requirements.md

The trick is that GitLab has raised recommended minimal memory requirements 5 months ago:

Doesn’t look like someone did a very thorough calculation here

It looks like GitLab had to do it due to more and more built-in functionality. Chances are that you’ve just missed it, and keep running newer and more demanding GitLab on the same machine with the same number of users. Maybe you just need to upgrade your hardware.

Well, this makes sense for companies. If you want fast and reliable GitLab just for yourself, then you’re not ready to spend too much money.

Choosing a solution for personal needs

scaleway.com/pricing

On Scaleway you can buy 4Gb server for 6 euro/month. I have GitLab running on a 2Gb machine, and the speed is good for me.

You say it still sounds too much for the ability to host your code? Well, if you need just that, you should probably go with Gogs or Gitea.

If the only parameter of comparison is speed, then Gogs beats GitLab easily:

Gogs needs just 512 Mb of memory to run

But when you start to take in account all the other aspects, it is not that obvious. GitLab is not just a code hosting tool. GitLab is a Software Development Platform. It gives you CI/CD Pipelines, Docker Container Registry, Issue boards and so on and so on, all inside one tool.

What if I really want to run GitLab on my $1/month machine anyway?

Well, you have this right. Just acknowledge that now you’re playing that game on expert complexity level.

You have to become an expert in tweaking GitLab to work on small machines:

And most probably it’ll be still slow. But it will be your choice to pay this price. All in all, you have to pay something anyway.

Choosing the price to pay

I choose to pay 3 euro to be able to keep doing my work while others post on twitter screenshots of GitLab’s error 500. I don’t want my software development process to be dependent on other people’s decisions to run database migrations.

But obviously, money is not the only price I pay. I had to spend my time to configure GitLab, set up backups and maintain the server.

If you’re not ready to deal with configuration & infrastructure at all, but want to stick to GitLab, then you have two options: GitLab.com & GitHost.io.

GitHost is also a service provided by GitLab. You can get a separate GitLab instance with maintenance and support provided by GitLab itself.

I summarized all the choices you have today in this table:

So, take you time, weight all the choices, make a decision, and stop complaining on twitter ;)

--

--