Enable the Gitaly pack-objects cache
This (disabled by default) feature is designed specifically to deal with issues arising from multiple simultaneous git fetches of the same repository, which is something that often happens in CI pipelines and can lead to high load on the GitLab server.
This was identified as one of the causes of recent episodes of GitLab slowness and unresponsiveness in #41677 (closed)
The documentation for this feature is available here: https://docs.gitlab.com/ee/administration/gitaly/configure_gitaly.html#pack-objects-cache
The main caveat is that the storage requirements aren't trivial to estimate, and if the filesystem cache ever runs out of space, the documentation warns all git fetches might start failing. Storing the cache on an S3 backend doesn't seem to be supported, it has to be a local filesystem on the server. However, from the docs it sounds like GitLab does export one metrics that could be used as a pessimistic estimate: gitaly_pack_objects_generated_bytes_total