O IIS6 CGI normalmente é de 1 solicitação - > 1 processo. 15 processos simultâneos de PHP-CGI provavelmente são devidos a 15 solicitações simultâneas de PHP-CGI. Ou você tem um alto índice de interrupções nos processos do PHP, e eles simplesmente não estão saindo corretamente.
No Windows, a inicialização do processo não é tão barata quanto no * nix (foi-me dito); Os encadeamentos do Windows são leves e podem ser simplesmente desenvolvidos nos processos, mas iniciar um processo é caro.
Iniciar um novo processo para cada solicitação recebida pode variar de "caro" a "desastroso". Pode ser simplesmente que sua carga seja aumentada quando você vir 200 processos simultâneos - ou seja, você tem 200 solicitações pendentes "em voo". Em algum momento, o desempenho cairá para onde o novo trabalho está chegando mais rápido do que o antigo trabalho pode ser concluído, e se você está reiniciando o servidor para lidar com isso, você está apenas punindo os usuários. Quem pode fazer outra solicitação imediatamente para tentar novamente.
Se seus processos estiverem ociosos, seu aplicativo também poderá ter um bug de suspensão. Mas isso é por.
Anyhoo, isso é tudo uma maneira prolixa de chegar: Você já tentou FastCGI? link
O FastCGI no IIS permite a reutilização de um pool existente de processos que não saem, portanto, em vez de um pedido iniciar, processar e sair de um novo processo, cada solicitação é distribuída para um conjunto de processos de trabalho em execução (neste caso) -CGI.
Cada instância do PHP-CGI é mantida ativa, enquanto mais de 1.000 solicitações são transferidas, e depois é permitido sair, e um novo é iniciado em seu lugar. Da memória, há um grupo de processos que fazem isso simultaneamente para manipular solicitações simultâneas (podem ser 4, 5 ou 10 por padrão, configuráveis) e o desempenho deve ser (muito) melhor.