Geralmente, acho que quando o apache é definido para que seja permitido gerar mais filhos do que você pode manipular, ele congela quando atinge seu limite de sistema. Não é muito bom liberar recursos quando está entupido. Então eu sugiro que você diminua seu filho máximo (em muito) para o apache, para começar. Veja quanto de memória 1 criança normalmente usa. Em seguida, divida seu max avl ram com o quanto uma criança usa e você pode usar esse resultado como ponto de partida para ajustar a quantidade ideal de filhos.
Minha resposta pode ser tendenciosa, mas eu não acho que o apache seja muito bom em ser um servidor web ... É muito consumista de recursos do que precisa ser e, portanto, especialmente faz uma má escolha para pequenos ambientes como o VPS você está correndo. Tente uma alternativa como nginx (com php-fpm se você estiver usando php por exemplo), ou verniz, etc. Estes não são 1 a 1 substituição do apache, mas eles são servidores web que eu acho que são muito mais eficientes e menos propenso a congelar devido a problemas de recursos.
Além disso, ao postar problemas como esse, recomendo que você publique estatísticas de itens como top
, pois eles fornecem uma imagem mais completa, apesar de geral, durante seu horário de pico / incômodo.