|
|
@ -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. |