A configuração de threads do módulo de multiprocessamento (mpm) em qualquer sistema está vinculada a certas restrições, limitações do sistema e configurações de fail-safe compiladas, conforme descrito no artigo Diretivas comuns do Apache MPM
ThreadsPerChild Directive
This directive sets the number of threads created by each child process. The child creates these threads at startup and never creates more. If using an MPM like mpm_winnt, where there is only one child process, this number should be high enough to handle the entire load of the server. If using an MPM like worker, where there are multiple child processes, the total number of threads should be high enough to handle the common load on the server.
Diretiva ThreadLimit
Special care must be taken when using this directive. If ThreadLimit is set to a value much higher than ThreadsPerChild, extra unused shared memory will be allocated. If both ThreadLimit and ThreadsPerChild are set to values higher than the system can handle, Apache httpd may not start or the system may become unstable. Do not set the value of this directive any higher than your greatest predicted setting of ThreadsPerChild for the current run of Apache httpd.
E eles também apontam que ...
The default value for ThreadLimit is 1920 when used with mpm_winnt and 64 when used with the others.
Existe também um limite compilado codificado que você pode contornar recompilando o código como explicado aqui:
There is a hard limit of ThreadLimit 20000 (or ThreadLimit 100000 with event, ThreadLimit 15000 with mpm_winnt) compiled into the server. This is intended to avoid nasty effects caused by typos. To increase it even further past this limit, you will need to modify the value of MAX_THREAD_LIMIT in the mpm source file and rebuild the server.
Diretiva ThreadStackSize
The ThreadStackSize directive sets the size of the stack (for autodata) of threads which handle client connections and call modules to help process those connections. In most cases the operating system default for stack size is reasonable, but there are some conditions where it may need to be adjusted:
Quais são ...
It is recommended to not reduce ThreadStackSize unless a high number of threads per child process is needed. On some platforms (including Linux), a setting of 128000 is already too low and causes crashes with some common modules.
Solução
Se você estiver indo para aumentar a diretiva ThreadsPerChild, então você terá que alinhar a diretiva ThreadLimit para o mesmo valor ou apenas um pouco maior, enquanto reduz adicionalmente a diretiva ThreadStackSize para um valor menor que o padrão, mantendo um sistema estável .
Uma possível solução seria:
<IfModule mpm_winnt_module>
ThreadStackSize 6291456
ThreadsPerChild 200
ThreadLimit 200
MaxRequestsPerChild 0
#Win32DisableAcceptEx
</IfModule>
Você terá que brincar um pouco com esses valores para determinar a configuração que permitirá que você execute um sistema estável com a configuração máxima de ThreadsPerChild.