A configuração OOTB é tipicamente de 150 a 200 threads de aceitação total para cada conector. Esse padrão é destinado a aplicativos de carga / complexidade média em hardware "médio".
Como regra geral, um aplicativo leve e de alto desempenho deve usar um máximo de 150 (aceitar) encadeamentos por núcleo da CPU (portanto, um total de 600 em uma caixa de 4 núcleos). Uma configuração mais conservadora, para aplicativos mais pesados, seria de 300 threads aceitos. Eu esperaria que a maioria dos requisitos estivesse em algum lugar no meio (mas isso precisaria de algumas análises), mas isso é altamente situacional - veja a resposta de @ zagrimsan.
Obviamente, o HTTPS tem uma sobrecarga um pouco maior, portanto, a prática padrão é reduzir o número de threads aceitos de acordo.
O uso do conector nativo / APR pode melhorar o rendimento, mas o fator limitante geralmente é o perfil do aplicativo, portanto, novamente, não há números mágicos.
O perigo de usar uma configuração de thread muito alta é que o servidor pode ficar “ocupado terminalmente” - onde tanto tempo gasta gerenciando threads e demandas de aplicativos, tudo o mais sofre (GC sendo notavelmente um sintoma). Parece contra-intuitivo, mas geralmente menos é mais.
Um servidor ocupado com a contagem de linha configurada corretamente será degradado normalmente sob carga pesada. Muito alto e vai cair!
Agora, há várias configurações relacionadas (contagem de aceitação, threads mín., espera etc.) que também precisam ser ajustadas, mas isso está além do escopo dessa resposta.