Eu consideraria 20-30MB por processo como muito pequeno. É tudo relativo, mas, por exemplo, a maioria dos aplicativos CMS exigirá pelo menos 100MB. Além disso, seu tamanho máximo de upload será limitado pelo tamanho máximo do processo, se isso for importante.
Quando o servidor não está disponível, é provável que os processos do operador php estejam todos ocupados, mas isso é apenas uma causa imediata. Algo está a abrandar o seu servidor de tal forma que por um tempo, pelo menos, os processos de php não conseguem acompanhar as solicitações recebidas. O que está a atrasar o seu servidor é difícil de julgar, mas a 'falha na matança graciosa' faz-me pensar que o processo que estava para ser morto provavelmente está à espera no disco.
Você logou enquanto isso está acontecendo? O sistema se sente responsivo?
Na parte superior, observe os estados do processo e procure os 'D', que estão aguardando o IO. Existem muitos desses? O 'wa' no resumo no topo é o tempo total que os processos gastam esperando no IO. (Diz porcentagem, mas é provável que seja uma porcentagem do tempo de um processador). Ferramentas como iotop, top e vmstat também podem ser úteis para obter uma visualização de quais processos estão vinculados ao disco e até que ponto o disco está limitando seu desempenho geral.
Sua compreensão do que acontece quando um processo de trabalho não está disponível para receber novas solicitações está incorreta. Novas solicitações não serão atribuídas a ele.
1000 solicitações antes de matar o trabalhador é alto. Eu sugiro soltá-lo em algum lugar entre 10 e 50.