Antonio SJ Musumeci 4 weeks ago
parent
commit
65b9521a5a
  1. 28
      mkdocs/docs/config/threads.md
  2. 2
      src/config.cpp

28
mkdocs/docs/config/threads.md

@ -8,8 +8,12 @@ parallel behaviors.
Defaults to `0`
The number of threads used to read (and possibly process) messages
from the kernel.
The number of threads used to read messages from the kernel. If used
alone processing will be done on the same thread. If
`process-thread-count` is enabled then this thread pool will read
messages and the process thread pool will do the work. This can
increase how much mergerfs can process at one time but may reduce
throughput.
* `read-thread-count=N` where `N>0`: Create a thread pool of `N` threads.
* `read-thread-count=N` where `N<0`: Create a thread pool of `CPUCount /
@ -20,17 +24,6 @@ from the kernel.
read threads and upto `8` process threads depending on the CPU core
count.
When `process-thread-count=-1` (the default) this option sets the
number of threads which read and then process requests from the
kernel.
When `process-thread-count` is set to anything else mergerfs will
create two thread pools. A "read" thread pool which just reads from
the kernel and hands off requests to the process thread pool.
Generally, only 1 or 2 "read" threads are necessary when used with a
process thread pool.
## process-thread-count
@ -48,17 +41,18 @@ When enabled this sets the number of threads in the message processing pool.
## process-thread-queue-depth
* Defaults to `2`
Defaults to `2`
Sets the depth queue for the processing thread queue per
thread. Meaning if the read threads are getting requests faster than
can be processed they will be queued up upto the queue depth. Despite
the calculation being per thread the queue depth however is shared
across all in the pool.
the calculation being per thread the queue depth is shared across all
in the pool.
* `process-thread-queue-depth=N` where `N>0`: Sets the number of
outstanding requests that the process thread pool can have to `N *
process-thread-count`. If requests come in faster than can be
processed and the max queue depth hit then queuing the request will
block in order to limit memory growth.
* `process-thread-queue-depth<=0`: Sets the queue depth to 2.
* `process-thread-queue-depth<=0`: Sets the queue depth to 2. May be
used in the future to set dynamically.

2
src/config.cpp

@ -131,7 +131,7 @@ Config::Config()
symlinkify_timeout(3600),
fuse_read_thread_count(0),
fuse_process_thread_count(-1),
fuse_process_thread_queue_depth(3),
fuse_process_thread_queue_depth(2),
fuse_pin_threads("false"),
version(MERGERFS_VERSION),
writeback_cache(false),

Loading…
Cancel
Save