Details
-
Improvement
-
Resolution: Done
-
Major
-
7.1.3
-
0
-
KV 2023-2
Description
Recent performance analysis of SyncWrite-heavy workloads has shown that the default number of NonIO threads can be insufficient to fully utilise the machine - particularly if the CPU core count is relatively low (e.g. 8 cores).
Currently we size the NonIO thread pool based on a CPU coefficient of 0.3 :-
nonio_thread_count = 0.3 * number_of_cpu_cores
|
For an 8 core machine this gives a value of 2.4 which is rounded to 2.
Note that the current coefficient of 0.3 was set prior to SyncWrites, where NonIO tasks were not needed to perform front-end operations.
Empirical testing has shown that increasing this to 4 NonIO threads on an 8 core system (i.e. coefficient of 0.5) makes better use of the overall machine resources, and doesn't seem to negatively impact other running threads.