These recommendations are based on real-world deployments. Your results may vary depending on repository sizes, search patterns, and whether you use features like multi-branch indexing or Ask Sourcebot.
Recommendations
| Small | Medium | Large | Extra Large | |
|---|---|---|---|---|
| Repos | Up to 100 | 100 – 500 | 500 – 2,000 | 2,000+ |
| CPU | 2 cores | 4 cores | 8 cores | 16+ cores |
| Memory | 4 GB | 8 GB | 32 GB | 64+ GB |
| Disk | 50 GB | 100 GB | 250 GB | 500+ GB |
DATABASE_URL and REDIS_URL environment variables.
Of all resources, memory has the most direct impact on search performance. Sourcebot uses Zoekt for search indexing, and the OS page cache keeps frequently accessed index data in memory. More memory means more of the index stays cached, which translates directly to faster searches and less disk I/O.
Disk usage
Disk is consumed by two things:- Cloned repositories stored in the
.sourcebot/cache directory - Zoekt search indexes built from those repositories
Tuning concurrency
If your instance is resource-constrained, you can reduce the concurrency of background jobs to lower CPU and memory pressure during indexing. These are configured in your config file:| Setting | Default | Description |
|---|---|---|
maxRepoIndexingJobConcurrency | 8 | Number of repos indexed in parallel |
maxConnectionSyncJobConcurrency | 8 | Number of connections synced in parallel |
Monitoring
We recommend monitoring the following metrics after deployment to validate your sizing:- Memory utilization: sustained usage near the limit suggests you should scale up memory. High memory usage is expected and healthy since the OS page cache will use available memory.
- CPU utilization: sustained high CPU during searches (not just during indexing) indicates you may need more cores.
- Disk usage: monitor disk consumption as you add repositories. Running out of disk will cause indexing failures.
- Search response times: if searches are consistently slow, try increasing memory first, then CPU.

