Skip to main content
Pure Technical Services

Slow Git Performance

Currently viewing public documentation. Please login to access the full scope of documentation.

Symptom

Git performance is slow or unresponsive. 

Applies to

Git

Cause

Not enough sessions.

Resolution

  1. Enable parallel Git status. 
  2. Run the following command:
 git config core.preloadIndex true

Additional Information

  • Parallel Git will enable more sessions and increase performance. On recent escalations, the performance improved from 24 seconds to 2 seconds.
  • The Pure hardware team also internally used this and performance improved dramatically. 
  • According to https://git.kernel.org/pub/scm/git/g...otes/2.1.0.txt core.preloadIndex is on by default since 2.1.0
  • While there is no way in Git to extract the default values, i.e., there is no command to find out what the current setting of this value is unless the customer has set it explicitly in either system/global or local gitconfig.
  • To check for it, you can use "git config -l" (dash el) from the repository you're interested in (this will show not only the settings in the local gitconfig but also the inherited settings from global and system). To specifically check the global gitconfig use "git config --list --global" (and similar for local and system).
  • If in doubt, suggest setting it explicitly.
  • The above command sets it for the local (repository) level, add --global to set it at the user level or --system to set it at the machine level.
  • To improve Git performance, please see https://git-scm.com/docs/git-config.
  • Enable parallel index preload for operations like git diff.
  • This can speed up operations like git diff and git status especially on filesystems like NFS that have weak caching semantics and thus relatively high IO latencies. When enabled, Git will do the index comparison to the filesystem data in parallel, allowing overlapping IO’s. Defaults to true.