Changed default number of threads and added auto value.

Changed default number of threads to 1 instead of autoconfigured value and
added a new `auto` variable which enables autoconfiguration of thread count.

The number of threads used when autoconfiguratio fails was changed from 4 to 1.

The default value of using N threads where N is the number of CPU cores was
not optimal as the possibility of rescheduling was higher the more utility
threads there were. Due to this, N-1 is deemed to be the better autoconfigured
value for thread count.
This commit is contained in:
Markus Makela
2015-12-14 11:56:34 +02:00
parent 78b5777d6e
commit 8d969aadd1
5 changed files with 39 additions and 20 deletions

View File

@ -69,19 +69,20 @@ The global settings, in a section named `[MaxScale]`, allow various parameters t
#### `threads`
This parameter controls the number of worker threads that are handling the
events coming from the kernel. MaxScale will auto-detect the number of
processors of the system unless number of threads is manually configured.
It is recommended that you let MaxScale detect how many cores the system
has and leave this parameter undefined. The number of used cores will be
logged into the message logs and if you are not satisfied with the
auto-detected value, you can manually configure it. Increasing the amount
of worker threads beyond the number of processor cores does not improve
the performance, rather is likely to degrade it, and can consume resources
needlessly.
events coming from the kernel. The default is 1 thread. It is recommended that
you start with one thread and increase the number if you require greater
performance. Increasing the amount of worker threads beyond the number of
processor cores does not improve the performance, rather is likely to degrade
it, and can consume resources needlessly.
You can enable automatic configuration of this value by setting the value to
`auto`. This way MaxScale will detect the number of available processors and
set the amount of threads to be equal to that number. This should only be used
for systems dedicated for running MaxScale.
```
# Valid options are:
# threads=<number of epoll threads>
# threads=[<number of threads> | auto ]
[MaxScale]
threads=1