Indexing: limit shard parallelism when index concurrency is set #699
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
By default,
zoekt-sourcegraph-indexserver
builds one repo at a time. For eachrepo, shards are built in parallel using a number of threads equal to available
CPUs. There are two ways to adjust the indexing concurrency:
cpu_fraction
, which limits the available CPUs for parallel shardbuilding
index_concurrency
(or setting theSRC_INDEX_CONCURRENCY
environment variable), to index more than one repo at once
If you set
index_concurrency
to some number greater than 1, then indexingwill use more threads than available CPUs. This seems undesirable, especially
if you set
cpu_fraction
, since you'd expect that to put an upper bound on CPUusage.
This changes the shard-level parallelism to
available CPUs / index_concurrency
(rounded down), to bound the CPU usage as expected.