Set transfer.unpacklimit to 1?
I just read about that setting in an git mailing list thread from last year (via @chriscool ). Somewhere in that thread it says that GitHub uses this setting. That does not automatically mean that it makes sense for GitLab to use it, but reading https://www.kernel.org/pub/software/scm/git/docs/git-config.html it sounds like something that could speed up GitLab performance for small pushes (and reduce the number of disk writes during a push).
Basically, the way we support 'git push' and 'git pull' means that Git data is always sent over the network as a packfile. By default, if such a packfile contains less than 100 objects, it gets unpacked into loose object files (objects/ab/cdef123) on the server. If we lower the limit to 1, the packfiles will never get unpacked. So on a push of 100 objects we write one file (two including idx?) to disk instead of 100.
I propose we:
- experiment with this, and if it is nice:
- make it standard in omnibus and put it in the source installation instructions
cc @pcarranza