diff --git a/lib/model/model.go b/lib/model/model.go index 43ff023c6..c78ed4e48 100644 --- a/lib/model/model.go +++ b/lib/model/model.go @@ -2548,6 +2548,12 @@ func (m *model) numHashers(folder string) int { m.mut.RLock() folderCfg := m.folderCfgs[folder] numFolders := max(1, len(m.folderCfgs)) + // MaxFolderConcurrency already limits the number of scanned folders, so + // prefer it over the overall number of folders to avoid limiting performance + // further for no reason. + if concurrency := m.cfg.Options().MaxFolderConcurrency(); concurrency > 0 { + numFolders = min(numFolders, concurrency) + } m.mut.RUnlock() if folderCfg.Hashers > 0 {