I'm administrating a small-ish Gitlab server and we have to reboot it every week or else it will fail in random and weird ways due to OOM - the machine has 8GB of RAM and 20 active users, so WTF? Isn't the entire point of git to have one pretty dumb server acting as a file server and letting the client do the work?!
GitLab, GitHub, BitBucket etc are not simply a GitServer, if that is all you want then there are better projects out there for that. hell basic ssh or http server can be used a gitserver with no front end at all or gitweb http://git-scm.com/docs/gitweb.html
GitLab, GitHub, BitBucket etc are project Management platforms that enable Bug Tracking, Documentation, Social networking all on top of and around basic git functions
just use git directly then without a gui server? or hell if you need a gui use upsource, that needs 8 gb ram however it is down you still could use everything else.
https://www.jetbrains.com/upsource/ (just repository browsing and code review not hosting, for hosting you need to create your bare repos yourself which is not hard)
This is definitely not normal. For 20 users, 8GB is more than enough and it should not require constant restarts. Please check out https://about.gitlab.com/getting-help. Message me on Freenode #GitLab @ dblessing or Twitter @drewblessing or @GitLabSupport. I'm happy to help.
We run a Gitlab server at our company, with about 25 people using it to host their repos. I don't know the technical specs of the server, but it's only been down two times for the last year, so OOM seems unlikely.
If it was that horrid, I'm pretty sure the admin would have said something by now.
You probably have pretty good sysadmins. My experience with Gitlab is pretty similar but you kind of have to have a bit of knowledge of systems, network and the software itself to set it up properly with the right amount of memory, CPU, etc. to accommodate for the user base.
Gitlab is one project that absolutely needs to be rebuilt using Java. Both from a performance and a deployment perspective (deploying a jar is a one line step through jetty).
Something like Akka is probably well suited for Gitlab and it's git hooks.