1
0
mirror of https://github.com/Zygo/bees.git synced 2025-05-17 13:25:45 +02:00

options: remove default 8 CPU thread limit

Higher CPU core counts became more common, and kernel bugs became less
common, since the arbitrary 8-thread limit was introduced.  We can remove
the limit now, and treat any remaining scaling inefficiency as a bug to
be removed.

Signed-off-by: Zygo Blaxell <bees@furryterror.org>
This commit is contained in:
Zygo Blaxell 2020-12-21 23:09:55 -05:00
parent 032c740678
commit fbd1091052
3 changed files with 0 additions and 14 deletions

View File

@ -16,12 +16,6 @@
below 1.0 to leave some cores idle, or above 1.0 if there are more below 1.0 to leave some cores idle, or above 1.0 if there are more
disks than CPUs in the filesystem. disks than CPUs in the filesystem.
If the computed thread count is higher than `BEES_DEFAULT_THREAD_LIMIT`
(currently 8), then only that number of threads will be created.
This limit can be overridden by the `--thread-count` option; however,
be aware that there are [kernel issues with systems that have many CPU
cores](btrfs-kernel.md) when users try to run bees on all of them.
* `--loadavg-target LOADAVG` or `-g` * `--loadavg-target LOADAVG` or `-g`
Specify load average target for dynamic worker threads. Default is Specify load average target for dynamic worker threads. Default is

View File

@ -842,11 +842,6 @@ bees_main(int argc, char *argv[])
thread_factor = BEES_DEFAULT_THREAD_FACTOR; thread_factor = BEES_DEFAULT_THREAD_FACTOR;
} }
thread_count = max(1U, static_cast<unsigned>(ceil(thread::hardware_concurrency() * thread_factor))); thread_count = max(1U, static_cast<unsigned>(ceil(thread::hardware_concurrency() * thread_factor)));
if (thread_count > BEES_DEFAULT_THREAD_LIMIT) {
BEESLOGNOTICE("Limiting computed thread count to " << BEES_DEFAULT_THREAD_LIMIT);
BEESLOGNOTICE("Use --thread-count to override this limit");
thread_count = BEES_DEFAULT_THREAD_LIMIT;
}
} }
if (load_target != 0) { if (load_target != 0) {

View File

@ -86,9 +86,6 @@ const size_t BEES_OPEN_FILE_LIMIT = (BEES_FILE_FD_CACHE_SIZE + BEES_ROOT_FD_CACH
// Worker thread factor (multiplied by detected number of CPU cores) // Worker thread factor (multiplied by detected number of CPU cores)
const double BEES_DEFAULT_THREAD_FACTOR = 1.0; const double BEES_DEFAULT_THREAD_FACTOR = 1.0;
// Don't use more than this number of threads unless explicitly configured
const size_t BEES_DEFAULT_THREAD_LIMIT = 8;
// Log warnings when an operation takes too long // Log warnings when an operation takes too long
const double BEES_TOO_LONG = 5.0; const double BEES_TOO_LONG = 5.0;