News for hackers. Stuff that matters.
Re:Gitlab 11.8 Released by Jnr on Friday February 22, 2019 @01:48PM (#19227935)
Gitlab is great and I have used it for years but I recently switched to Gogs for self hosted repositories because it is much faster, easier to set up and walk in a park to maintain. It doesn't have all the features (bloat) that Gitlab has but it can probably satisfy >95% of git users.
Re:Gitlab 11.8 Released by Suri_GitLab on Friday February 22, 2019 @02:11PM (#19228155)
Hello! Since GitLab is a single application that covers the entire software development lifecycle, we're a bit "bigger" than Gogs, which only tackles SCM. We have a plan to make GitLab use less resources, including forming a team to specialize in this area, and we're really grateful for your feedback. :)
Re:Gitlab 11.8 Released by chmln on Friday February 22, 2019 @02:31PM (#19228350)
> We have a plan to make GitLab use less resources

I used to use gitlab at work daily and releases would mention how performance is being tackled consistently. However, I have not seen any large improvements at all, suggesting that there is an impenetrable wall made of the underlying technologies.

Gitlab is based primarily on Ruby-on-Rails, which doesn't particularly shine with neither memory usage nor performance. What sort of effort would even reduce the use of resources significantly, short of a rewrite?

Re:Gitlab 11.8 Released by sytse on Friday February 22, 2019 @03:20PM (#19228764)
A big thing we're looking at to reduce memory is making the ruby code multi-threaded. https://gitlab.com/gitlab-org/gitlab-ce/issues/3592
Re:Gitlab 11.8 Released by aidos on Friday February 22, 2019 @05:21PM (#19229687)
Where is the bottleneck? I’m not massively familar with Ruby, but I’m assuming the underlying language isn’t the problem and it’s more to do with the general architecture?
Re:Gitlab 11.8 Released by sytse on Friday February 22, 2019 @05:33PM (#19229763)
We already have it working in development. We're cautious because last time we enabled it in production we got a lot of memory usage and runtime errors. I think the problems are that the native extensions from some dependencies are not multi-threading safe but I might be wrong.
Re:Gitlab 11.8 Released by dashundchen on Friday February 22, 2019 @04:34PM (#19229313)
I do think they have made improvments to performance. Project search and loading the issues page used to timeout all the time on Gitlab.com, especially for the gitlab repo itself. Now it works much better, loads and searches at an acceptable speed with no timeouts.

I will say I've never had a problem with performance on self hosted Gitlab because of the smaller scale.

Re:Gitlab 11.8 Released by stanhu on Saturday February 23, 2019 @12:54AM (#19231935)
There has been a steady march of performance issues that have been made over the last few months that may not have been mentioned in the release post:

* 11.8: https://gitlab.com/groups/gitlab-org/-/merge_requests?scope=...

* 11.7: https://gitlab.com/groups/gitlab-org/-/merge_requests?scope=...

* 11.6: https://gitlab.com/groups/gitlab-org/-/merge_requests?scope=...

With regard to memory usage, we've made some progress there as well. For example:

1. We cut 80-100 MB/per Unicorn process by removing a dependency: https://gitlab.com/gitlab-org/gitlab-ce/merge_requests/21008

2. A change in our merge request processing in https://gitlab.com/gitlab-org/gitlab-ce/merge_requests/22725 lowered gigabytes of runtime memory from our worst and most commonly-used Sidekiq background job.

3. In the second-worst performing Sidekiq job, switching to a faster XML processor in https://gitlab.com/gitlab-org/gitlab-ce/merge_requests/23136 also dropped large spikes of runtime memory.

That being said, we still have a long way to go. I recently did an analysis to figure out, "Why does each Unicorn process take 400-500 MB RAM?" The note in https://gitlab.com/gitlab-org/omnibus-gitlab/issues/4118#not... explains why. In short, there is truth that we're paying a price for Ruby overhead.

What can we do about it? I have several ideas:

1. Upgrade to Ruby 2.6 (significant memory improvements for free; see https://youtu.be/ZfgxvNUfQdU)

2. Replace many Unicorn processes with a multi-threaded Puma server

3. Continue profiling and optimizing inefficient code paths

4. Make the Ruby interpreter more efficient (e.g. with a compacting garbage collector, see https://gitlab.com/gitlab-org/gitlab-ce/issues/54555)

5. Make Rails more efficient (e.g. https://github.com/rails/rails/pull/34711).

Lastly, there may be significant parts of the code base that will need to be rewritten to improve memory and/or performance. Gitaly is a prime example of this: many Git-related calls have been abstracted into a Go process.

Re:Gitlab 11.8 Released by chmln on Saturday February 23, 2019 @01:14AM (#19232005)
Thanks for putting that post together - that is very informative.
Re:Gitlab 11.8 Released by yutghgh on Friday February 22, 2019 @02:59PM (#19228596)
This "rails/ruby is slow" myth really needs to die. Sure, rails is too slow for certain very large companies at very large scales, and if you're in this position you already know it. However, rails is fast enough for 99.5% of usecases, gitlab included.

As to memory usage, I will concede it is often somewhat high with rails, but there are solutions, such as jemalloc that have helped me in the past.

Re:Gitlab 11.8 Released by KaoruAoiShiho on Friday February 22, 2019 @03:18PM (#19228740)
Gitlab most certainly not included! Its perf is awful in comparison to any modern stack (including some php ones unfortunately).
Re:Gitlab 11.8 Released by yutghgh on Friday February 22, 2019 @05:17PM (#19229657)
I didn't say GitLab was fast (I haven't used it enough to know), but blaming its problems on ruby/rails when GitHub (which is pretty fast imo) is also written on rails is misleading at best.
Re:Gitlab 11.8 Released by chinhodado on Saturday February 23, 2019 @08:34AM (#19233255)
Ruby/rails is not the only factor, but it is certainly one of the contributing factors, and it is a big one. There's no need to deny that.
Re:Gitlab 11.8 Released by Sir_Substance on Friday February 22, 2019 @07:26PM (#19230557)
Hi Suri, since we're here and talking about this I too would like to let you know that I'm actively considering alternatives to gitlab for this reason.

I originally started using gitlab because it provided a VCS with a really nice built-in CI system. Really, I wanted github + travis-ci, but selfhosted.

My experience with gitlab has been and still is really great, but I'm losing my grasp on what's going on on my own server. Every time I install a patch, I discover my gitlab instance has grown kuberentes support or serverless features or whatever auto-devops is.

I don't want, use or need all that, I'm the only person who logs into my gitlab instance. I'm pretty sure I've got it all turned off, but only pretty sure. If gitlab grows any more features I'll be moving away simply to ensure confidence that I understand my own infrastructure in the limited time I have to maintain it.

It's the weirdest kind of success problem to have, but the truth is if it wasn't such a pain to make the move, I'd have transitioned away from gitlab 6 months ago.

Re:Gitlab 11.8 Released by Suri_GitLab on Friday February 22, 2019 @07:55PM (#19230772)
Thank you so much for sharing your experience. I hadn't thought of how frustrating it could be to not recognize your instance after each patch installation. This line, in particular, made me pause while reading: `I'm losing my grasp on what's going on on my own server.`

I created an issue to document your feedback, and I'll follow up with the product team to share your concerns. I really, really appreciate your candor, and I hope your comment sparks serious conversation and helps guide the new Memory team.

Issue: https://gitlab.com/gitlab-org/gitlab-ce/issues/58100

Re:Gitlab 11.8 Released by Sir_Substance on Saturday February 23, 2019 @03:47PM (#19235374)
Thanks, I do appreciate it :)

I'll also completely understand if the decision is that I'm too much in the minority to support on this front. There are always trade-offs to be made as a product grows, the important thing is that those tradeoffs been actively considered rather than randomly selected. As long as you guys have thought about the cost of expanding features so fast and have decided how you want to handle the situation, I'll be happy.

Re:Gitlab 11.8 Released by dirtylowprofile on Saturday February 23, 2019 @01:51AM (#19232099)
I have been a GitLab CE user for several months now, hosted on my own server. And I agree the performance is not really good compared to GitHub. I know improvements like this is a huge challenge for you guys. But it’s been several years already since you guys said you are about to deal with performance issues.
Re:Gitlab 11.8 Released by dsumenkovic on Monday February 25, 2019 @05:49AM (#19244633)
Thank you very much for using GitLab. I wanted to share these details with you about the stability improvements https://about.gitlab.com/2018/10/11/gitlab-com-stability-pos....
Re:Gitlab 11.8 Released by letientai299 on Friday February 22, 2019 @02:30PM (#19228344)
May I know what is the requirements for who would join that team?
Re:Gitlab 11.8 Released by Suri_GitLab on Friday February 22, 2019 @04:15PM (#19229186)
Hi! We just opened up hiring for an Engineering Manager and Senior Product Manager - I'd love it if you applied and we became teammates! :)

Engineering Manager: https://boards.greenhouse.io/gitlab/jobs/4201458002

Senior Product Manager: https://boards.greenhouse.io/gitlab/jobs/4192657002

Re:Gitlab 11.8 Released by letientai299 on Saturday February 23, 2019 @07:27AM (#19233032)
I'm still in my early years of professional, so guess I'll wait for more low level and engineering focused roles open. Thanks.
Re:Gitlab 11.8 Released by W-Stool on Friday February 22, 2019 @02:02PM (#19228070)
Did you look at Gitea before you stood up Gogs? I'm looking at both and will choose one shortly, any insight is most appreciated.
Re:Gitlab 11.8 Released by davidcollantes on Friday February 22, 2019 @02:06PM (#19228110)
Gitea has more options and features, but it is more bleeding edge. Unkwon (Gogs author) handles contributions to Gogs very carefully, taking painstakingly attention to the code being submitted. That has resulted on a very stable, and reliable software. You decide. :-)
Re:Gitlab 11.8 Released by tshannon on Friday February 22, 2019 @02:59PM (#19228602)
To rephrase what you said, Gitea is more community driven. You'd have a better chance contributing and fixing issues that impact you with Gitea, compared to Gogs.

Personally I switched over to Gitea.

One of the more tangible differences between the two is that Gitea bundles all the web assets into the executable used to run the service, so you just have a single exe replace on upgrades. It's been a while since I've used Gogs, but looking at their latest info you still need to remove some folders and not others when updating Gogs, because some of them are template and static files used by the web server.

Re:Gitlab 11.8 Released by StyloBill on Friday February 22, 2019 @01:54PM (#19227993)
Yes but Gogs is self-hosted whereas Gitlab offers hosting solutions.
Re:Gitlab 11.8 Released by lucideer on Friday February 22, 2019 @03:30PM (#19228836)
I'm somewhat dumbfounded at the no-less-than-three sibling commenters here all chiming in with the same repeated misinterpretation of your post.

I suspect those downvoting you didn't take time to read your comment properly either.

Re:Gitlab 11.8 Released by manwithaplan on Saturday February 23, 2019 @02:56AM (#19232275)
I blame the misunderstandings on the non-standard syntax: > Yes but Gogs is self-hosted whereas Gitlab offers hosting solutions.

Replying that, to someone who literally said they switched from GitLab to Gogs for self-hosted repositories, also made me parse it as implying one word: > Yes, but Gogs is self-hosted, whereas GitLab offers [only] hosting solutions.

but the author probably meant something like: > Yes, but Gogs is [exclusively] self-hosted, whereas GitLab [also] offers hosting solutions [so switching is not always an option].

Re:Gitlab 11.8 Released by StyloBill on Saturday February 23, 2019 @03:45PM (#19235365)
Spot on. I'm a non-native english speaker, so my syntax sometimes leaves to be desired. Sorry for the confusion.
Re:Gitlab 11.8 Released by techntoke on Friday February 22, 2019 @02:06PM (#19228112)
GitLab has self hosted solutions
Re:Gitlab 11.8 Released by tenebrisalietum on Friday February 22, 2019 @01:59PM (#19228038)
You can host Gitlab.
Re:Gitlab 11.8 Released by dsumenkovic on Friday February 22, 2019 @02:59PM (#19228604)
Here's a link to the self-hosted GitLab https://about.gitlab.com/pricing/#self-managed